SDN은 네트워크 장비의 "두뇌(제어)"와 "근육(전달)"을 분리하여, 소프트웨어로 네트워크를 프로그래밍 가능하게 만드는 패러다임입니다. 클라우드 네트워킹의 기반 기술입니다.


기존 네트워크의 한계

전통적인 네트워크 장비는 제어 기능과 전달 기능이 하나의 장비에 결합 되어 있습니다.

PLAINTEXT
전통적 라우터/스위치:
┌────────────────────┐
│ 제어 플레인 (Control)│  ← 라우팅 결정, 정책
├────────────────────┤
│ 데이터 플레인 (Data) │  ← 패킷 전달
└────────────────────┘
각 장비마다 개별 설정 → 수백 대 관리 어려움

SDN이란

SDN(Software-Defined Networking) 은 제어 플레인을 중앙 컨트롤러로 분리 하여 네트워크를 소프트웨어로 제어합니다.

PLAINTEXT
SDN 아키텍처:
┌─────────────────────────────────┐
│     SDN 애플리케이션               │  ← 방화벽, 로드밸런서, 모니터링
├─────────────────────────────────┤
│     SDN 컨트롤러 (Control Plane)  │  ← 중앙 집중 제어
│     (OpenDaylight, ONOS 등)      │
├─────────────────────────────────┤
│     Southbound API (OpenFlow)   │
├───────┬──────┬──────┬──────────┤
│ 스위치1│스위치2│스위치3│ ...      │  ← 데이터 플레인 (패킷 전달만)
└───────┴──────┴──────┴──────────┘

OpenFlow

SDN 컨트롤러와 네트워크 장비 간 통신 프로토콜입니다.

PLAINTEXT
컨트롤러가 스위치에 플로우 룰 설치:
"출발지 10.0.0.0/24, 목적지 포트 80 → 포트 3으로 전달"

스위치의 플로우 테이블:
| 매칭 조건        | 액션       | 우선순위 |
|-----------------|-----------|---------|
| src=10.0.0.0/24 | 포트 3 전달 | 100     |
| dst port=443    | 포트 5 전달 | 90      |
| 매칭 없음        | 컨트롤러에 문의 | 0    |

SDN의 장점

항목전통 네트워크SDN
설정장비마다 CLI 접속중앙에서 API로 일괄
변경 속도느림 (수동)빠름 (프로그래밍)
자동화어려움쉬움 (REST API)
유연성벤더 종속소프트웨어로 자유롭게

실무 적용

  • Google B4: 데이터센터 간 WAN을 SDN으로 관리 → 대역폭 활용률 95% 달성
  • AWS VPC: 사실상 SDN으로 가상 네트워크 제공
  • VMware NSX: 데이터센터 네트워크 가상화
  • Kubernetes CNI: 컨테이너 네트워킹도 SDN 개념 적용

면접 포인트

  • **SDN의 핵심 **: 제어 플레인과 데이터 플레인의 분리
  • **OpenFlow의 역할 **: 컨트롤러가 스위치에 플로우 룰을 설치하는 프로토콜
  • ** 클라우드와 SDN**: AWS VPC, Azure VNet 등이 SDN 기반

정리

SDN은 네트워크를 프로그래밍 가능하게 만들어 자동화와 유연성을 제공합니다. 클라우드 네트워킹의 기반이며, 면접에서는 제어/데이터 플레인 분리 개념과 실무 적용을 설명할 수 있으면 됩니다.

댓글 로딩 중...