850. SDN (Software Defined Networking) - 제어/데이터 영역 근본 분리
핵심 인사이트: 시스코나 주니퍼 같은 거대 공룡들이 수십 년간 전 세계 네트워크를 지배했다. 이들이 판 비싼 라우터 쇳덩어리 기계 안에는 '길을 찾는 똑똑한 뇌(제어부)'와 '택배를 던지는 멍청한 근육(데이터부)'이 본드로 단단히 붙어 있었다. 그래서 새 기능을 하나 추가하려면 기계 전체를 버리고 새 기계를 또 비싸게 사야 했다. 스탠퍼드 천재들은 분노했다. "야! 기계에서 똑똑한 '뇌'만 핀셋으로 싹 다 적출해 내! 뇌들을 몽땅 모아서 저 위 클라우드(컨트롤러)에 올려버리고, 밑에 남은 깡통 기계(스위치)들은 그냥 클라우드 뇌가 시키는 대로 패킷만 무식하게 던지는 노예로 만들어버려!" 전 세계 하드웨어 독점을 부수고 소프트웨어 혁명을 이끈 빅뱅, 그것이 SDN이다.
Ⅰ. 기존 전통적 네트워크 장비의 치명적 한계 (강결합)
- 라우터 1대 안에는 **Control Plane (길을 묻고 찾는 똑똑한 지도, OSPF/BGP)**과 **Data Plane (패킷을 진짜로 1번 구멍에서 2번 구멍으로 던져주는 칩셋)**이 물리적으로 한 박스 안에 꽁꽁 묶여(Tightly Coupled) 있었습니다.
- 분산의 저주: 전국에 라우터가 1,000대 깔려 있으면, 관리자가 새로운 보안 룰을 넣기 위해 1,000대의 라우터에 일일이 로그인(CLI 타자 치기)해서 1,000번 세팅해야 합니다. 하나라도 휴먼 에러가 나면 전국망이 터집니다. 하드웨어 제조사(벤더)에게 100% 종속되어 새로운 앱 개발은 꿈도 못 꿨습니다.
Ⅱ. SDN (Software Defined Networking)의 개념과 3대 철학 🌟
SDN은 단순한 기술이 아닙니다. **"모든 하드웨어 통신망을 소프트웨어 프로그래밍(코딩)으로 지배하겠다"**는 IT 역사상 가장 위대한 철학이자 아키텍처 패러다임입니다.
1. 제어 평면(Control)과 데이터 평면(Data)의 완벽한 분리 (Decoupling) 🌟
- 장비 안에서 똑똑한 두뇌(Control Plane)를 칼로 도려내어, 중앙 서버 한 대(SDN 컨트롤러)에 다 몰아넣습니다.
- 바닥에 남은 수백 대의 스위치 기계들(Data Plane)은 아무 생각 없이, 중앙의 뇌가 시키는 포워딩 룰(Flow Table)만 맹목적으로 따르는 바보 스위치(깡통)로 전락합니다.
2. 중앙 집중형 논리 통제 (Centralized Control)
- 이제 관리자는 수백 대 장비를 돌아다닐 필요가 없습니다. 저 위에 떠 있는 '단 1대의 중앙 SDN 컨트롤러'의 모니터 한 화면을 통해 전국 수백 대 스위치의 라우팅 맵을 하늘에서 신처럼 내려다보고, 클릭 한 번으로 모든 트래픽 길을 0.1초 만에 틀어버립니다(글로벌 뷰 확보).
3. 네트워크의 프로그래밍 가능성 (Programmability)
- 닫혀있던 네트워크 기계에 외부 개발자들이 **오픈 API(REST API)**를 통해 접속할 수 있게 되었습니다.
- 자바나 파이썬으로 짠 앱 프로그램(예: "디도스 공격 들어오면 10번 스위치 전원 차단해라")을 컨트롤러에 올리면, 컨트롤러가 알아서 전국 스위치에 룰을 하달해 줍니다.
Ⅲ. SDN 아키텍처의 3계층 기본 구조 🌟
이 아키텍처를 이해하는 것이 850번대의 핵심입니다. (이후 문서에서 상세히 뜯어봅니다.)
- 인프라스트럭처 계층 (데이터 평면, 851번): 밑바닥에서 패킷을 팍팍 쳐내는 깡통 화이트박스 스위치들 (오픈플로우 스위치).
- 컨트롤 계층 (제어 평면, 852번): 스위치들을 지배하는 중앙 두뇌 OS (ONOS, OpenDaylight 등 컨트롤러).
- 애플리케이션 계층: "동영상 트래픽 우선 처리해", "디도스 막아" 같은 비즈니스 로직(보안, 방화벽, 로드밸런서)을 파이썬 코드로 짜놓은 앱들.
- 이 3개의 층을 묶어주는 핏줄이 **노스바운드 API(854번)**와 **사우스바운드 API(853번, 대표적으로 OpenFlow)**입니다.
📢 섹션 요약 비유: 옛날 전통적 라우터 군대는 '모든 사병이 각자 지도를 들고 고민하는 오합지졸'이었습니다. 사병 1,000명(라우터)이 각자 머리를 굴려 목적지를 찾아가려니, 장군(관리자)이 전략 하나를 바꾸려면 1,000명의 사병 귀에다 대고 일일이 작전을 속삭여야 했습니다. SDN 혁명은 장군이 사병 1,000명에게서 '지도(두뇌, 제어 평면)'를 전부 뺏어 불태워버리고 사병들을 생각 없는 깡통 근육(데이터 평면)으로 만든 것입니다. 대신 장군(SDN 컨트롤러)이 막사에서 드론을 띄워 전쟁터 전체 지도를 완벽히 내려다보고(중앙 집중 통제), 무전기(오픈플로우)로 "1소대 좌로 가! 2소대 우로 가!"라고 버튼 한 번에 전체 대오를 움직입니다. 사병들은 고민할 필요 없이 즉각 움직이고, 장군은 파이썬 코딩(애플리케이션)으로 수십만 대의 군대를 춤추게 조종하는 궁극의 지휘 통제 시스템입니다.