Simple is IT, 누구나 보고 누구나 깨닫는 IT

Mininet!! SDN(Software Defined Networking, Openflow) 설정 본문

Simple is IT/Network

Mininet!! SDN(Software Defined Networking, Openflow) 설정

currenjin 2020. 4. 27. 10:18

SDN(Software Defined Networking)

- 네트워크 제어 기능이 물리적 네트워크와 분리되도록 프로그래밍한 네트워크 구조

- 네트워크 제어 기능을 데이터 전달 기능과 분리해 구현한다.

SDN을 가장 간략하게 표현한 그림

!! 자세한 내용은 이전 포스팅 확인

https://blog.naver.com/hyun0524e/221838513601


Ubuntu:16.04

Mininet

- 일반 PC에서 쉽게 가상의 네트워크 환경을 구성, Openflow를 활용한 SDN과 같은 네트워크 환겨을 구성해볼 수 있는 프로그램이다.

Mininet 설치

# apt-get insatll git -y

# cd mininet

# git tag // version

# cd util

# ./install.sh -a

설치가 완료되었다.

Test

# mn --switch ovs --topo single,3 --test pingall

-> 네트워크를 구성하는데 OpenvSwitch를 이용, 토폴로지는 Single, 호스트 수는 3개

-> 테스트로 서로 통신을 확인한 후 종료한다.

구성은 아래와 같다.

Single Topology


Single Topology 구성

위의 명령과 같은 동작을 하는 Python Code를 작성 !

singleDemo.py

# python singleDemo.py

Test 시 명령과 똑같은 결과가 출력되네요 !

만약 테스트 후 계속해서 제어하고 싶다면 ?

net.stop() -> 주석처리

run 함수 마지막 CLI(net) 추가

결과는?

Ping Test 이후에도 계속해서 제어 중인 것을 확인


Lear Topology 구성

ex) mn --switch ovs --topo linear,3

구성을 살펴보면 다음과 같다.

Python Code로 작성해보기

결과는?


Tree Topology 구성

ex) mn --topo tree,depth=3,fanout=2

엄청 많음.. 왜인지는 구성을 통해 살펴보자.

전형적인 다단계 트리구조이니 많은 이유가 다 있다.

Python Code로 작성해보기(넘 많아서 depth=2로 작성)

결과


Mininet GUI 실행 및 각종 명령어

일단 gui에 설치가 되어있어야 한다.

# apt-get install xinit flwm

# startx

GUI 실행

# cd mininet/mininet/examples

# ./miniedit.py

명령어

# help // 도움말 및 명령어 확인

# nodes // 노드 확인

# net // 네트워크 디바이스 정보

# dump // 노드들의 정보

# [이름] ifconfig -a

# [이름] netstat -anlp

# [이름] ps -a

# [이름] ping [이름]

# [이름] python -m SimpleHTTPServer 80 & // 웹서비스 실행

# [이름] kill %python

# [이름] wget -O - [이름]

# xterm [이름] // 해당 node의 터미널 창 실행



Comments