SDN 테스트 환경 구성 - (1) Mininet 설치하기
컴퓨터/Software Defined Networking (SDN)

SDN 테스트 환경 구성 - (1) Mininet 설치하기

1. Mininet 소개

Mininet은 실제 환경과 아주 유사한 가상 네트워크를 생성할 수 있는 도구로, 실제 커널, 스위치 및 어플리케이션 코드를 하나의 컴퓨터에서 실행할 수 있다.

특히 실제 Open vSwitch 기반 OpenFlow 스위치와 ONOS, OpenDaylight, Ryu 등의 SDN 컨트롤러를 지원하여, SDN 환경을 테스트 할 수 있는 것이 가장 큰 장점이다.

http://mininet.org/

 

Mininet: An Instant Virtual Network on Your Laptop (or Other PC) - Mininet

File a bug, download the source, or submit a pull request - all on GitHub.

mininet.org

2. 설치 환경

가상머신 환경으로 구성하였으며 상세 구성은 아래와 같다.

  • OS: Ubuntu 20.04 LTS Desktop x64 with minimal installation
    • Storage: 80GB, LVM 사용
  • RAM: 8GB
  • Network interface: NAT

3. Mininet 빌드를 위한 패키지 설치

3.1 Linux 패키지 설치

Ubuntu 설치 이후, 아래 명령어를 실행하여 패키지 업데이트 및 필수 패키지를 설치하였다.

sudo apt update
sudo apt -y upgrade
sudo apt -y install build-essential vim git
sudo apt -y install python python2
sudo apt autoremove
sudo apt autoclean

3.2 python 2 버전용 pip 설치

공식적으로 Ubuntu 20.04부터 python2 사용을 권장하지 않음 (deprecated). 하지만, 이후에 설치할 ONOS 컨트롤러와 몇몇 스크립트는 python2 버전을 요구함.

Ubuntu apt repository는 python 2버전을 제공하지만, python 2 버전용 pip는 제공하지 않음. 이후, mininet을 설치하게 되면 python 2버전을 감지하게 되고, pip를 이용하여 패키지를 설치하게 되는데, 이때 아래와 같은 오류가 발생하게 됨.

그래서, 아래 명령어를 실행하여 python 2 버전용 pip를 설치하면 됨.

sudo apt -y install curl
curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py
sudo python2 get-pip.py

4. Mininet 다운로드

편의상 홈 디렉토리에 sdn 디렉토리를 생성한 뒤, 해당 디렉토리에서 작업을 진행하였음.

cd ~
mkdir sdn
cd sdn

아래 명령어를 입력하여 mininet 소스코드를 다운로드함

git clone git://github.com/mininet/mininet

기본값으로 mininet repository의 master branch를 가져오게 되며, 해당 branch는 최신 mininet 버전임.

2021년 9월 7일 기준 최신버전은 2.3.0 버전임. 현재 mininet 버전을 알고싶은 경우 아래 명령어를 입력하면 됨.

head README.md

Mininet: Rapid Prototyping for Software Defined Networks
========================================================
*The best way to emulate almost any network on your laptop!*

Mininet 2.3.0

[![Build Status][1]](https://github.com/mininet/mininet/actions)


### What is Mininet?

5. Mininet 설치

아래 명령어를 입력하여 mininet을 설치함

cd mininet
./util/install.sh -a

install.sh 스크립트는 다양한 설치 옵션을 제공하며, 여기서는 모든 패키지를 설치하는 -a 옵션을 사용함. 다른 설치 옵션을 확인하려면 -h 옵션을 사용하여 확인할 수 있음.

6. Mininet 동작 확인

Mininet은 mn 명령어로 실행할 수 있으며, root 사용자 권한으로 실행되어야 함 (sudo 이용).

아래 명령어를 입력하여 mininet이 정상동작하는지 확인

sudo mn --switch ovsbr --test pingall

아래 화면과 비슷한 화면이 나온다면 정상 동작하는것임.