1. 개요
SDN(Software Defined Network)을 구현하기 위한 핵심 프로토콜로, 공유기, 라우터 등에 설정 페이지(예: 192.168.0.1)에 접속해서 라우팅 테이블 등을 마음대로 바꾸도록 한다.2. 설명
특정 회사의 장비만 사용한다면 라우팅 규칙을 바꾸는 일을 자동으로 하는 스크립트를 만들 수 있을 것이다. 하지만 여러 회사의 장비들을 한꺼번에 제어하려면 표준화된 인터페이스가 필요하다.OpenFlow는 각 장비들을 중앙에서 일괄적으로 제어할 수 있는 표준화된 프로토콜이다. 이를 제어하는 프로그램 및 스크립트를 OpenFlow controller라고 부르고 그 예시로는 ONOS(Open Network Operating System)이나 ODL(OpenDaylight)[1] 등이 있다.
OpenFlow를 지원하는 장비를 흔히들 SDN 장비라고 부른다. SDN 장비의 특징 중 하나는 TCAM(Ternary Content Addressable Memory)이라는 특수한 메모리를 내장하여 기존 장비보다 패킷 처리가 빠르다는 점이다. 일반 컴퓨터에서는 'search 192.168.0.1' 같은 작업을 직접 실행해야 했지만, TCAM을 사용하면 이러한 연산을 초당 수천만 번 이상 수행할 수 있게 되고 이는 네트워크 상에 지나가는 모든 패킷을 처리할 수 있는 양이다.
리눅스 머신을 사용하고 있다면 Open vSwitch를 설치해서 SDN 장비를 가상으로 돌려볼 수 있다.
[1] ODL도 openflow controller이나 기본 스탠스는 "레거시" 스위치에 대한 지원이다. ODL의 대표적인 스폰서로 CISCO가 있는 것만 봐도...