# P4 02 ## 龍帆軒 可以簡單地把Mininet當成是一個網路模擬器,會創造一個有virtual hosts、switches、controllers跟links的網路。透過mininet在自己的電腦上創造一個虛擬網路,然後以電腦來發送封包並且可以透過SSH登陸虛擬host操作。P4語言主要被運用在switch的控制上,開發者能夠直接定義出一個switch能夠處理的封包格式。 ![](https://i.imgur.com/4EONq2G.png) 圖(一):mininet簡易架構圖 安裝環境過程:一開始先將github(https://github.com/p4lang/tutorials)的repository clone下來,接下來安裝好vagrant跟virtualbox。Vagrant是一款用於構建及配置虛擬開發環境的軟體。在clone下來的vm資料夾裡面打上指令vagrant up就會把虛擬機所需要的資料下載完成了,過程大概一個小時。 之後就可以使用vagrant或是p4帳號進行登入。 ![](https://i.imgur.com/eqYZDhp.png) 圖(二):登入畫面 開啟terminal輸入mn就可以建立簡易的mininet網路 ![](https://i.imgur.com/Wjh4H1l.png) 圖(三) :建立minenet網路 輸入不同指令可以進行不同的操作 **net**:可以看到各鏈結的訊息 h1 h1-eth0:s1-eth1 h2 h2-eth0:s1-eth2 s1 lo: s1-eth1:h1-eth0 s1-eth2:h2-eth0 **nodes**:可以印出所有節點 available nodes are: c0 h1 h2 s1 **dump**:可以看到各節點的訊息 <Host h1: h1-eth0:10.0.0.1 pid=8536> <Host h2: h2-eth0:10.0.0.2 pid=8539> <OVSSwitch s1: lo:127.0.0.1,s1-eth1:None,s1-eth2:None pid=8545> <OVSController c0:127.0.0.1:6653 pid=8529> ![](https://i.imgur.com/GLrvEid.png) 圖(四):不同指令的功能 輸入**h1 ping h2** 便可以從h1向h2發送封包 ![](https://i.imgur.com/DDeB8FF.png) 圖(五):h1 ping h2 也可以將wireshark開啟監控封包轉發的情形 圖中有Source跟destination 其中source 10.0.0.1 destination 10.0.0.2 為h1發送給h2的封包 點開來可以看到詳細的資訊,例如使用IPv4 ![](https://i.imgur.com/g0v3Jre.png) 圖(六):wireshark監控封包 ###### tags: `P4`