[네트워크] SDN control plane

oldshoe·2024년 6월 13일

네트워크

목록 보기
28/34

SDN (Software Defined Network)

SDN(Software Defined Network) 방식은 라우터의 control plane과 data plane을 서로 분리시키고, controller를 중앙화시킨 개념이다.

라우터의 control plane 부분에서 라우팅 알고리즘을 통해 최적의 경로를 계산하고, 계산된 경로에 따라 data plane 부분에서 forwarding을 수행하는 per-router control plaen 방식관느 다르게 최적 경로를 계산하는 controller 부분을 하나로 집중시킨 개념이다.

기존에는 각각의 라우터마다 control plane이 존재했지만, 이를 하나의 control plane에서 통합해서 관리한다.
그러나 SDN에서는 접근 가능한 컴퓨터 장치로 제어 영역이 분리되면서, 논리로 네트워크를 관리하고 제어할 수 있는 애플리케이션으로 네트워크 서비스를 관리할 수 있다.

SDN의 장점

  • 중앙 집중식 관리
    네트워크 제어 로직을 중앙 집중화하여 유연성과 적응성이 뛰어나다. 네트워크를 쉽게 구성 및 제어할 수 있다.
  • 프로그래밍 가능
    네트워크 기능을 직접 프로그래밍하여 트래픽 및 리소스 할당을 최적화할 수 있다.
  • 개방적 연결성
    하드웨어와 소프트웨어를 분리하므로, 네트워크 장비의 제조사 및 종류에 구애받지 않기 때문에 다양성 측면에서 훨씬 빠른 진보가 가능하다.

Traditional Routing의 문제점 - Traffic engineering

최단 거리 알고리즘을 통해 찾은 경로가 아닌, 네트워크 관리자가 임의로 다른 경로를 지정하고 싶을 때 링크 가중치 정보를 재지정해서 라우팅 알고리즘을 통해 재연산 작업을 거쳐야 한다.

또한, 항상 최적의 경로만을 찾기 때문에 트래픽의 로드 밸런싱이 불가능하다.

예를 들어 위의 그림과 같이 경로 정보가 있을 때 u에서 나가는 트래픽을 v와 x에 각각 분산시키고 싶은데 기존의 최단 거리 알고리즘을 통하면 항상 최적의 경로로만 라우팅하게 된다. 또는 새로운 라우팅 알고리즘을 고안해야 한다.

그러나, 네트워크를 구성하는 routing application이 프로그래밍 가능해지게 되면 여러 조건에 따라 다양한 경로를 선택할 수 있고 따라서 더 효율적인 네트워크 구축이 가능하다.

SDN의 구조

  • Data Plane Switch
  • 소프트웨어를 통해 구현된 라우팅 방법에 따라 generalized forwarding을 수행
  • SDN 컨트롤러와 통신하기 위한 API가 존재하며 대표적인 예시로는 Openflow가 있음

  • SDN controller
  • 전체 네트워크를 제어하는 운영 체제 같은 요소
  • 네트워크 어플리케이션과 통신하는 northbound API가 있고, data plane swith들과 통신하는 southbound API 존재
  • 성능, 확장성 등의 개선을 위해 분산 시스템 형태로 구현

  • network control application
  • control plane의 두뇌 같은 존재로, 어떻게 동작할 것인지 제어하는 기능을 실질적으로 구현
  • SDN controller에 의해 API를 제공받음

OpenFlow Protocol

OpenFlow는 data plane과 control plane 사이를 이어주는 인터페이스이다. 메시지 교환에는 TCP가 사용되며 openflow 메시지에는 controller to switch, switch to controller 클래스가 있다.

controller to switch message

컨트롤러에서 스위치로, 위에서 아래로 보내는 메시지

  • feature : switch 상태에 대해 질의
  • configure : switch의 파라미터 확인 또는 설정
  • modify-state : flow entry를 추가하거나 삭제 또는 수정
  • packet-out : 스위치의 특정한 포트에서 패킷을 내보낼 때 사용

switch to controller message

스위치에서 컨트롤러로 보내는 메시지

  • packet-in : 패킷을 컨트롤러로 보낼 때 사용
  • flow-removed : table entry가 삭제되었음을 알림
  • port status : 포트의 상태 변화를 알림

SDN 동작 과정

  1. s1 스위치가 openflow를 통해 SDN controller에게 연결 실패 사실을 알린다.
  2. SDN controller는 openflow 메시지를 받고 link status를 수정한다.
  3. link state가 수정되었기 때문에 다익스트라 알고리즘을 호출한다.
  4. 다익스트라 알고리즘을 통해 새 경로를 계산한다.
  5. 계산한 경로를 기반으로 새 flow table을 생성한다.
  6. controller가 openflow를 통해 스위치들에 새 table을 install 한다.
profile
toomuxi : There are many things in the world that I want to do

0개의 댓글