The SDN Control Plane

youngwiki
Pinkgo (토론 | 기여)님의 2025년 5월 8일 (목) 16:51 판 (새 문서: 상위 문서: Network Layer ==개요== SDN control plane은 네트워크의 SDN 지원 장치들 사이의 패킷 전달을 제어하고, 해당 장치들과 서비스들을 구성하고 관리하는 네트워크 전역을 관리하는 로직이다. 해당 문서에서는 네트워크의 forwarding 장치를 "패킷 스위치(packet switch)" 혹은 스위치로 부른다. SDN 아키텍처의 네 가지 주요 특징은 다음과 같다: * Flow-based forwarding: 패킷 스...)
(차이) ← 이전 판 | 최신판 (차이) | 다음 판 → (차이)

상위 문서: Network Layer

개요

SDN control plane은 네트워크의 SDN 지원 장치들 사이의 패킷 전달을 제어하고, 해당 장치들과 서비스들을 구성하고 관리하는 네트워크 전역을 관리하는 로직이다. 해당 문서에서는 네트워크의 forwarding 장치를 "패킷 스위치(packet switch)" 혹은 스위치로 부른다. SDN 아키텍처의 네 가지 주요 특징은 다음과 같다:

  • Flow-based forwarding: 패킷 스위치에 의한 패킷 forwarding은 transport/network/link layer 각각의 헤더에 있는 어떤 필드 값에 기반할 수 있다. 이는 IP 데이터그램의 목적지 IP 주소에 의존하는 전통적인 라우터 기반의 forwarding 방식과 매우 대조된다. SDN control plane은 figure 1과 같이, 네트워크 내의 모든 스위치 들에 대한 flow table을 계산하고, 관리하고, 설치한다.
  • Separation of data plane and control plane: Figure 2에 나타나 있는 것과 같이, 스위치들로 구성된 data plane이 "match + action"에 따라 주어진 역할을 수행할 뿐이다. Control plane은 그러한 data plane을 제어하도록 스위치의 flow table을 결정하고 관리하는 서버와 소프트웨어로 구성된다.
  • Network control functions: external to data-plane switches: SDN control plane은 소프트웨어로 구현되며, 이 소프트웨어는 스위치들과 물리적으로 분리 되어있는 서버에서 실행된다. Figure 2에서 볼 수 있듯이, control plane은 두 가지 구성 요소인 SDN 컨트롤러(SDN controller)와 네트워크 제어 애플리케이션(network control application)로 구성된다. SDN 컨트롤러는 네트워크의 상태 정보[1]을 유지하고, 이를 control plane에서 실행되는 네트워크 제어 애플리케이션에 제공하여 해당 애플리케이션들이 data plane에 위치한 네트워크 장치들을 모니터링, 프로그래밍, 제어할 수 있도록 한다.
  • A programmable network: 네트워크는 control plane에서 실행되는 네트워크 제어 애플리케이션들을 통해 프로그래밍된다. 해당 애플리케이션들은 SDN control plane의 두뇌와 같은 역할을 하여, SDN 컨트롤러가 제공하는 API[2]를 통해 data plane을 명시하고 제어한다. 예를 들어, 라우팅 네트워크 제어 애플리케이션은 출발지와 목적지 간의 종단 간 경로를 결정할 수 있으며, 이는 SDN 컨트롤러가 유지하는 노드 상태 및 링크 상태 정보를 사용하여 Dijkstra 알고리즘을 실행함으로써 가능하다.

위에서 논의한 특징들로부터, SDN은 네트워크 기능을 분리시킬 수 있다는 것을 보여준다. 스위치, SDN 컨트롤러, 네트워크 제어 애플리케이션은 각각 다른 조직에 의해서 제공될 수 있는 별개의 구성 요소이다. 이는 기존의 전통적인 방식에서는 스위치/라우터가 control plane의 소프트웨어를 내장한 채 통합되어 구현되던 것과는 대조적인 방식이라고 할 수 있다.

SDN Controller and SDN Network-control Applications

각주

  1. 예: 원격 링크, 스위치, 호스트의 상태 등...
  2. API는 Application Programming Interface의 약자이다. 이는 어떤 소프트웨어가 다른 소프트웨어와 통신하거나, 그 기능을 사용할 수 있도록 정의된 규칙/명령어들의 집합을 의미한다.