SDN(소프트웨어 정의 네트워킹)이란? 기초 개념 정리

장비 하나하나를 손으로 설정하던 네트워크가 소프트웨어로 통제되기까지, 개념과 구조, 실제 사례와 한계를 차례로 따라가 봅니다.

한눈에 보기

SDN(Software-Defined Networking)은 패킷을 "어디로 보낼지 정하는 일"과 "실제로 보내는 일"을 분리하고, 앞의 일을 소프트웨어로 한곳에 모아 네트워크를 프로그램처럼 다루려는 접근입니다. 스위치와 라우터를 한 대씩 설정하던 방식에서, 정책을 한 번 정의하면 여러 장비에 일관되게 반영하는 방식으로 바뀐다는 것이 핵심입니다. 이 글에서는 용어의 출처와 배경, 구조(평면과 컨트롤러), 전통 방식과의 비교, 공개된 실제 사례, 그리고 흔한 오해와 한계를 순서대로 살펴봅니다. 아래 카드는 개념을 낱개로 정리한 것이므로, 위에서 아래로 읽으면 "무엇 → 분리 → 두뇌 → 프로토콜 → 비교 → 활용 → 한계" 순서로 이어집니다.

어디서 나온 개념일까: 배경과 흐름

제어와 전달을 나누려는 시도는 SDN 이전에도 있었습니다. 위키백과 기준으로 2004년 IETF가 ForCES 인터페이스 표준을 발표했고, 그 뒤 스탠퍼드 대학 컴퓨터과학과의 Ethane 프로젝트가 OpenFlow로 이어졌다고 정리됩니다. OpenFlow 논문은 2008년 ACM SIGCOMM 컴퓨터 커뮤니케이션 리뷰에 "캠퍼스 네트워크에서의 혁신을 가능하게 한다"는 제목으로 실렸습니다. 2011년에는 SDN과 OpenFlow를 확산시키려는 Open Networking Foundation(ONF)이 설립되었고(위키백과 기준), ONF는 지금도 SDN을 "제어 평면과 전달 평면을 분리하고, 하나의 제어 평면이 여러 장비를 관리하는 구조"로 설명합니다. 이후 2015년 1월 IRTF가 정보성 문서 RFC 7426으로 SDN의 계층과 용어를 정리했습니다. 이 문서는 SDN이 무엇인지에 대한 혼란을 줄이려는 목적으로 쓰였다고 밝힙니다.

🎛️

SDN(소프트웨어 정의 네트워킹)이란

네트워크 장비마다 흩어져 있던 제어 기능을 중앙의 소프트웨어(컨트롤러)로 모아 네트워크 전체를 프로그래밍하듯 관리하는 방식입니다.

전통적인 스위치·라우터는 트래픽을 어디로 보낼지 "결정하는 기능(제어 평면)"과 실제로 "데이터를 전달하는 기능(데이터 평면)"을 장비 한 대 안에 함께 갖고 있습니다. SDN(Software Defined Networking)은 이 둘을 분리해 제어 기능을 중앙 소프트웨어로 옮기고, 개별 장비는 지시받은 대로 데이터만 전달하도록 단순화한 네트워크 아키텍처입니다.

🧩

제어 평면과 데이터 평면의 분리

"어디로 보낼지 정하는" 제어 평면과 "실제로 전달만 하는" 데이터 평면을 나누는 것이 SDN의 핵심 개념입니다.

전통적인 네트워크에서는 라우터 한 대 한 대가 각자 라우팅 테이블을 계산하고 판단합니다. SDN에서는 이 판단 기능을 중앙 컨트롤러로 옮기고, 스위치는 컨트롤러가 내려준 규칙(플로우 테이블)에 따라 패킷을 전달하는 단순한 실행 장치 역할만 담당합니다. 덕분에 네트워크 전체의 동작을 한곳에서 일관되게 파악하고 바꿀 수 있습니다.

🖥️

SDN 컨트롤러의 역할

네트워크 전체를 내려다보며 트래픽 경로와 정책을 결정해 각 스위치에 규칙을 배포하는 두뇌 역할을 합니다.

