在mininet运行python文件_在Mininet中创建新拓扑

mininet中有通过python方式创建拓扑的示例文件topo-2sw-2host.py,在custom文件夹中,可以直接拷贝修改:

cp topo-2sw-2host.py new.py

(偷懒的情况下创建一个空文件,在编辑器里写好再贴过来)

三个主要的函数:

addHost() 创建主机

addSwitch() 创建交换机

addLink() 添加链路

贴一点实用的vim编辑器删除技巧:

貌似写链路的时候一定要串联着来,比如下图,如果按照h1-s1,h2-s2,s1-s2的顺序添加,运行的时候很可能报错。

运行拓扑并连接控制器:

sudo mn --custom new.py --topo mytopo --mac --controller=remote,ip=192.168.179.130,protocols=OpenFlow13

--mac用来最简化MAC地址,即从00:00:00:00:00:01开始。mytopo是新建的拓扑名称,192.168.179.130是我的控制器的IP地址。

登录ODL web页面就看到拓扑图和节点信息了。

在mininet中没有添加流表的时候两台主机就可以ping通,原因在于控制器中的二层自学习功能,因为这是控制器可以通过下发流表的方式来使交换机产生流表,从而两台机器ping通。

这时如果你关闭了控制器,或者下发了action为drop的流表,你会发现两台主机就ping不同了。这个例子其实很好地阐释了sdn网络与传统网络的区别。


版权声明:本文为weixin_39800331原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。