861. 미니넷 (Mininet) - SDN 토폴로지 에뮬레이터 연구 평가망 시뮬레이션 환경 (버추얼 환경)
핵심 인사이트: SDN 컨트롤러(뇌) 프로그램을 새로 짰다. 이 똑똑한 뇌가 1,000대의 라우터들을 잘 조종하는지 테스트해 봐야 한다. 그런데 테스트하자고 시스코 스위치 1,000대를 100억 원어치 살 수는 없지 않은가? "그냥 내 낡은 윈도우 노트북 1대 안에다가, 스위치 1,000대, 서버 10,000대, 랜선 5만 개짜리 '가상(Virtual) 통신망 세상'을 1초 만에 뚝딱 소프트웨어로 만들어 버리자!" 내 노트북을 전 세계 크기의 데이터센터 시뮬레이터로 둔갑시켜 주는 마법의 게임, 그것이 미니넷(Mininet)이다.
Ⅰ. 미니넷 (Mininet)의 개념과 존재 이유
- 개념: 노트북이나 데스크탑(리눅스 커널) 단 한 대의 자원만으로, 수백 대의 가상 호스트(서버), 가상 스위치(OVS), 가상 링크(랜선)로 이루어진 거대한 SDN 네트워크 토폴로지(네트워크 망 구조)를 눈 깜짝할 새 소프트웨어로 생성(Emulation)해 내는 초경량 네트워크 에뮬레이터입니다.
- 용도: 대학원생, 개발자, 네트워크 엔지니어들이 새로운 라우팅 알고리즘이나 SDN 컨트롤러(ONOS, ODL 등)를 개발했을 때, 실 장비를 사지 않고 그 작동을 검증해 볼 수 있는 절대적인 테스트베드 샌드박스입니다.
Ⅱ. 미니넷의 3대 핵심 마법 구조 (어떻게 1대에 다 넣었나?) 🌟
수백 대의 컴퓨터를 띄우는데 왜 노트북이 뻗지 않을까요? VMWare처럼 진짜 무거운 가상머신을 띄우는 게 아니기 때문입니다.
1. 네트워크 네임스페이스 (Network Namespaces) 🌟
- 리눅스 커널의 경량 격리 기술인 '네임스페이스(컨테이너의 원리)'를 기가 막히게 악용(?)합니다.
- 미니넷에서 호스트(Host)를 100개 만든다고 컴퓨터 100대를 켜는 게 아닙니다. 그냥 리눅스 뱃속에 **네트워크 IP와 라우팅 테이블(장부)만 100개로 쪼개어 가벽을 쳐둔 독립된 100개의 방(네임스페이스)**을 만듭니다. CPU와 메모리 소모가 파리 목숨처럼 작아서 노트북 1대에 방 1,000개를 파도 끄떡없습니다.
2. 가상 스위치 OVS (Open vSwitch) 연동
- 방(Host) 1,000개를 이을 거대한 스위치 장비가 필요합니다. 미니넷은 앞서 860번에서 배운 리눅스의 자랑, 최강의 가상 스위치 **OVS(Open vSwitch)**를 냅다 띄웁니다.
- 그리고 이 OVS 구멍들에 1,000개의 방(Host)을 가상의 랜선(veth pair)으로 푹푹 꽂아버립니다.
3. veth pair (가상 이더넷 케이블) 연결
- 컴퓨터와 스위치를 잇는 구리선 랜선을 어떻게 시뮬레이션할까요?
veth pair라는 마법의 파이프(소프트웨어 파이프)를 허공에 만듭니다. 한쪽 구멍은 호스트 1번 방에 넣고, 반대쪽 구멍은 OVS 스위치에 꽂습니다. 이 파이프에는 패킷 지연(Delay=10ms), 대역폭 제한(Bandwidth=100Mbps), 패킷 드랍율 10% 등 내가 원하는 '물리적 랜선의 한계'를 코딩으로 똑같이 흉내(에뮬레이션) 내어 조작할 수 있습니다.
Ⅲ. 미니넷과 SDN 컨트롤러의 결합 (현실과 가상의 만남)
- 미니넷이 노트북 안에서 1,000대짜리 가상의 스위치 망(데이터 평면)을 띄웠습니다.
- 사용자는 이 미니넷 가상 망을, 자기 컴퓨터 밖 클라우드에 띄워둔 **'진짜 리얼 SDN 컨트롤러(ONOS 등)'**와 OpenFlow 프로토콜로 묶어버립니다.
- 실제 SDN 컨트롤러는 멍청해서 자기가 조종하는 스위치 1,000대가 진짜 쇳덩어리 기계인지, 아니면 미니넷이 노트북에 그린 가짜 게임 속 그림(에뮬레이터)인지 절대 눈치채지 못합니다. 완벽하게 속아서 룰을 내려주며 실전과 100% 동일한 통신 핑퐁 라우팅 테스트가 진행됩니다.
📢 섹션 요약 비유: SDN 망 테스트를 위해 진짜 시스코 스위치 100대와 컴퓨터 1,000대를 사서 렌선을 꽂는 짓은, 도로 교통체증을 연구하겠다고 실제 자동차 1만 대를 사서 고속도로를 짓는 멍청한 토목 공사입니다. **미니넷(Mininet)**은 내 노트북 안에 깔아 둔 완벽한 물리 엔진을 갖춘 '심시티(SimCity) 네트워크 버전' 게임입니다. 이 게임 안에서는 마우스 드래그(파이썬 코드 3줄)만 하면 자동차 1만 대(네임스페이스 호스트)와 도로, 톨게이트 100개(OVS 가상 스위치)가 1초 만에 모니터 화면 속에 세팅됩니다. 이 가짜 도로망을 실제 교통 통제탑(SDN 컨트롤러)과 연결하면 통제탑은 화면 속 도로가 진짜인 줄 알고 완벽하게 교통 신호(플로우 테이블)를 떨어뜨려 주며, 돈 한 푼 들이지 않고 노트북 안에서 국가 단위 통신망 테스트를 마칠 수 있는 천재적인 에뮬레이션 공간입니다.