mininet下建立拓扑时关于远程控制器的一个小问题

最近重装了系统和mininet后,使用mininet时遇到了一点小问题,一开始忽视了细节,使得自己被这个问题困扰了好一会儿,好在后来还是发现了问题所在,故记录下来。

$ sudo mn --topo single,3 --mac --switch ovsk --controller remote

上述命令是一个比较常见的命令,即告诉mininet创建一个拓扑,该拓扑由3个主机连接到1个openvSwitch上,设置各主机的MAC地址等于它的IP,并且指向一个remote控制器。

$./pox/pox.py forwarding.hub

启动pox控制器自带的集线器功能

如果熟悉pox,那一眼就能看出虽然Hub已经running,但控制器并未成功连接到交换机,此时我们尝试在mininet中输入pingall命令,自然是ping不通的。

回过头来看所作的两个操作,我们需要注意到,创建拓扑时,指向的remote控制器在尝试连接了127.0.0.1:6653和127.0.0.1:6633都未连接上控制器(controller还未启动)后,最终还是指向了前者(即端口号为6653);但是,我们的pox控制器默认是工作在localhost(即127.0.0.1:6633);于是两个端口号不一致,自然无法将交换机和控制器连接上。

发现问题所在后,在启动mininet时,可以指定remote控制器工作在localhost,

$ sudo mn --topo single,3 --mac --switch ovsk --controller remote,ip=127.0.0.1,port=6633

启动pox控制器集线器功能

这时,我们可以看到 connected 字样,说明控制器和交换机连接上了,并显示了交换机的数据路径标识符(dpid)为00-00-00-00-00-01。这时我们再进行pingall测试,网络内的3个主机相互可以ping通。

总结:上述问题其实非常小,而且使用mininet经验丰富后,是不容易犯这样的错误的;关键还是在于要注意细节,要问问自己,工具的默认配置是怎样的?与我当前的实际情况相符合么?建议还是根据自己的要求手动配置工具选项,这样清晰易懂;另外,还要注意工具给出的提示。

猜你喜欢

转载自www.cnblogs.com/qiaoyanlin/p/9055420.html