주뇽's 저장소
[AWS ECS에서 미니넷 가상환경 돌리기] 본문
Mininet 가상환경 구축하기 - SDN 네트워크 실험 시작하기
Mininet 가상환경을 구축하여 SDN 네트워크를 실험하는 방법을 단계별로 설명한다.
주요 내용 요약 💡
- Mininet 소개 및 필요성 설명한다
단일 머신에서 가상 네트워크(호스트, 스위치, 링크, 컨트롤러)를 에뮬레이션할 수 있도록 하여 SDN 연구와 교육에 활용한다.
비용 절감과 빠른 프로토타이핑을 가능하게 하여 실제 네트워크 하드웨어 없이 다양한 실험을 진행할 수 있도록 한다. - Ubuntu 22.04 LTS 환경 사용을 권장한다
Ubuntu 22.04는 pep8 관련 충돌 없이 안정적으로 설치가 진행되므로 추천한다.
Ubuntu 24를 사용할 경우 install.sh 스크립트의 pep8 호출 부분을 적절히 수정해야 한다. - Python 버전은 Python 3.12 이하(권장: Python 3.11 또는 3.9)를 사용한다
Python 3.12를 사용하면 전역 설치 시 에러가 발생할 수 있으므로 안정성을 위해 3.12 이하 버전을 사용한다. - Mininet 설치 및 네트워크 테스트 수행 방법을 단계별로 설명한다.
1. Mininet이란 무엇이며 왜 필요한가 한다
Mininet은 단일 머신에서 가상 네트워크를 구성하여 SDN 환경을 에뮬레이션할 수 있도록 하는 오픈 소스 도구이다.
실제 네트워크 하드웨어 없이 SDN 컨트롤러와 네트워크 애플리케이션을 개발하고 테스트할 수 있도록 하여 비용 절감과 빠른 프로토타이핑이 가능하도록 한다.
2. 준비 사항을 확인한다
- 운영체제: Ubuntu 22.04 LTS를 사용한다
Ubuntu 22.04는 Mininet 설치 시 pep8 관련 충돌이 발생하지 않으므로 안정적인 환경을 제공한다.
Ubuntu 24를 사용할 경우, install.sh 스크립트의 pep8 호출 부분에서 문제가 발생할 수 있으므로 Ubuntu 22.04 LTS를 사용한다. - Python 버전: Python 3.12 이하(권장: Python 3.11 또는 3.9)를 사용한다
Python 3.12로 전역 설치 시 에러가 발생할 가능성이 있으므로 안정적인 동작을 위해 3.12 이하 버전을 사용한다. - 필수 패키지: Git, Python3, pip 등을 설치한다.
3. Mininet 가상환경 구축 단계별 설치 방법을 설명한다
3.1. Ubuntu 22.04 LTS 설치 및 초기 설정을 진행한다
- Ubuntu 22.04 LTS를 설치한다 (클라우드 환경 또는 로컬 VM을 사용할 수 있다).
- 설치 후 최신 업데이트를 적용한다:
sudo apt update && sudo apt upgrade -y
라고 실행한다.
3.2. Python 버전 설정(예: Python 3.11 사용)을 진행한다
1. Python 3.11과 관련 패키지를 설치한다:
sudo apt install python3.11 python3.11-venv python3.11-dev
- 기본 Python3 버전을 Python 3.11로 설정한다:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
- 설정이 완료되었는지 확인한다:
python3 --version
를 실행하여 Python 3.11.x가 출력되면 정상이다.
만약 Python 3.9를 사용하고자 한다면 위 명령어에서 python3.9로 대체하여 설치하고 기본 버전 설정을 진행한다.
3.3. Mininet 설치를 진행한다
1. Mininet 소스 코드를 클론한다:
git clone https://github.com/mininet/mininet
cd mininet
- Mininet 설치 스크립트를 실행하여 모든 의존성과 도구를 설치한다:
sudo ./util/install.sh -a
라고 실행한다. Ubuntu 22.04에서는 pep8 관련 충돌 없이 설치가 진행된다.
- 설치가 완료되면 기본 테스트를 진행한다:
sudo mn --test pingall
3.4. 테스트 결과를 확인한다
설치 후 다음과 같은 출력이 나타나면 네트워크 구성이 정상적으로 이루어졌음을 확인한다:
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
c0
*** Starting 1 switches
s1 ...
*** Waiting for switches to connect
s1
*** Ping: testing ping reachability
h1 -> h2
h2 -> h1
*** Results: 0% dropped (2/2 received)
*** Stopping 1 controllers
c0
*** Stopping 2 links
..
*** Stopping 1 switches
s1
*** Stopping 2 hosts
h1 h2
*** Done
completed in 5.360 seconds
위 결과를 통해 컨트롤러, 호스트, 스위치, 링크가 정상적으로 추가되었으며, ping 테스트가 실행되었음을 확인한다.
- 환경 설정 요점을 정리한다
이번 가이드에서는 Ubuntu 22.04 LTS와 Python 3.11 환경에서 Mininet 가상환경을 구축하는 방법을 단계별로 설명한다.
• Ubuntu 22.04 LTS 환경은 pep8 관련 충돌 없이 Mininet을 안정적으로 설치할 수 있도록 한다.
• Python 3.11 (또는 3.9) 환경은 Python 3.12를 사용할 경우 전역 설치 시 에러가 발생할 가능성이 있으므로 안정성을 위해 3.12 이하 버전을 사용한다.
이와 같이 환경을 설정하면 Mininet을 활용하여 SDN 연구, 교육 및 네트워크 프로토타이핑을 진행할 수 있도록 한다.
처음 시작하는 사람도 위 단계를 참고하여 손쉽게 가상 네트워크 환경을 구축하고 다양한 네트워크 실험을 진행할 수 있도록 한다.
참고 자료
• Mininet GitHub
• Mininet 공식 문서