OpenFlow로 이해하는 SDN 제어와 플로우 기반 포워딩
OpenFlow의 제어·데이터 플레인 분리 구조와 컨트롤러, 스위치, 플로우 테이블의 역할 및 동작 방식을 정리한다.
2026-08-14 · 최초 발행 2025-07-16
제어 결정과 패킷 전달을 분리하는 OpenFlow
OpenFlow는 소프트웨어 정의 네트워킹(SDN)에서 제어 플레인과 데이터 플레인을 분리하기 위한 개방형 인터페이스 기술이다. 장비가 패킷을 전달하는 기능과 네트워크 정책을 결정하는 기능을 나누고, 표준화된 프로토콜로 둘을 연결한다.
이 구조에서는 컨트롤러가 네트워크 전체를 바라보며 포워딩 정책을 정한다. 스위치는 내려받은 규칙을 적용해 패킷을 처리한다. 벤더가 다른 하드웨어에서도 같은 방식으로 동작할 수 있고, 네트워크의 동작을 소프트웨어로 정의할 수 있다는 점이 핵심이다.
컨트롤러·프로토콜·스위치가 맡는 역할
컨트롤러는 네트워크 전체의 글로벌 뷰를 바탕으로 포워딩 결정을 제어한다. 토폴로지를 관리하고, 라우팅 정책을 결정·적용하며, 트래픽 엔지니어링과 보안 정책 구현을 담당한다. 대표적인 컨트롤러로는 NOX/POX, Floodlight, OpenDaylight, ONOS(Open Network Operating System)가 있다.
OpenFlow 프로토콜은 컨트롤러와 스위치 사이의 통신을 위한 개방형 표준 인터페이스다. TLS(Transport Layer Security) 기반 보안 통신을 사용하며 TCP 6653 포트를 사용한다. 메시지는 컨트롤러가 스위치에 구성·관리·정보 요청을 보내는 Controller-to-Switch, 패킷 도착이나 상태 변경을 알리는 Asynchronous, 연결 설정과 에코 요청·응답에 쓰이는 Symmetric으로 구분된다.
OpenFlow 스위치는 Flow 테이블, 컨트롤러와 연결되는 보안 채널, OpenFlow 프로토콜로 구성된다. Flow 테이블 규칙에 따라 패킷을 포워딩하고 트래픽 통계를 수집한다. 처리할 규칙을 알 수 없는 패킷은 캡슐화해 컨트롤러로 전송한다.
패킷 처리를 결정하는 Flow 테이블
Flow 테이블은 OpenFlow 스위치가 패킷을 처리할 때 참조하는 규칙 저장소다. 각 엔트리에는 매칭 필드, 우선순위, 카운터, 인스트럭션, 타임아웃, 쿠키가 포함된다.
매칭에는 인그레스 포트, Ethernet의 출발지·목적지·타입, IP의 출발지·목적지·프로토콜, TCP/UDP의 출발지·목적지 포트 등이 사용된다. 매칭된 패킷에는 포트로 포워딩, 컨트롤러로 캡슐화해 전송, 폐기, 필드 수정, 일반 파이프라인 전송 같은 인스트럭션을 적용할 수 있다.
규칙이 없을 때 컨트롤러가 개입하는 흐름
스위치와 컨트롤러는 먼저 TCP/TLS 연결을 설정하고 Hello 메시지로 버전을 협상한다. 이후 컨트롤러는 기본 네트워크 정책에 따른 초기 Flow 규칙을 전송하며, DHCP와 ARP 처리 같은 기본 동작을 정의한다.
패킷이 들어오면 스위치는 Flow 테이블에서 매칭 규칙을 찾는다. 일치하는 항목이 있다면 해당 Action을 수행한다. 일치하는 규칙이 없으면 Table-miss가 발생하고, 패킷은 Packet-In 메시지로 컨트롤러에 전달된다. 컨트롤러는 패킷 헤더를 분석해 처리 방식을 정한 뒤 Flow-Mod 메시지로 새 Flow 규칙을 보낸다. 스위치는 규칙을 테이블에 추가하고, 수신된 패킷과 유사한 패킷을 새 규칙에 따라 처리한다. 이 과정에서 매칭 카운터가 증가하고 통계 정보도 수집된다.
데이터센터부터 서비스 제공업체까지의 활용
대규모 데이터센터에서는 서버 간 트래픽을 최적화하는 데 OpenFlow를 활용할 수 있다. Google의 B4 네트워크는 OpenFlow를 활용해 데이터센터 간 트래픽을 효율적으로 관리한다.
캠퍼스 네트워크에서는 물리적 인프라 위에 여러 가상 네트워크를 구성하는 데 사용할 수 있다. 스탠포드 대학은 OpenFlow를 활용한 GENI(Global Environment for Network Innovations) 프로젝트를 구현했다.
서비스 제공업체 네트워크에서는 5G 네트워크의 서비스 요구사항에 맞춘 가상 네트워크 제공, 즉 네트워크 슬라이싱에 활용할 수 있다. AT&T의 ONAP(Open Network Automation Platform)에서도 OpenFlow를 활용한다.
버전별로 확장된 기능
OpenFlow 1.0은 기본적인 매칭 필드와 액션을 정의했으며 2009년에 제시됐다. 2012년의 OpenFlow 1.3에서는 다중 테이블, 그룹 테이블, 미터 테이블이 도입됐다. OpenFlow 1.4는 2013년에 번들 메시지와 광 포트 속성을 추가했고, 2014년의 OpenFlow 1.5는 에그레스 테이블과 통계 트리거를 추가했다.
중앙 제어가 주는 이점과 운영상의 부담
OpenFlow는 단일 뷰에서 네트워크 전체를 관리하게 하고, API를 통한 네트워크 제어와 벤더 독립적인 기능 구현을 지원한다. 새로운 네트워크 서비스를 빠르게 개발하고 배포할 수 있다는 점도 장점이다.
반면 컨트롤러 장애는 전체 네트워크에 영향을 줄 수 있어 단일 장애점이 된다. 네트워크 규모가 커질수록 컨트롤러 부하가 증가할 수 있으며, 새 Flow를 설정할 때 추가 지연이 발생할 가능성도 있다. 중앙 집중식 구조가 갖는 보안 위험 역시 함께 다뤄야 한다.
SDN에서 OpenFlow가 차지하는 위치
OpenFlow는 표준화된 인터페이스를 중심에 둔다. P4는 프로그래밍 가능한 데이터 플레인에, NETCONF/YANG은 구성 관리에, BGP-LS/PCEP는 라우팅 최적화에 초점을 둔다.
OpenFlow는 데이터 플레인과 제어 플레인을 분리해 네트워크를 프로그래밍 가능한 대상으로 바꿨다. 클라우드 컴퓨팅, 5G, IoT의 요구사항을 수용하는 네트워크 혁신의 기반 기술로서 중요성은 계속 커질 것으로 예상된다.