SDN 컨트롤러는 네트워크 전체의 토폴로지(구조)와 상태를 실시간으로 파악하고, 관리자가 설정한 정책(어떤 트래픽을 우선할지, 어떤 경로로 보낼지 등)에 따라 개별 스위치에 전달 규칙을 내려보냅니다. 관리자는 장비를 한 대씩 설정하는 대신, 컨트롤러 하나에 정책을 정의하는 것만으로 네트워크 전체를 제어할 수 있습니다.

🔗

OpenFlow 프로토콜

SDN 컨트롤러와 스위치가 서로 통신하며 플로우 규칙을 주고받을 때 쓰이는 대표적인 표준 프로토콜입니다.

OpenFlow는 컨트롤러가 스위치의 플로우 테이블(어떤 패킷을 어디로 보낼지 정의한 규칙표)에 규칙을 추가·수정·삭제할 수 있게 해주는 프로토콜입니다. 스위치는 규칙에 맞는 패킷을 그대로 전달하고, 규칙에 없는 패킷은 컨트롤러에 물어볼 수 있습니다. 2008년 ACM SIGCOMM 컴퓨터 커뮤니케이션 리뷰에 실린 논문 "OpenFlow: Enabling innovation in campus networks"가 대표적인 출발점으로 인용되며, 이후 표준은 Open Networking Foundation(ONF)이 관리합니다. ONF는 OpenFlow를 SDN 솔루션을 만드는 "기초 요소"로 설명하지만, SDN이 곧 OpenFlow라는 뜻은 아닙니다. 위키백과 기준으로 OpenFlow는 TCP 위에서 동작하며 TLS 사용을 규정하고, 컨트롤러는 TCP 6653번 포트(과거에는 비공식적으로 6633번)를 쓰도록 권고됩니다.

⚖️

전통적 네트워크와의 차이

장비마다 개별 설정이 필요한 전통 방식과 달리, SDN은 중앙에서 정책을 한 번에 정의하고 자동으로 전체 장비에 반영합니다.

전통적인 네트워크 운영은 장비 제조사별로 다른 명령어 체계(CLI)를 하나하나 입력해야 하고, 변경 사항이 있을 때마다 관련 장비를 일일이 손봐야 했습니다. SDN 환경에서는 정책을 소프트웨어 코드나 중앙 대시보드에서 한 번만 정의하면 컨트롤러가 알아서 필요한 장비에 규칙을 배포하므로, 변경 속도와 자동화 수준이 크게 높아집니다.

🏢

실제 활용 사례

대규모 클라우드 데이터센터의 트래픽 자동 제어부터 네트워크 가상화, NFV(네트워크 기능 가상화)와의 결합까지 폭넓게 쓰입니다.

공개된 대표 사례는 구글이 데이터센터 사이를 잇는 광역망 B4에 SDN과 OpenFlow를 적용한 경험을 2013년 SIGCOMM에 발표한 논문입니다(아래 사례 참고). 기업 WAN 구간을 소프트웨어로 제어하는 SD-WAN도 SDN 개념을 광역 네트워크에 적용한 사례이며, 방화벽·로드밸런서 같은 네트워크 기능을 소프트웨어로 구현하는 NFV와 함께 조합되는 경우도 많습니다.

⚠️

한계와 고려할 점

컨트롤러가 단일 장애점이 될 수 있고, 기존 장비·인력의 전환 비용과 학습 곡선도 함께 고려해야 합니다.

제어 기능이 중앙 컨트롤러에 집중되는 만큼, 컨트롤러 자체가 장애를 일으키거나 공격받으면 네트워크 전체에 영향을 줄 수 있어 이중화·보안 설계가 필수적입니다. 또한 기존 장비를 SDN 대응 장비로 교체하거나 운영 인력이 새로운 소프트웨어 중심 운영 방식을 익히는 데도 시간과 비용이 필요합니다.

RFC 7426이 나눈 다섯 개의 평면

"제어 평면과 데이터 평면"이라는 두 단어만 알면 SDN 문서에서 길을 잃기 쉽습니다. RFC 7426은 다음과 같이 평면을 구분합니다(요약).

