SDN과 오픈플로우(Openflow)

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

콘텐츠 사용 시 출처 표기 부탁 드리고, 궁금한 점이나 의견은 댓글 남겨주세요^^