네트워크 - OpenFlow(3)

2021-01-09

컴퓨터 네트워크를 공부하면서 정리를 한 내용들 입니다.

-참고 K-mooc 부산 대학교 유영환 교수님 : 컴퓨터 네트워크 강의


OpenFlow Flow Table Entries

이번에는 openflow flow table entry들이 어떻게 구현 되어 있는가 살펴 봅시다.

entry는 크게 Rule, Action, Statistic 세 부분으로 나눌 수 있습니다.

어떤 정보를 기반으로 전달할 것인가?

여기서 전달하는 정보는 여러 가지가 있습니다.

  1. 데이터 그램이 어떤 포트로 들어왔는가?

  2. sourcedestination 이더넷 주소는 무엇인가?

  3. 이더넷 타입은 무엇인가?

  4. VLAN ID우선순위는 무엇인가?

  5. IP 송신자 주소, IP 목적지 주소 그리고 IP 포트는 무엇인가?

  6. TCPUDP source 포트, destination 포트는 무엇인가?

그래서 이러한 여러 필드들 중에 어떤 정보를 선택을 해서

몇 가지 정보를 어떤 set을 선택 해서 결정 할지가

사용자, 관리자가 정한 룰에 의해서 결정이 됩니다.

그리고나서 내가 받은 데이터그램이 어떤 정해 놓은 그 값과 매치가 되면

어떤 액션을 취할건지를 Action에서 나열 할 수 있습니다.

  1. 어떤 포트로 보내라.

  2. 내보내기 전에 컨트롤러한테 먼저 보내라.

  3. 패킷을 drop 시켜라.

  4. SDN 방식이 아닌 기존의 방식으로 전달을 해라.

  5. 필드를 수정해라.

그래서 오른쪽에 나와 있는 것 처럼 openflow 스위치

자기가 가진 flow table에 따라서 아래처럼 동작 할 수 있습니다.


1. Source 주소가 1.2로 시작하고 destination 주소가 3.4.5 라면 drop 시켜라.

2. destination 주소가 3.4 라하더라도 drop 시키지 않고 source가 1.2가 아니라 다른 거면 forward, 2번 포트로 포워드 시켜라.

3. source가 10.1.2.3이라면 컨트롤러에 보내라.

Flow Table Entry Examples

몇 가지만 예를 들어 보면

Destination-based forwarding

기존 방식처럼 destination 주소를 기반으로 한 포워딩도 가능합니다.

그래서 다른 정보들은 다 무시하고. 목적지 주소만을 보고

해당된다면 port6으로 내보내라.

이렇게 동작 할 수 있습니다.

Destination-based layer2(switch) forwarding

IP 기반이 아니라 MAC 주소, 이더넷 주소만을 가지고 전달하는 포워딩도 가능합니다.

MAC 주소만을 보고 해당하는 이더넷 주소를 가진 데이터는

port3번으로 내보내는 것도 가능합니다.

Firewall : 외부의 해킹 공격으로부터 시스템을 보호하기 위한 시스템

기존의 방식에서는 일반적인 라우터와 firewall을 별도로 설치 해서

라우터에 접근하려고 하는 시도를 firewall에서

미리 차단하는 이런 방식으로 동작을 했었는데

라우터가 SDN 라우터로 바뀌게 되면서

별도의 firewall 장비 없이도 firewall을 구현 할 수 있게 되었습니다.

Firewall

만약에 시스템 내에 TCP port 22번을 쓰는 프로세스가 굉장히 중요하고,

이것을 외부의 접근으로부터 보호 해야겠다면

22번을 접근하려고 하는 모든 데이터그램을 drop시킬 수 있습니다.

또는 만약에 128.119.1.1 이라는 주소를 쓰는 호스트가

시스템을 해하려는 어떤 메시지를 계속 보내온다라는 것이 발견이 되면

이 주소를 가지고 날아오는 모든 데이터그램을 drop시킬 수 있습니다.