평면하는 일
전달 평면(데이터 평면)제어 평면의 지시에 따라 데이터 경로에서 패킷을 처리
운영 평면장비의 동작 상태(활성 여부, 포트 수, 포트별 상태 등) 관리
제어 평면패킷을 어떻게 전달할지 결정하고, 그 결정을 장비에 내려보냄
관리 평면장비를 감시·설정·유지보수. 주로 운영 평면을 대상으로 하며, 전달 평면 설정은 드물고 큼직하게 함
애플리케이션 평면네트워크 동작을 정의하는 응용과 서비스

이 구분이 중요한 이유는 "컨트롤러가 무엇을 맡는가"가 제품과 설계마다 다르기 때문입니다. 어떤 구현은 경로 계산 전체를, 어떤 구현은 정책 배포만 맡습니다. 용어를 평면 단위로 말하면 오해가 줄어듭니다.

전통 네트워크와 SDN 비교

관점전통적 방식SDN 방식
판단 위치장비마다 각자 경로를 계산컨트롤러가 전체 구조를 보고 결정
설정 방식제조사별 CLI로 장비별 입력정책을 소프트웨어·API로 정의해 배포
변경 반영관련 장비를 일일이 수정컨트롤러가 필요한 장비에 규칙 전파
가시성장비별로 흩어진 정보전체 토폴로지를 한곳에서 파악
주된 위험설정 불일치, 변경 속도컨트롤러 장애·공격의 파급, 전환 비용

공개된 사례로 보는 SDN

사례 1. 구글 B4: 데이터센터 사이 광역망에 적용한 SDN (2013년 논문)

구글은 자사 데이터센터들을 잇는 광역망 B4를 SDN으로 운영한 경험을 2013년 홍콩에서 열린 ACM SIGCOMM에서 "B4: Experience with a Globally-Deployed Software Defined WAN"이라는 논문으로 발표했습니다. 논문 초록은 B4가 상용 반도체 기반의 비교적 단순한 스위치를 OpenFlow로 제어한다고 설명합니다. 이런 설계가 가능했던 이유로는 대역폭 요구가 매우 크지만 연결 지점은 많지 않고, 트래픽이 유연하며, 엣지 서버와 네트워크를 모두 직접 통제할 수 있다는 구글 트래픽의 특성을 듭니다. 초록에 따르면 중앙집중식 트래픽 엔지니어링 서비스는 링크 사용률을 100%에 가깝게 끌어올리면서, 애플리케이션 흐름을 여러 경로로 나눠 용량과 우선순위·수요의 균형을 맞춥니다. 논문은 3년간의 운영 경험과 교훈, 앞으로의 과제를 다루며, 목차에는 장애 경험을 다룬 절도 있습니다. 이후 SIGCOMM은 이 연구가 WAN 규모에서 SDN이 실용적임을 보였다고 평가하는 상을 수여했습니다. 배울 점은 SDN의 이점이 "아무 네트워크에나" 나타나는 것이 아니라, 트래픽 성격과 통제 범위 같은 조건이 맞을 때 크게 나타난다는 것입니다.

사례 2. 캠퍼스 망에서 시작된 OpenFlow (2008년 논문)

OpenFlow의 출발점으로 인용되는 논문은 2008년 4월 ACM SIGCOMM 컴퓨터 커뮤니케이션 리뷰에 실린 McKeown 등의 "OpenFlow: Enabling innovation in campus networks"입니다. 제목이 보여 주듯 캠퍼스 네트워크가 무대였습니다. 위키백과는 OpenFlow를 컨트롤러가 스위치의 플로우 테이블에 패킷 매칭 규칙과 동작을 추가·수정·삭제하는 방식으로 설명하고, 이 기술이 스탠퍼드 대학의 Ethane 프로젝트에서 이어졌다고 정리합니다. 이 사례에서 배울 점은 SDN이 처음부터 대형 클라우드 전용 기술로 등장한 것이 아니라 캠퍼스 망이라는 비교적 작은 환경에서 제안되어 이후 운영 환경으로 확장되었다는 흐름입니다. 논문 본문을 직접 열어 확인한 것은 아니며, 서지 정보와 위키백과에서 확인한 범위만 서술했습니다.

가상 예시. 학교 네트워크에서 정책 하나 바꾸기

