SDN 데이터 평면 + Openflow
- 지현 배
- 2022년 6월 5일
- 2분 분량
SDN 구조

SDN 데이터 평면이란
네트워크 포워딩 장치가 SDN제어평면에서 지정한 기준에 따라,
데이터를 전송하고 처리하는 영역
네트워크 장치 (데이터 평면 네트워크 요소 또는 스위치)의 주된 기능
1) 제어 지원 기능
- 리소스 제어 인터페이스를 통해,
SDN 컨트롤러 계층과 상호 작용하면서,
프로그래밍 기능을 제공
- 스위치는 컨트롤러와 통신하면,
컨트롤러는 오픈플로우 프로토콜을 통해 스위치 를 관리
2) 데이터 포워딩 기능
- 다른 네트워크 장치나 단말 시스템으로부터 들어 온 데이터 플로우를 받아,
- SDN 애플리케이션에서 정의한 룰에 따라 결정된 데이터 포워딩 경로에 따라 포워딩
SDN 개념 구현을 위한, 두 가지 요구 사항
1) 논리적 아키텍처
- SDN 컨트롤러로 관리하는, 모든 스위차나 라우터와 같은,
네트워크 장치에 공통적으로 적용되는 논리적인 아키텍처 정의 필요
- SDN 컨트롤러 입장에서 볼 때, 모든 장치를, 논리적으로, 일정한 기능을 가진
스위치로 볼 수 있다면, 구체 적인 구현 방식이 벤더나 장비마다 달라도 상관없음
2) 표준 보안 프로토콜
- SDN 컨트롤러와 네트워크 장치가 서로 통신하는데 필요한,
보안이 제공되는 표준 프로토콜 필요
오픈플로우 (OpenFlow)
- 이상의 요구 사항 만족을 위해 등장
- 오픈플로우는
- 컨트롤러와 오픈플로우 스위치 사이에서 메시지를 주고 받을 때, 사용하는 프로토콜
- SDN 컨트롤러와 네트워크 장치가 서로 통신하기 위한 프로토콜 부분과
- 공통적으로 적용될 네트워크 스위치 기능의 논리적인 구조에 대한 규격으로 구성
오픈플로우 구성요소

1) SDN 컨트롤러
- TLS (Transport Layer Security)로 연결된 채널에서,
- 오픈플로우 프로토콜을 통해,
- 오픈플로우 호환 스위치와 통신
2) 오픈플로우 스위치
- 각 스위치는 다른 오픈플로우 스위치와 연결
- 일부의 스위치는 패킷의 출발지와 목적지에 해당하는 단말 장치에 연결
3) 오픈플로우 채널
- 스위치 입장에서 서로 연결하는 인터페이스를 의미
- 오픈플로우 채널은 오픈플로우 포트를 통해 연결
4) 오픈플로우 포트
- 스위치와 스위치를 연결할 때, 사용
- 스위치와 SDN 컨트롤러를 연결할 때, 사용
- 세 가지 형태의 오픈플로우 포트 (물리, 논리, 예약 포트)
5) 테이블
- 오픈플로우 스위치는, 서로 연속적으로 연결된, 여러 개의 테이블을 사용하여
패킷의 플로우를 처리함
- 세 가지 종류의 테이블(플로우, 그룹, 미터 테이블)
오픈플로우 프로토콜이 제공하는 세 가지 종류의 메시지
가. 컨트롤러에서 스위치로 보내는 메시지
컨트롤러에서 생성하여 전송하는 메시지
경우에 따라, 스위치의 응답을 요구하기도 함
스위치 설정 값이나 플로우 및 그룹 엔트리의 세부 사항 등, 스위치의 논리적인 상태를 관리
대표적인 예:
1. Packet-out 메시지
- 스위치가 특정한 패킷의 처리 방법을 물어볼 때, 컨트롤러가 응답하는 메시지
- 해당 패킷을 폐기하지 말고, 특정한 출력 포트로 보내도록 지시하는 것
나. 비동기 (Asynchronous) 메시지
컨트롤러가 특별히 요청하지 않아도, 스위치가 컨트롤러에게 보내는 메시지
여러 가지 상태 정보를 담을 수 있음
대표적인 예:
1. Packet-in 메시지
- 스위치에 도착한 패킷에 매치되는 플로우 엔트리가 스위치에 정의되어 있지 않을 때,
- 이 패킷을 컨트롤러에서 처리하도록 요청하기 위하여 사용
다. 대칭 (Symmetric) 메시지
컨트롤러나 스위치 중, 어느 한쪽이 요청하지 않아도, 아무나 보낼 수 있는 메시지
대표적인 예:
1. Echo 요청과 응답 메시지
- 스위치와 컨트롤러 사이에 연결된 채널의 지연 시간 (Latency)이나 대역폭을
측정하거나, 단순히 장치가 살아 있는지 확인하기 위하여 사용
2. Experimenter 메시지
- 다음 버전의 오픈플로우 규격에 추가되기 전에, 실험을 위하여 사용
Comments