네트워크 - OpenFlow(3)
컴퓨터 네트워크를 공부하면서 정리를 한 내용들 입니다.
-참고 K-mooc 부산 대학교 유영환 교수님 : 컴퓨터 네트워크 강의
OpenFlow Flow Table Entries
이번에는 openflow flow table entry들이 어떻게 구현 되어 있는가 살펴 봅시다.
entry는 크게 Rule
, Action
, Statistic
세 부분으로 나눌 수 있습니다.
어떤 정보를 기반으로 전달할 것인가?
여기서 전달하는 정보는 여러 가지가 있습니다.
-
데이터 그램이
어떤 포트
로 들어왔는가? -
source
와destination 이더넷 주소
는 무엇인가? -
이더넷 타입
은 무엇인가? -
VLAN ID
와우선순위
는 무엇인가? -
IP 송신자 주소
,IP 목적지 주소
그리고IP 포트
는 무엇인가? -
TCP
나UDP source 포트
,destination 포트
는 무엇인가?
그래서 이러한 여러 필드들 중에 어떤 정보를 선택을 해서
몇 가지 정보를 어떤 set을 선택 해서 결정 할지가
사용자, 관리자가 정한 룰에 의해서 결정이 됩니다.
그리고나서 내가 받은 데이터그램이 어떤 정해 놓은 그 값과 매치가 되면
어떤 액션을 취할건지를 Action에서 나열 할 수 있습니다.
-
어떤 포트
로 보내라. -
내보내기 전에
컨트롤러한테 먼저 보내라
. -
패킷을
drop 시켜라
. -
SDN 방식
이 아닌기존의 방식
으로 전달을 해라. -
필드를 수정
해라.
그래서 오른쪽에 나와 있는 것 처럼 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
시킬 수 있습니다.