I. SDN (Software Defined Networking)
가. SDN (소프트웨어 정의 네트워킹)의 개념
- 개방형 API(오픈플로우)를 통해 네트워크의 트래픽 전달 동작을 소프트웨어 기반 컨트롤러에서 제어/관리하는 기술
- ONF(Open Networking Foundation)의 오픈플로우 프로토콜 표준 존재
- IETF의 SDN RG 및 I2RS WG, SPRING WG 등의 워킹그룹을 통해 표준화
나. SDN의 필요성
트래픽패턴변화 | Server-Client 간 트래픽 패턴에서 Peer-to-Peer 형태의 트래픽 패턴으로 다양화 |
인프라 가상화 | 서버 가상화 뿐 아니라 오버레이 네트워크 기반 네트워크 슬라이싱 필요 |
병목현상/관리 복잡성 해소 | VLAN, QoS, ACL 등 트래픽 복잡성 증가에 따른 병목 현상 및 트래픽 관리 필요 |
II. SDN 구성도 및 기술요소
가. SDN의 구성도
나. SDN 구현을 위한 기술요소
구분 | 기술요소 | 상세 설명 |
---|---|---|
SDN 계층 별 기술 측면 | SDN 응용 프로그램 | – NBI 프로그래밍 방식의 네트워크 동작을 컨트롤러 전달, 추상화 – 각 NBI 에이전트를 통해 다수 상위 NBI 제공(구성도 참조) |
SDN 컨트롤러 | – SDN 응용 프로그램 계층의 요구 사항을 SDN Datapath로 변환 – SDN 응용 프로그램에 네트워크 추상화 제공, 논리적 중앙화 | |
SDN Datapath | – 전달 및 데이터 처리 기능 가시화와 논리적 네트워크 제어 장치 – CDPI 에이전트와 트래픽 포워딩 엔진 세트 및 트래픽 처리 기능 | |
SDN 인터페이스 측면 | CDPI | – SDN CDPI(Control to Data-Plane Interface) – SDN 컨트롤러와 SDN Datapath간에 정의 된 인터페이스 – 프로그래 방식의 포워딩 제어, 기능광고, 통계보고, 이벤트알림 |
NBI | – SDN NBI(Northbound Interface) – SDN 응용 프로그램-컨트롤러 간 I/F, 추상 네트워크 가시화 – 벤더 중립적이며, 상호 운용 가능 방식으로 구현 | |
드라이버 /에이전트 | – 각 인터페이스는 드라이버-에이전트 쌍으로 구성 및 실행 – Southern, Bottom – 인프라, Northern, Top – 응용 프로그램 |
III. SDN의 구현 기술, 오픈플로우(Openflow)
가. 오픈플로우(Openflow)의 개념
- 네트워크 컨트롤러가 스위치망을 통해 네트워크 패킷의 경로를 정의하는 소프트웨어 정의 네트워크(SDN) 프로토콜
- 오픈플로우 프로토콜은 ONF(Open Networking Foundation, 비영리 국제기구)에서 관리
나. 오픈플로우의 구현 기술
구현 기술 | 개념도 / 설명 |
---|---|
제어/데이터 평면 분리 기술 | – 패킷 제어 기능과 전달 기능을 분리하여 프로그래밍 기반 네트워크 제어 – 제어 및 데이터 평면을 범용 서버에 설치하여 소프트웨어로 구현 – 사용자가 자유롭게 특정 서비스나 애플리케이션 최적화 프로토콜 구현 가능 |
컨트롤러 /스위치 구성 기술 | – 스위치에 명령, 스위치는 명령에 따른 패킷 전송, 수정, 폐기 처리 – L2 스위치에 Open Flow 프로토콜 펌웨어 추가, 컨트롤러는 소프트웨어로 구현 – 최단경로(SPF)나 회선 속도 외 사용자 지정 경로 가중치/부하 분산 조건 |
플로우 테이블 관리 기술 | – 오픈플로우 스위치는 다수의 플로우 테이블 및 다수 플로우 엔트리로 구성 – Flow Entry는 Match fields, Actions, Counters(통계)로 구성 – 입력패킷과 매치 엔트리 존재 시 Counter(통계) 값 증가, 지정 명령(Action) 실행 |
파이프라인 처리 기술 | – 플로우 테이블 기반 패킷을 처리(Action) 및 다른 플로우 테이블 엔트리와 비교 – 한 패킷을 다른 플로우 테이블에 보내기 전에 패킷에 메타 데이터 값 추가 가능 – 메타 데이터 값은 다음 테이블에 있는 메타 데이터 값과 비교하여 패킷 처리(Action)될 때까지 다음 테이블로 연속됨 |
그룹 테이블 관리 기술 | – 인입 플로우에 대해 일련의 action bucket들이 실행 되도록 정의 – Action bucket은 실행할 action 들의 집합과 파라미터들을 포함 – 엔트리 ID 값, 그룹의 type, counter action buckets로 구성 |
사례) 플로우 테이블의 엔트리의 착신 IP 주소 필드에 멀티캐스트 주소(224.0.0.0~239.255.255.255)가 지정되어 있으면 그 action필드에 그룹 테이블의 엔트리 ID를 지정하고, 그룹의 action bucket들에 지정된 내용(port n으로 output)을 실행하도록 하여 구현 가능
[참고]
- 위키백과, “소프트웨어 정의 네트워킹”, 2017.2
- 한국통신학회 통신망운용관리연구회, “SDN/OpenFlow 기술 동향 및 전망”, 2012.12
- ONF, “SDN Architecture Overview”, 2013.12
- ONF, “ONF SDN Evolution”, 2016.9