~/network/sdn
아키텍처

SDN

Software-Defined Networking

네트워크의 제어 기능(Control Plane)패킷 전달 기능(Data Plane) 을 분리하여, 중앙 컨트롤러가 네트워크 전체를 소프트웨어로 통제할 수 있게 하는 아키텍처이다.

전통적인 네트워크에서는 각 스위치와 라우터가 자체적으로 라우팅을 결정하고, 분산 프로토콜(STP, OSPF, BGP 등)을 통해 이웃 장비와 정보를 교환하며 토폴로지를 학습했다. SDN은 이런 분산 결정을 한 곳에 모아, 네트워크 전체를 하나의 시스템처럼 통제할 수 있게 한 것이 핵심이다.

등장 배경

2000년대 후반 데이터센터와 클라우드 환경이 빠르게 커지면서, 전통적인 네트워크 운영 방식은 다음과 같은 한계를 드러냈다.

  • 벤더 종속: 각 벤더(Cisco, Juniper 등)의 OS와 명령어 체계가 달라 자동화가 어려움
  • 분산 프로토콜의 복잡성: STP, OSPF, BGP 등이 서로 얽혀 동작해 디버깅과 변경이 까다로움
  • 변경의 위험: 한 장비의 설정 변경이 전체 네트워크에 예측하기 어려운 영향을 미침
  • 기능 추가의 경직성: 새로운 기능을 추가하려면 모든 장비의 펌웨어 업데이트가 필요
  • 운영 인력 의존: 자동화보다 사람의 CLI 작업에 의존

2008년 스탠퍼드 대학에서 발표된 OpenFlow 프로토콜이 SDN 개념의 시작점으로 평가된다. 이후 클라우드 사업자(Google, Microsoft, AWS 등)가 자체 데이터센터에서 SDN을 도입하면서 산업 표준으로 자리잡았다.

Control Plane과 Data Plane의 분리

전통 네트워크 장비는 한 박스 안에 두 가지 기능이 함께 들어 있다.

  • Control Plane: "어떤 패킷을 어디로 보낼 것인가"를 결정. 라우팅 프로토콜이 여기서 동작
  • Data Plane: 결정된 규칙에 따라 실제로 패킷을 포워딩. ASIC이 이 일을 처리

SDN은 이 두 Plane을 물리적으로 분리한다.

[전통 네트워크]                    [SDN]

  ┌───────────────┐                 ┌───────────────┐
  │ Control Plane │                 │   컨트롤러      │ ← Control Plane
  ├───────────────┤                 │  (서버에서 동작) │
  │  Data Plane   │                 └───────┬───────┘
  └───────────────┘                         │ (OpenFlow 등)
  (각 스위치 안에                              ▼
   둘 다 들어 있음)                    ┌───────────────┐
                                    │  스위치        │ ← Data Plane만
                                    │  (단순 포워딩)  │
                                    └──────────────┘

스위치는 컨트롤러가 내려준 포워딩 테이블에 따라 패킷을 전달하는 단순한 역할만 맡고, 토폴로지 학습과 경로 결정은 모두 컨트롤러가 담당한다.

아키텍처

3 Layer 구조

SDN은 일반적으로 3 Layer 구조로 설명된다.

Layer역할예시
Application Layer네트워크 정책과 요구사항을 정의보안, QoS, 로드 밸런싱 정책
Control LayerSDN 컨트롤러. 전체 네트워크의 두뇌OpenDaylight, ONOS, Cisco APIC
Infrastructure Layer실제 스위치와 라우터. 컨트롤러의 지시에 따라 동작OpenFlow 스위치, 화이트박스 스위치

각 Layer 사이는 표준 인터페이스로 연결된다.

  • Northbound API: Application ↔ Controller (보통 REST API)
  • Southbound API: Controller ↔ Infrastructure (OpenFlow, NETCONF, gNMI)

Plane과 Layer

앞서 설명한 Control/Data Plane과 위 3 Layer는 같은 구조를 다른 각도에서 부르는 용어이다.

Plane 관점Layer 관점실체
Application Layer컨트롤러에 정책을 요청하는 앱
Control PlaneControl LayerSDN 컨트롤러
Data PlaneInfrastructure Layer스위치/라우터
  • Plane은 장비가 하는 일을 결정(어디로 보낼지 계산)과 실행(실제로 패킷을 옮김)으로 나눈 기능 분리의 관점이다. 결정은 가끔 일어나는 복잡한 계산이라 CPU가, 실행은 패킷마다 일어나는 단순 작업이라 ASIC이 담당하기 때문에 자연스럽게 두 갈래로 갈라진다.
  • Layer는 "위에서 아래로 누가 누구에게 지시하느냐"라는 아키텍처 구성의 관점이다.

