實驗環境:VMware Workstation Pro14.一、ubuntu-16.04ubuntu
操做步驟:網絡
a.利用可視化工具miniedit搭建以下拓撲結構:工具
b.進入edit->preferences,勾選OpenFlow1.3和start CLI兩個功能項:
測試
c.點擊Run按鈕,運行網絡,並使用net命令查看網絡拓撲:
.net
經過使用net命令,咱們能夠從網絡拓撲結構中看出交換機s1的端口4與交換機s2的端口1相鏈接;主機h一、h二、h3分別與交換機s1的端口一、端口二、端口3相連;主機h四、h五、h6分別與交換機s2的端口二、端口三、端口4相連。3d
d.使用pingall命令進行連通性測試:
code
a.將主機h一、h二、h3發送給交換機s1的數據包打上不一樣的vlan tag,並從s1的端口4向交換機s2轉發:blog
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:4 //輸入端口爲s1的1端口,輸出端口爲s1的4端口; sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:4 //輸入端口爲s1的2端口,輸出端口爲s1的4端口; sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4098-\>vlan_vid,output:4 //輸入端口爲s1的3端口,輸出端口爲s1的4端口;
b.將發送給交換機s1端口4的數據包去除vlan tag,並根據不一樣的標籤發送給相對應的主機:get
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=0,actions=pop_vlan,output:1 sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=1,actions=pop_vlan,output:2 sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=2,actions=pop_vlan,output:3
c.將主機h四、h五、h6發送給交換機s2的數據包打上不一樣的vlan tag,並從s2的端口1向交換機s1轉發:博客
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:1 //輸入端口爲s2的2端口,輸出端口爲s2的1端口; sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:1 //輸入端口爲s2的3端口,輸出端口爲s2的1端口; sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=4,actions=push_vlan:0x8100,set_field:4098-\>vlan_vid,output:1 //輸入端口爲s2的4端口,輸出端口爲s2的1端口;
d.將發送給交換機s2端口1的數據包去除vlan tag,並根據不一樣的標籤發送給相對應的主機:
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=0,actions=pop_vlan,output:2 sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=1,actions=pop_vlan,output:3 sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=2,actions=pop_vlan,output:4
完整實驗過程的截圖以下所示:
參考連接:https://blog.csdn.net/rocson001/article/details/73163041
a.查看交換機s1的流表:
sudo ovs-ofctl -O OpenFlow13 dump-flows s1
提交OVS命令執行結果以下所示:
b.查看交換機s2的流表:
sudo ovs-ofctl -O OpenFlow13 dump-flows s2
提交OVS命令執行結果以下所示:
經過pingall命令查看主機連通性,測試結果以下所示:
從主機連通性測試結果中能夠看出,主機h1只能與主機h4ping通,主機h2只能與主機h5ping通,主機h3只能與主機h6ping通,其他主機ping不通,從而驗證了流表的有效性。
a.啓動wireshark:
sudo wireshark
b.啓動wireshark以後執行pingall命令,而後在wireshark中進行報文抓取,可經過過濾器選中ICMP報文,查看主機間的通訊信息:
經過此次實驗,我熟悉了Open vSwitch這一工具的使用,瞭解瞭如何經過一些經常使用的OVS命令來下發流表和查看流表,如何檢測主機的連通性測試效果以及如何利用Wireshark抓包,分析驗證特定報文,有了很多的收穫!