SDN 용어 정리

Network / / 2024. 6. 2. 04:12

SDN 계층 구조

간단한 SDN 계층 구조

 

SDN 계층 구조는 위 그림과 같으나, 인터넷을 찾아보면 여러 용어를 혼용해서 사용한다.

 

예를 들어, Plane을 Tier나 Layer라고도 표현하며, 가장 하윗단을 Data나 Forward 혹은 Infrastructure라고도 표현한다.

본 페이지에서는 Infrastructure로는 이해하지 않아도 된다. 이것으로 이해하게 되면, 인프라 서비스(IaaS) 내용까지 이해하고 넘어가야 해서 너무 광범위 해진다. (필자도 잘모름..)

 

필자는 SDN 전공을 했던게 아닌터라 용어간의 차이가 무엇인지는 정확히는 잘 모르겠지만, 일단 가장 심플한 SDN은 저렇게 세 계층 구조로 나뉘어 동작한다고 볼 수 있다.

 

SDN 관련 용어 정리

  • Application Plane
    • 방화벽, 로드 밸런스 등의 특정 Application이 동작하는 영역
    • Application은 자신의 요구사항을 Control Plane으로 요청함
    • 방화벽의 예를 들어, 어떠한 주소를 어느 네트워크 영역으로 들이지 말게끔 Control Plane으로 요청하면 Control Plane은 그 요청에 맞추어 Data Plane을 수정하는 것임

 

  • Control Plane
    • SDN 컨트롤러가 위치하는 영역
    • 특정 Application에서 요구하는 서비스에 맞게 Data Plane으로 라우팅 경로 수정 or 트래픽 쉐이핑 명령을 내림
    • Data Plane에 위치하는 네트워크 장치들의 토폴로지나 네트워크 상태를 항시 모니터링
    • SDN 컨트롤러로는 ONOS(Open Network Operating System)나 ODL(Open Day Light)이 많이 사용 됨
    • Python으로 제어할 수 있는 Ryu라는 컨트롤러도 존재함

 

  • Data Plane
    • 네트워크 장치가 위치하는 영역
    • SDN 컨트롤러의 요청에 따라 특정 네트워크 장치의 Flow Table이 수정 됨
    • Flow Table은 여러 개의 Flow Entry로 구성되며, 하나의 Flow Entry는 [Match Field -> Actions] 같은 형태임
    • Match Field를 통해 들어온 패킷의 여러 튜플(MAC, IP, Port 등)을 살펴보고 매칭시킴
    • Actions는 매치된 패킷에 특정 동작(Drop, Forwarding, Copy, Save 등)을 가하는 것
    • 만약 장치에서 Flow Entries의 Match Field를 살펴봤는데 패킷이 매치되지 않는다면 SDN 컨트롤러에게 어떻게 처리할 지 요청함
    • 최근에는 OpenFlow API 보다 Open vSwitch API가 SDN Data Plane에서 많이 사용됨
    • 현대의 네트워크 장치는 하나의 PC와 같은 기기가 맡아서 함. 다시 말해, OSI 7 Layer 중에 특정 Layer만을 담당하진 않으며 전체 영역을 아우를 수 있음. 즉, Layer 2에서 포워딩을 담당하던 스위치 장치가 Layer 3의 라우팅 장치가 될 수 있음 (Flexibility)

 

  • NorthBound API
    • Application Plane과 Control Plane 사이에 위치하는 API
    • REST API를 주로 사용

 

  • SouthBound API
    • Control Plane과 Data Plane 사이에 위치하는 API
    • SouthBound API를 통해 SDN 컨트롤러는 네트워크 장치로 명령을 내림
    • Open vSwitch의 예로 네트워크 장치는 받은 명령을 Open vSwitch에서 제공하는 CLI(ovs-vsctl, ovs-ofctl 등)로 처리함

 

  • Open vSwitch
    • 일명 OVS라고도 불림
    • OVS CLI를 통해 가상화된 OVS 브릿지를 네트워크 장치에 생성할 수 있음 (using ovs-vsctl)
    • OVS 브릿지에는 Flow Table이 존재함.
    • Flow Table을 수정하여 라우팅 경로 수정 등을 할 수 있음 (using ovs-ofctl)
    • OVS 브릿지에 가상화된 네트워크 인터페이스와 물리적인 인터페이스 모두를 부착할 수 있음
    • 즉, 물리적인 인터페이스로 들어오는 패킷을 가상화된 인터페이스로 보내어 특정 서버로 전달할 수 있음
    • 다시 말해, 가상화된 공간과 실제 공간을 연결해주는 역할을 할 수 있음

 

  • OpenFlow
    • SDN 개념을 등장시킨 API라고 봐도 무방함
    • OpenFlow가 개발되면서 특정 PC가 모든 Layer의 네트워크 장치를 대신할 수 있게 됨
    • 필자는 OVS를 먼저 시작해서 OpenFlow는 잘 모름.. 그래도 시초는 OpenFlow인 것으로 알고있음
    • OpenFlow가 개발되고 어디에 팔리고 그게 다시 뭐.. Open vSwitch로 되고 등등 정말 수많은 역사가 있으나, 너무 깊어서 다루진 않겠습니다..

 

References

https://medium.com/@fiberoptics/openvswitch-and-openflow-what-are-they-whats-their-relationship-d0ccd39b9a5c

https://bangchily.tistory.com/29

https://ryusstory.tistory.com/271

  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기