전통 네트워크에서는 Control Plane과 Data Plane이 한 장비 안에 함께 들어 있었지만, SDN은 Control Plane을 별도 서버(컨트롤러)로 분리하고 그 위에 컨트롤러를 호출하는 Application Layer를 새로 얹어 3계층 구조가 된다. Application Layer는 자동화 스크립트나 보안 정책 엔진처럼 컨트롤러를 API로 호출하는 외부 소프트웨어를 가리킨다.

주요 프로토콜

프로토콜위치역할
OpenFlowSouthbound컨트롤러가 스위치의 포워딩 테이블을 직접 설정
NETCONF/YANGSouthbound네트워크 장비 설정 자동화 표준
OpenConfigSouthbound벤더 중립적인 데이터 모델
gNMISouthboundgRPC 기반 네트워크 관리 프로토콜

OpenFlow가 가장 잘 알려져 있지만, 실제 운영 환경에서는 NETCONF, gNMI 같은 더 일반적인 관리 프로토콜이 함께 쓰인다.

실제 구현 사례

솔루션영역설명
Cisco ACI데이터센터 SDNAPIC 컨트롤러 + Nexus 스위치. 정책 기반 운영
VMware NSX가상화 환경하이퍼바이저 안에서 동작하는 오버레이 SDN
OpenStack Neutron클라우드 인프라오픈소스 클라우드의 네트워킹 모듈
Google B4자체 데이터센터 백본Google이 자사 데이터센터를 잇기 위해 자체 구축한 SDN
Microsoft SDNAzure 데이터센터SmartNIC 기반의 데이터센터 SDN
AWS VPC클라우드 네트워킹사실상 거대 SDN 위에서 가상 네트워크 제공

대형 클라우드 사업자는 거의 모두 자체 SDN 위에서 인프라를 운영한다. 사용자에게 보이는 "VPC", "서브넷", "보안 그룹" 같은 추상화는 모두 그 위에서 구현된 것이다.

SDN의 장점

  • 자동화: API 한 번 호출로 수천 대 장비의 설정을 동시에 변경
  • 유연성: 새로운 정책이나 기능을 소프트웨어 업데이트만으로 추가
  • 가시성: 컨트롤러가 전체 토폴로지를 알고 있어 모니터링이 용이
  • 벤더 독립성: 표준 프로토콜로 멀티 벤더 환경 운영 가능
  • 빠른 변경: 분산 프로토콜의 convergence time 없이 즉각 반영

한계와 비판

  • SPOF(Single Point of Failure): 컨트롤러 장애가 네트워크 전체를 마비시킬 수 있음 (이중화 필수)
  • 확장성: 매우 큰 네트워크에서는 컨트롤러의 부하가 병목이 될 수 있음
  • Latency: 컨트롤러와 스위치 사이의 통신 지연이 새 플로우 처리에 영향
  • 학습 곡선: 운영 인력에게 새로운 패러다임이라 도입 비용이 큼
  • 벤더 통합: 표준 프로토콜이 있어도 실제로는 벤더별 확장이 많아 진정한 멀티 벤더가 어려움

관련 기술

SDN 흐름과 함께 등장한 인접 개념들이다.

  • NFV (Network Function Virtualization): 방화벽, 로드 밸런서 같은 네트워크 기능을 전용 어플라이언스가 아니라 가상 머신/컨테이너에서 소프트웨어로 동작시키는 접근
  • SD-WAN: WAN 영역에 SDN 개념을 적용한 것. 지점 사이를 잇는 트래픽을 중앙에서 정책으로 통제
  • Intent-Based Networking: "무엇을 원하는가"를 선언하면 시스템이 알아서 구현. SDN보다 더 추상화된 운영 모델

정리

  • SDN = Control Plane과 Data Plane을 분리해 네트워크를 소프트웨어로 통제하는 아키텍처
  • 핵심: 중앙 컨트롤러가 네트워크 전체를 한 시스템처럼 관장
  • 출발점: 2008년 OpenFlow
  • 현재 위상: 클라우드와 대형 데이터센터의 사실상 표준
  • 인접 개념: NFV, SD-WAN, Intent-Based Networking

SDN의 단일 주체가 패브릭 전체를 통제하는 모델InfiniBand Subnet Manager의 동작 방식과 본질적으로 동일하다. 즉 SDN은 이더넷 진영(이더넷/IP 기반 네트워킹을 만들고 쓰는 표준 단체 + 벤더 + 사용자 생태계 전체)이 InfiniBand가 이미 하던 방식을 뒤늦게 일반 네트워크에 적용한 것이다.