아래는 실제 사건이 아닌 가상 예시입니다. 스위치 수십 대로 이루어진 학교 망에서 "시험 기간에는 도서관 존의 학습 사이트를 우선 처리한다"는 정책을 도입한다고 가정해 봅시다. 전통 방식이라면 관리자가 관련 스위치마다 접속해 우선순위 설정을 입력하고, 시험이 끝나면 다시 하나씩 되돌려야 합니다. SDN 방식이라면 컨트롤러에 정책을 한 번 정의하고 기간이 끝나면 정책을 해제하면 되며, 컨트롤러가 필요한 장비의 규칙을 갱신합니다. 다만 컨트롤러가 멈추면 어떻게 동작할지(기존 규칙 유지 여부 등)를 사전에 설계해 두어야 한다는 점도 이 예시가 보여 주는 중요한 부분입니다.

도입을 검토할 때 확인할 점

흔한 오해와 정정

한계와 아직 논쟁 중인 점

위키백과는 중앙화가 보안·확장성·탄력성 면에서 우려를 낳는다고 정리하며, 인터넷 커뮤니티 일부는 제어와 전달의 분리가 제어 평면 장애의 위험을 키운다고 보았다고 서술합니다. 또한 제조사들이 표준 API 때문에 경쟁이 심해질 것을 우려했다는 지적도 있습니다. 어떤 구조가 최선인지는 환경에 따라 다르며, 구글 B4처럼 통제 범위가 넓은 사업자의 결과를 모든 조직에 그대로 일반화하기는 어렵습니다. 이 글의 설명은 개념 입문용이며, 실제 도입은 장비 제조사 문서와 표준 문서(ONF, IETF RFC)를 기준으로 검토하시기 바랍니다.

이어서 읽어 볼 가이드

SDN 환경에서 트래픽을 여러 서버로 분산하는 원리가 궁금하다면로드밸런싱(부하 분산)이란? 기초 개념 정리를, 콘텐츠 전송 구조는 CDN(콘텐츠 전송 네트워크)이란? 기초 개념 정리를, 네트워크 분리의 기초는 VLAN 기초를, 계층 개념의 토대는 OSI 7계층 모델을 확인해 보세요.

자주 묻는 질문

SDN은 일반 가정에서도 쓰이나요?

가정용 공유기에는 거의 쓰이지 않습니다. SDN은 수십~수만 대의 장비를 한꺼번에 관리해야 하는 데이터센터, 통신사 백본망, 대기업 사내망처럼 규모가 큰 환경에서 관리 효율을 높이기 위해 주로 도입됩니다.

SDN과 SD-WAN은 같은 개념인가요?

SD-WAN은 SDN의 개념(제어와 데이터 평면 분리, 소프트웨어 기반 정책 제어)을 지사 간 광역 네트워크(WAN) 구간에 적용한 사례에 가깝습니다. SDN이 더 넓은 개념이고, SD-WAN은 그 응용 분야 중 하나로 이해하면 됩니다.

컨트롤러가 멈추면 네트워크 전체가 멈추나요?

설계에 따라 다릅니다. 컨트롤러를 이중화하거나, 스위치가 이미 받은 규칙으로 계속 전달하도록 구성할 수 있지만, 새 흐름 처리나 정책 변경은 영향을 받을 수 있습니다. 그래서 장애 시 동작을 설계 단계에서 정의하는 것이 중요합니다.

NFV와 SDN은 무엇이 다른가요?

SDN은 제어와 전달의 분리를 통한 네트워크 제어 방식이고, NFV는 방화벽·로드밸런서 같은 네트워크 기능을 전용 장비 대신 소프트웨어로 구현하는 방식입니다. 서로 독립적이지만 함께 쓰이는 경우가 많습니다.

SDN을 공부하려면 무엇부터 보면 좋나요?

먼저 OSI 계층과 스위칭·라우팅의 기본을 익히고, 그다음 ONF의 SDN 정의 문서와 RFC 7426을 읽어 용어를 잡은 뒤, OpenFlow 논문과 구글 B4 논문 같은 공개 자료로 실제 적용 맥락을 살펴보는 순서를 권합니다.