在Mininet中创建新拓扑

mininet中有通过python方式创建拓扑的示例文件topo-2sw-2host.py,在custom文件夹中,可以直接拷贝修改:
cp topo-2sw-2host.py new.py
(偷懒的情况下创建一个空文件,在编辑器里写好再贴过来)
三个主要的函数:

  • addHost()   创建主机
  • addSwitch()  创建交换机
  • addLink()   添加链路

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


在Mininet中创建新拓扑_第1张图片

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


在Mininet中创建新拓扑_第2张图片

运行拓扑并连接控制器:

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网络与传统网络的区别。

你可能感兴趣的:(在Mininet中创建新拓扑)