实验 4:Open vSwitch 实验——Mininet 中使用 OVS 命令
实验 4:Open vSwitch 实验——Mininet 中使用 OVS 命令
一、实验目的
二、实验任务
三、实验要求
代码中的主要内容如下:
//在交换机0和交换机1上分别建立网桥dp0和dp1。
switch0.cmd( 'ovs-vsctl add-br dp0' )
switch1.cmd( 'ovs-vsctl add-br dp1' )
//在交换机0和交换机1间实现VLAN
//对于交换机0,输入端口为1,则将vlan号标记为0(4096=4096+0),并在端口3处输出
print switch0.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp0 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:3' )
//对于交换机0,输入端口为2,则将vlan号标记为1(4097=4096+1),并在端口3处输出
print switch0.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp0 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:3' )
//对于交换机0,若vlan号匹配为0,在端口1处输出
print switch0.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp0 priority=1,dl_vlan=0,actions=pop_vlan,output:1' )
//对于交换机0,若vlan号匹配为1,在端口2处输出
print switch0.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp0 priority=1,dl_vlan=1,actions=pop_vlan,output:2' )
//与上述代码类似,不做过多解释
print switch1.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp1 priority=1,in_port=1,actions=push_vlan:0x8100,set_field:4096-\>vlan_vid,output:3' )
print switch1.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp1 priority=1,in_port=2,actions=push_vlan:0x8100,set_field:4097-\>vlan_vid,output:3' )
print switch1.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp1 priority=1,dl_vlan=0,actions=pop_vlan,output:1' )
print switch1.cmd(r'ovs-ofctl -O OpenFlow13 add-flow dp1 priority=1,dl_vlan=1,actions=pop_vlan,output:2' )
//测试各主机之间的连通性
h0.cmdPrint( 'ping -Q 0x10 -c 3 ' + h1.IP() )
h0.cmdPrint( 'ping -Q 0x10 -c 3 ' + h2.IP() )
h0.cmdPrint( 'ping -Q 0x10 -c 3 ' + h3.IP() )
h1.cmdPrint( 'ping -Q 0x10 -c 3 ' + h2.IP() )
h1.cmdPrint( 'ping -Q 0x10 -c 3 ' + h3.IP() )
h2.cmdPrint( 'ping -Q 0x10 -c 3 ' + h3.IP() )
实验结果如以下各图所示: