주뇽's 저장소

[AWS ECS에서 미니넷 가상환경 돌리기] 본문

GNN/Edge GCF

[AWS ECS에서 미니넷 가상환경 돌리기]

뎁쭌 2025. 2. 27. 11:14
728x90
반응형

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 설치 및 초기 설정을 진행한다

  1. Ubuntu 22.04 LTS를 설치한다 (클라우드 환경 또는 로컬 VM을 사용할 수 있다).
  2. 설치 후 최신 업데이트를 적용한다:
  3. 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
  1. 기본 Python3 버전을 Python 3.11로 설정한다:
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.11 1
  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
  1. Mininet 설치 스크립트를 실행하여 모든 의존성과 도구를 설치한다:
  2. sudo ./util/install.sh -a

라고 실행한다. Ubuntu 22.04에서는 pep8 관련 충돌 없이 설치가 진행된다.

  1. 설치가 완료되면 기본 테스트를 진행한다:
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 테스트가 실행되었음을 확인한다.

  1. 환경 설정 요점을 정리한다

이번 가이드에서는 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 공식 문서