- 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况
========================================================================
拓扑由miniedit完成,并验证端口连接情况
- 直接在Open vSwitch下发流表,实现如下连通性要求,请逐条说明所下发的流表含义
==============================================
h1 -- h4互通
h2 -- h5互通
h3 -- h6互通
其余主机不通
sudo ovs-ofctl add-flow -O OpenFlow13 s1 in_port=1,actions=push_vlan:0x8100,set_field:4097->vlan_vid,output:4
sudo ovs-ofctl add-flow -O OpenFlow13 s1 in_port=2,actions=push_vlan:0x8100,set_field:4098->vlan_vid,output:4
sudo ovs-ofctl add-flow -O OpenFlow13 s1 in_port=3,actions=push_vlan:0x8100,set_field:4099->vlan_vid,output:4
//以上是分别将h1,h2,h3三个主机里的转到交换机s1里的连接过程,in_port是指进来的端口号,actions指的是要进行的动作,set field值为4096+vlan_id,并且vlan优先级为0,即4096-8191,对应的vlan_id为0-4095,output指的是出口连接的4
sudo ovs-ofctl add-flow s1 in_port=4,dl_vlan=1,actions=strip_vlan,output:1
sudo ovs-ofctl add-flow s1 in_port=4,dl_vlan=2,actions=strip_vlan,output:2
sudo ovs-ofctl add-flow s1 in_port=4,dl_vlan=3,actions=strip_vlan,output:3
//以上是分别将从s2来的解包,从actions里可以看出是要剥掉报文内外层vlan tag,再进行转发。
//以下s2同理,s1和s2都要做才可以互通。
sudo ovs-ofctl add-flow -O OpenFlow13 s2 in_port=1,actions=push_vlan:0x8100,set_field:4097->vlan_vid,output:4
sudo ovs-ofctl add-flow -O OpenFlow13 s2 in_port=2,actions=push_vlan:0x8100,set_field:4098->vlan_vid,output:4
sudo ovs-ofctl add-flow -O OpenFlow13 s2 in_port=3,actions=push_vlan:0x8100,set_field:4099->vlan_vid,output:4
sudo ovs-ofctl add-flow s2 in_port=4,dl_vlan=1,actions=strip_vlan,output:1
sudo ovs-ofctl add-flow s2 in_port=4,dl_vlan=2,actions=strip_vlan,output:2
sudo ovs-ofctl add-flow s2 in_port=4,dl_vlan=3,actions=strip_vlan,output:3
- 直接在Open vSwitch查看流表,提交OVS命令执行结果
==================================
查询命令为:
sudo ovs-ofctl -O OpenFlow13 dump-flows s1
- 提交主机连通性测试结果,验证流表的有效性
=======================
如图所示,h1仅和h4相连,h2仅和h5相连,h3仅和h6相连
- 利用Wireshark抓包,分析验证特定报文