---
# System prepended metadata

title: Mininet
tags: [mininet]

---

# Mininet 

###### tags: `mininet`

## 操作
* `sudo mn`
    * mininet 會自動產生兩台虛擬機 m1 m2，交換器 s1
* `mininet> help`
* `mininet> net`
    * 列出節點資訊
* `mininet> nodes`
    * 列出有哪些節點
* `mininet> links`
    * 列出有哪些連線
    * OK 表示正常
* `mininet> dump`
    * 列出節點的系統資訊
* `mininel> pingall`
    * 測試節點連通性
* `mininet> h1 ping h2`
    * h1 送 icmp request 封包給 h2
* 可以在 mininet 裡面測試任何原本在 linux 環境可以執行的程式，而不只是 mininet 提供的工具
* `mininet> sh ovs-ofctl dump-flows s1 -O openflow13`
    * ovs-ofctl 指令測試交換器上的 openflow 功能
    * sh 表示透過 Shell 執行一個外部的程式
    * dump-flows s1 表示列出 s1 目前 flow table 資訊
        * mininet 已經預先載入一個 rule 在 s1
* `mininet> sh ovs-ofctl del-flows s1 -O openflow13`
    * 清掉 flow table
* `mininet> h1 ifconfig -a`
    * 看到 h1 上的網路設定
* `mininet> xterm h1`
    * 開啟 h1 的終端視窗
    * `h1~# echo "hello world"`
* `mininet> exit`
    * 離開 mininet
* `sudo mn -c `
    * 清掉系統中 mininet 的東西

## 簡單建立

* sudo mn --topo single,3 --mac --switch ovsk --controller remote
* ryu-manager example_switch_13.py
* --verbose 參數能讓 log 印出在 ryu controller 的 terminal 上

###### 第一週 SDN初探｜Introduction to SDN
https://hackmd.io/DdhCBaHaTdu8MT0HexBchA

###### 第二週 OpenFlow協定｜OpenFlow Protocol
https://hackmd.io/xgFUU0XcSQCpsoNJMLHXIg

###### 第三週 控制平面與基本使用案例
https://hackmd.io/fyNftW1XTe6GPpf0tP-wtQ

###### 第四週 REST API與進階使用案例
https://hackmd.io/EGOYiKAeQH2CLgKy7Vpxaw

###### 第五週 網路功能虛擬化｜Network Function Virtualization (NFV) 
https://hackmd.io/@zhu849/SJub7bX2_


#### ERROR

##### mportError: cannot import name 'ALREADY_HANDLED' from 'eventlet.wsgi'
* pip install eventlet==0.30.2
