2019 SDN上机第2次作业

血红的双手。 提交于 2019-12-03 21:08:01

1. 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名、交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况

拓扑由miniedit完成,并验证端口连接情况


2. 直接在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

3. 直接在Open vSwitch查看流表,提交OVS命令执行结果

查询命令为:

sudo ovs-ofctl -O OpenFlow13 dump-flows s1

4. 提交主机连通性测试结果,验证流表的有效性

如图所示,h1仅和h4相连,h2仅和h5相连,h3仅和h6相连

  1. 利用Wireshark抓包,分析验证特定报文

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!