🏷️OpenFlow
- 미국 스탠포드 대학과 UC 버클리 대학에서 2007년에 정립한 최초의 SDN 프로토콜이다.
- SDN 구조에서 Control Plane과 Data Plane 사이의 통신을 위한 자체 SDN 프로토콜이다.
📌OpenFlow 기본 구조
- SDN Controller는 SDN Switch와 OpenFlow로 연결되는데, 보통 TLS기반 인증 및 암호화 방식을 지원한다.
- SDN Switch는 하나 이상의 Flow Table을 갖는다.
- Flow Table에 등록된 설정 정보를 Flow Rule이라고 한다.
- SDN 스위치 내부로 데이터 패킷이 유입됐을 때, SDN 스위치는 Flow Table에서 해당 패킷이 목적지까지 가는데 필요한 Flow Rule을 직접 검색하고, 해당되는 Flow Rule을 기준으로 데이터 패킷을 외부로 포워딩한다.
📌OpenFlow 1.0.0 Flow Table
Header Fields | Actions | Counters |
---|
조건부 | 어떻게 처리할지 | Flow Rule이 적용된 패킷 수 |
📌OpenFlow 동작 과정
Reactive
- SDN 스위치에 Flow Rule로 정의되지 않은 Unknown 패킷이 유입됐을 때, SDN Controller가 직접 해당 패킷의 최적 경로를 결정하고 결정된 최적 경로로 패킷이 전달되도록 해당 경로 상의 SDN Switch에 Flow Rule을 등록해주는 방식이다.

- Unknown 패킷이 유입됐을 때, SDN Controller로 데이터 패킷의 처리를 문의한다.
- 이때, 캡슐화되어서 전달되는 메세지를 Packet-in Message라고 한다.
- cf. 메세지 안에 패킷이 있기 때문에 그렇게 부른다.

- SDN Controller가 SDN Switch에 Flow Rule을 포함시켜 전달하는 메세지를 Flow Modify Message라고 한다.
Proactive
- 네트워크 관리자나 상위 Application이 미리 SDN Controller를 통해 SDN Switch의 Flow Table에 Flow Rule을 정의해 두는 것이다.
