Ubuntu에서 Mininet(미니넷) 구축하기 | 환경 구축 - 1

2023. 1. 13. 14:47·Ubuntu

*2023 - 03- 24 내용 보충 및 수정하였습니다. 그리고 포스팅 길이가 길고 삽입된 이미지가 많아서 포스팅 로딩시간이 다소 길 수 있어서, 환경구축과 파이썬코드 및 결과 두개의 글로 나눠서 다시 포스팅 했습니다.

 

Oracle VM VirtualBox가 설치되었있다는 전재하에 진행하겠습니다
프로젝트는 Oracle VM VirtualBox를 통해서 진행되었습니다

 

Mininet 이란

가상 네트워크를 통해 SDN이나 OpenFlow와 같은 네트워크 환경을 시뮬레이션할 수 있는 오픈 소스 프로그램으로는 Mininet이 알려져 있습니다.

Mininet은 가상 스위치와 호스트를 사용하여 네트워크를 시뮬레이션하는 소프트웨어로, SDN 및 OpenFlow와 같은 네트워크 프로토콜을 시험하고 개발하는 데 사용됩니다. Mininet은 Python 기반으로 작성되어 있으며, 가상화 기술을 사용하여 다중 사용자를 지원하고, 빠르고 쉽게 네트워크를 생성하고 시험할 수 있습니다.

Mininet은 학술 연구, 프로토 타입 및 시스템 테스트, 교육 및 교육용 목적으로 사용됩니다. Mininet은 또한 OpenFlow 교육 및 SDN 프로토 타입 개발 등의 목적으로도 사용됩니다.

 

환경 구축하기(Build)

 

1.  Oracle VM VirtualBox 실행

Fig. 1. 프로젝트 환경(Project Environment)

 

  • OS : Ubuntu(64bit)
  • Memory : 4096MB
  • Processors : 4

 

 

2.  패키지 업데이트

Fig. 2. 패키지 업데이트

 

Fig. 2에서는 터미널에서 $ sudo su 명령어를 사용하여 관리자 모드로 진입한 후, $ apt-get update 명령어를 사용하여 운영체제에서 사용 가능한 패키지들과 그 버전에 대한 정보를 업데이트합니다.

$ sudo su 명령어는 현재 사용자의 권한을 관리자 권한으로 변경해주는 명령어입니다. 

$ apt-get update 명령어는 운영체제에서 사용 가능한 패키지 정보를 최신으로 업데이트하여, 새로운 패키지를 설치하거나 기존 패키지를 업그레이드할 때 최신 버전을 사용할 수 있도록 합니다.

 


 

3. 미니넷 설치

 

Fig. 3. 미니넷 설치

 

Fig. 3에서는 Ubuntu환경에 미니넷을 설치하는 커멘드또한 입력해줍니다

 


 

 

4. 설치 확인

Fig. 4. 미니넷 설치 확인

 

Fig. 4에서는 미니넷이 정상적으로 설치되었는지 확인할 수 있으며, 

관리자 모드로 이미 진입하여 root@가 표시되어 있는 경우에는 "mn" 명령어만으로 확인이 가능합니다. 

결과적으로 기본 스위치인 s1과 호스트 h1, h2가 서로 연결되어 있는 것을 확인할 수 있습니다.

간단하게 설명하면, Fig.4 에는 없지만, OpenFlow 컨트롤러는 스위치에게 명령을 전송하고 관리하는 역할을 합니다. 이러한 기능을 구현하기 위해 SDN을 위한 프레임워크 중 하나인 Ryu를 사용하여 컨트롤러가 작동하는 방식에 대해 배울 수 있습니다.

 

컨트롤러가 있다는 가정하에, h1에서 h2로 패킷을 보내는 과정은 다음과 같습니다:

ex) h1에서 h2로 패킷을 보내는 과정

h1 ---------> s1 ----------> controller ----------> s1 ----------> h2

 


 

 

5. Vim 설치 및 파이썬 코드 작성

Fig. 5. vim 설치
Fig. 6. networkTopo.py라는 이름의 파이썬 파일 생성
Fig. 6. vim화면
Fig. 7. insert mode

 

Vim은 터미널 기반의 텍스트 에디터로, 파이썬 코드 작성을 비롯한 다양한 텍스트 파일 작성에 사용될 수 있습니다.

위에서 언급한 $ vim networkTopo.py 명령어는 Vim 에디터를 사용하여 networkTopo.py라는 이름의 파이썬 파일을 생성하고, 해당 파일을 작성할 수 있는 환경을 제공합니다.

Vim에서 파이썬 코드를 작성하는 방법은 다음과 같습니다 : 

  1.  $ vim networkTopo.py 명령어를 사용하여 networkTopo.py 파일을 생성합니다.
  2.  Vim 에디터가 실행되면, i 키를 눌러 insert 모드로 진입합니다.
  3. 코드를 작성하고, Esc 키를 눌러 insert 모드를 종료합니다.
  4. :(콜론)을 입력하고, wq 명령어를 입력하여 작성한 코드를 저장하고 Vim 에디터를 종료합니다.
    위의 방법을 통해 Vim에서 파이썬 코드를 작성할 수 있으며, 해당 파일을 실행하거나 모듈로서 사용할 수 있습니다.
  • i : insert mode
  • Esc : normal mode
  • ZZ(대문자) : 저장 후 화면 나옴

결과

2023.03.24 - [네트워크 Network/가상 머신 Ubuntu] - Ubuntu에서 Mininet(미니넷) 구축하기 | 파이썬 코드 작성 및 결과 - 2

 

Ubuntu에서 Mininet(미니넷) 구축하기 | 파이썬 코드 작성 및 결과 - 2

2023.01.13 - [네트워크 Network/가상 머신 Ubuntu] - Ubuntu에서 Mininet(미니넷) 구축하기 | 환경 구축 - 1 Ubuntu에서 Mininet(미니넷) 구축하기 | 환경 구축 - 1 *2023 - 03- 24 내용 보충 및 수정하였습니다. 그리고

jelong.tistory.com


저작자표시 비영리 변경금지 (새창열림)
'Ubuntu' 카테고리의 다른 글
  • Ubuntu에서 Mininet(미니넷) 구축하기 | 파이썬 코드 작성 및 결과 - 2
Jelong
Jelong
커스텀 웹: https://jaehong-park.com Github: https://github.com/qkrwoghd04
  • Jelong
    24/7 Developer's Note
    Jelong
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Software Engineering
      • Ubuntu
      • Network
      • JavaScript
      • Web
      • Interaction Design
      • React Native
      • React
      • Algorithm
      • Java
      • Database design
      • IT Trend
      • TroubleShooting
      • AWS
      • Interview
      • LG CNS AM CAMP 1기
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    frontend
    heap
    소프트웨어 공학
    javascript
    티스토리챌린지
    BST
    prototyping
    알고리즘 분석
    알고리즘
    블랙 박스 테스트
    자바스크립트
    typescript
    화이트 박스 테스트
    Queues
    generic
    React
    미니넷
    mininet
    ChatGPT
    expo
    JS
    이진트리
    GPT-4
    java
    html
    데이터 구조
    AWS
    자바
    css
    오블완
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Jelong
Ubuntu에서 Mininet(미니넷) 구축하기 | 환경 구축 - 1
상단으로

티스토리툴바