2019 SDN上机第2次作业

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

创建py文档

在终端输入命令,创建拓扑

sudo mn --custom ./SDN1.py --topo mytopo --switch ovsk,protocols=OpenFlow13

使用pingall命令测试所有节点连通性

结果Results: 100% dropped
为互不连通状态

使用net命令查看拓扑

二、 直接在Open vSwitch下发流表,用vlan得到下列虚拟网段,请逐条说明所下发的流表含义

h1 -- h4互通

h2 -- h5互通

h3 -- h6互通

其余主机不通

sw1

sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096->vlan_vid,output:4
//将主机1进入s1的包打上vlan tag,从端口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
//将主机2进入s1的包打上vlan tag,从端口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
//将主机3进入s1的包打上vlan tag,从端口4发出
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=0,actions=pop_vlan,output:1
//将来自端口4的包去除vlan tag, 并根据tag进行转发端口1
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=1,actions=pop_vlan,output:2
//将来自端口4的包去除vlan tag, 并根据tag进行转发端口2
sudo ovs-ofctl -O OpenFlow13 add-flow s1 priority=1,dl_vlan=2,actions=pop_vlan,output:3
//将来自端口4的包去除vlan tag, 并根据tag进行转发端口3

sw2(与SW1类似)

sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096->vlan_vid,output:4
//将主机4进入s2的包打上vlan tag,从端口4发出
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097->vlan_vid,output:4
//将主机5进入s2的包打上vlan tag,从端口4发出
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,in_port=3,actions=push_vlan:0x8100,set_field:4098->vlan_vid,output:4
//将主机6进入s2的包打上vlan tag,从端口4发出
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=0,actions=pop_vlan,output:1
//将来自端口4的包去除vlan tag, 并根据tag进行转发端口1
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=1,actions=pop_vlan,output:2
//将来自端口4的包去除vlan tag, 并根据tag进行转发端口2
sudo ovs-ofctl -O OpenFlow13 add-flow s2 priority=1,dl_vlan=2,actions=pop_vlan,output:3
//将来自端口4的包去除vlan tag, 并根据tag进行转发端口3

将所有命令输入终端


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

使用下列OVS命令查看s1的流表

sudo ovs-ofctl -O OpenFlow13 dump-flows s1

使用下列OVS命令查看s2的流表

sudo ovs-ofctl -O OpenFlow13 dump-flows s2

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


五、 利用Wireshark抓包,分析验证特定报文

使用下列命令进入抓包工具

sudo wireshark

抓取包含有VLAN tag的数据包,并截图验证

posted @ 2019-11-11 00:10  大口吃肉  阅读(219)  评论(0编辑  收藏  举报