使用Mininet

时间:2016-06-07 18:00:10

标签: networking mininet sdn openvswitch

我是Mininet的新手,并创建了一个拓扑。我需要在mininet拓扑中创建的交换机中启用ECN。

如何在交换机中启用ECN?

提前致谢

此致 Hassaan Afridi

1 个答案:

答案 0 :(得分:0)

由于您使用的是OVS 2.0.2版,因此您的交换机至少支持OpenFlow版本1.3。从OpenFlow ver 1.1及更高版本实现的显式拥塞通知(ECN)字段。为了应用该字段,您必须告诉mi​​ninet您将使用1.0以上的版本,这是默认值。要启动mininet topo,我们必须使用遥控器,以便我们可以手动传递流量修改。要在终端中启动mininet,我们选择

sudo mn --topo single,3 --mac --controller remote --switch ovsk,protocols=OpenFlow13

Mininet还可以,但我们必须创建一个与交换机通信的网桥,我们将告诉交换机,通过这个网桥,我们将通过OpenFlow ver 1.3流程修改。为了在新终端中执行此操作,我们在mininet vm处进行ssh,然后使用

创建桥
sudo ovs-vsctl set bridge s1 protocols=OpenFlow13

所以现在我们已经打开了一扇门来交换和传递我们的流程模块,我们必须再次定义openflow协议版本。对于单个mod,我们可以执行类似

的操作
sudo ovs-ofctl -O OpenFlow13 add-flow s1 in_port=1,actions=output:2

sudo ovs-ofctl -O OpenFlow13 add-flow s1 in_port=2,actions=output:1

现在我们手动通过了2次流量修改,h1和h2之间的ping应该可以正常工作。要安装ECN流程模块,我们可以执行类似

的操作
sudo ovs-ofctl -O OpenFlow13 add-flow s1 dl_type=0x0800,nw_ecn=3,actions=output:3

请注意,如OpenFlow文档中所述

  

当指定dl_type = 0x0800或0x86dd时,匹配IP ToS或IPv6流量类字段中的ecn位。当dl_type是通配符或设置为0x0800或0x86dd以外的值时,将忽略nw_ecn的值