在Mininet中创建新拓扑
2017-03-31 本文已影响359人
顽强的猫尾草
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网络与传统网络的区别。