基于Mininet的OpenFlow拓展性拓扑搭建

前言

我们普遍情况下,都是单一控制器去控制一个网络。但是如果多控制器呢?我们如何实现多控制情况下的通信要求呢?

这有点难度!需要一些东西向的协议来实现控制器之间的数据共享与交换。不是我一个人一两天能搞定的事情。且不同控制器对拓扑信息等存储方式不一样,需要一个统一的标准就显得比较困难。我们先不去想太多。首先,我们需要完成的第一项工作就是数据平面上,不同控制器之间的网络可以相互通信。

最简单的通信莫过于ping了!

实验目的

使用Mininet搭建两个独立的网络,分别属于不同的控制器。同时,底层数据平面可以相互ping通。这就是我们这个实验的目的。

拓扑搭建

底层拓扑搭建我们使用Mininet2.0,因为Mininet1.0版本好像没有link文件,也没有intf类。也许是我没有找到吧。

以下的代码的作用在于创建一个OVS的网络,并使虚拟机的某个(无ip)网卡连接到这个网中。

直接上代码:

以上的代码写完之后,保存为topo.py文件,我们无需再输入什么sudo mn等命令,只需要运行它就可以了。

另外我们还需要在远端运行一个控制器。这个太简单,不懂的同学可以google一下。

这就完成了一个虚拟机的代码编写,另外一个虚拟机的情况同理去做就可以了。

关键配置

在这个时候,两个Mininet中的网络是无法相互ping通的。

因为还有一些关键配置我们没有做。

host的ip配置成与虚拟机网卡同一网段的ip

这一点需要非常注意!因为Mininet模拟出来的host默认情况下,是10网段的,而普通的虚拟机会得到的网段是192的网段。这两个网段并不一样,所以host无法ping通虚拟机网卡也是很正常的,即使物理上做了连接。

所以我们需要对host进行ip配置,在Mininet之下:

最好我们需要把所有的host的ip都修改成192网段的。所以模拟的时候建议host数量不用过多。也许Mininet中可以直接指定所有host的ip网段,我还没有研究到,如果你知道,你可以告诉我!相互交流学习!
这个时候你会发现还是没有ping通!我们需要进行下一步。

将网卡设为桥接模式,并全部允许混杂,同时不给网卡分配IP。

  • 桥接模式能确保虚拟机能和主机通信,并通过主机网卡与两一个虚拟机网卡连接。
  • 混杂模式之下会把目的地址不是自己的数据接受并转发出去。
  • 不给网卡进行dhclient服务,则网卡没有配置ip,从而作为一个二层原件去转发数据。
  • 当两台虚拟机都完成了以上的工作的时候,相信两个Mininet网络之间的host是可以互ping的!好玩吧!

后续

多控制器的沟通,其实更重要的是控制器之间的信息共享,但是那还比较难,以后做出来再说吧。谢谢浏览!

转载自:李呈微博@李呈,http://www.muzixing.com/pages/2014/03/11/yuan-ji-yu-mininetde-openflowtuo-zhan-xing-tuo-bu-da-jian.html


  • 本站原创文章仅代表作者观点,不代表SDNLAB立场。所有原创内容版权均属SDNLAB,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用,转载须注明来自 SDNLAB并附上本文链接。 本站中所有编译类文章仅用于学习和交流目的,编译工作遵照 CC 协议,如果有侵犯到您权益的地方,请及时联系我们。
  • 本文链接https://www.sdnlab.com/1478.html
分享到:
相关文章
条评论

登录后才可以评论

蛋炒饭 发表于14-09-25
4