855. OpenFlow (오픈 플로우 표준 프로토콜) - 사우스바운드 근간 SDN 1세대 표준 규격

핵심 인사이트: SDN이라는 위대한 철학이 "뇌(컨트롤러)와 근육(스위치)을 분리하자!"라고 외쳤지만, 실제로 그 뇌와 근육이 대화하려면 공통된 언어(문법)가 있어야 했다. 시스코는 영어, 주니퍼는 불어를 쓰면 뇌가 명령을 내릴 수가 없다. "야! 전 세계 모든 깡통 스위치 장비들은 이 위대한 통일 언어로만 명령을 받아적고 행동해라!" 스탠퍼드 대학이 이끌고 전 세계를 휩쓸어버린 SDN의 절대적 1세대 공통 표준 통신 규약, 그것이 오픈플로우(OpenFlow)다.

Ⅰ. OpenFlow (오픈플로우)의 개념

  • 개념: ONF(Open Networking Foundation) 재단에서 제정한, SDN 환경에서 **중앙의 제어 컨트롤러(Controller)와 밑바닥의 데이터 스위치(Switch) 장비 간에 패킷 전달 룰(Flow Table)을 주고받기 위한 통신 프로토콜 표준 규격(사우스바운드 인터페이스의 대명사)**입니다.
  • 의의: 특정 벤더(시스코 등)에 종속된 기계어(CLI)를 박살 내고, 하드웨어 스위치를 깡통으로 만들어 소프트웨어로 마음대로 지배할 수 있게 길을 터준 1세대 혁명의 주인공입니다.

Ⅱ. OpenFlow의 3대 구성 요소

물리적인 통신은 3가지 덩어리로 이루어집니다.

  1. OpenFlow Controller (뇌): 중앙 서버에 떠서 전체 네트워크 지도를 그리고, 정책을 플로우 테이블로 짜서 밑으로 내려보냅니다.
  2. OpenFlow Switch (깡통 근육): 플로우 테이블을 저장할 빈 장부를 들고 있다가, 컨트롤러가 적어준 룰대로 패킷이 오면 빛의 속도로 쳐내는 역할을 합니다.
  3. OpenFlow Protocol (신경망): 뇌와 근육 사이의 통신 규약입니다. 보안을 위해 보안 채널(Secure Channel, TLS 암호화 적용) 위에서 TCP 포트 6653번(구 6633번)을 타고 대화합니다. (해커가 중간에 명령을 훔쳐보지 못하게 막습니다.)

Ⅲ. 메시지 종류 (어떻게 대화하는가?) 🌟

컨트롤러와 스위치는 3가지 종류의 카톡(메시지)을 주고받으며 살아 숨 쉽니다.

  1. Controller-to-Switch (컨트롤러 ➜ 스위치) 메시지
    • 하달: "야 스위치야, 내가 짜준 새 플로우 룰 장부(FlowMod) 지금 다운로드해서 칩셋에 적용해!"
    • 스위치 상태를 검사하거나, 설정을 수정할 때 뇌가 일방적으로 지시하는 하향식 메시지입니다.
  2. Asynchronous (스위치 ➜ 컨트롤러) 비동기 메시지
    • 보고 (Packet-In) 🌟 핵심 🌟: 스위치로 처음 보는 낯선 패킷이 들어왔습니다. 스위치가 자기 장부(플로우 테이블)를 뒤져봤는데 어떻게 하라는 룰이 없습니다(Miss). 스위치는 패킷을 버리지 않고 냅다 컨트롤러에게 **"형님! 처음 보는 놈인데 이거 어떻게 할까요?(Packet-In)"**라고 무전을 쳐서 올려보냅니다.
    • 포트가 뽑히거나 장비가 고장 났을 때 긴급 보고(Port-Status)하는 것도 이 메시지입니다.
  3. Symmetric (쌍방향 동기) 메시지
    • 생존 확인: 둘이서 주기적으로 Hello, Echo(Ping/Pong)를 던지며 "나 살아있어! 너 살아있냐?" 하고 심장 박동을 서로 확인합니다. 끊어지면 바로 우회로를 찾습니다.

Ⅳ. OpenFlow의 한계와 진화

  • 1세대 SDN을 화려하게 장식했지만, 치명적인 단점이 있었습니다.
  • 패킷의 껍데기(IP, MAC, TCP 포트 등) 수십 가지를 일일이 대조(Match)하려다 보니, 스위치 기계의 비싼 메모리(TCAM)가 꽉 차서 수만 개의 룰을 심기 어려웠습니다(오버헤드).
  • 이를 타개하기 위해, 지금은 하드웨어 칩 자체의 프로그래밍을 뜯어고치는 **P4(874번 문서)**나, 장비의 껍데기 설정 파일만 가볍게 휙 던져주는 NETCONF(875번) 규약이 오픈플로우의 자리를 대신 위협하며 다음 세대로 진화 중입니다.

📢 섹션 요약 비유: OpenFlow(오픈플로우)는 뇌와 로봇 팔을 연결하는 '표준 USB 케이블과 명령어 세트'입니다. 옛날엔 시스코 로봇 팔을 사면 시스코 뇌에 연결하는 전용 핀 케이블만 맞았고, 삼성 뇌를 사면 연결할 수가 없었습니다(벤더 종속). 스탠퍼드 대학이 이 더러운 꼴을 보고 "전 세계 모든 뇌와 로봇 팔은 이 똑같은 USB 포트 구멍(OpenFlow 표준)으로 통일하고, 움직이는 명령어도 'FlowMod(규칙 하달)', 'Packet-In(모를 때 질문)' 3가지로 무조건 똑같이 써라!"라고 천하통일 법을 반포했습니다. 이 덕분에 뇌는 구글 걸 쓰고, 로봇 팔은 대만제 싸구려(화이트박스)를 써도 USB만 꽂으면 한 몸처럼 완벽히 동작하는 SDN 통일 제국이 열렸습니다.