Mininet链接真实网络的实现

黄志文,福州大学数计学院2014级计算机科学与技术(实验班)本科生,研究侧重于数据平面可编程化。

一、背景

Mininet是由一些虚拟的终端节点(end-hosts)、交换机、路由器连接而成的一个网络仿真器,它采用轻量级的虚拟化技术使得系统可以和真实网络相媲美,在SDN实验中不乏发现它的身影。在默认的情况下,Mininet是没有链接到网络,自己独立形成一个局域网络。这通常来说是一个好事,隔离了外界网络的干扰,但是有时我们是需要我们创建的网络链接到网络中,比如需要进行主机与远端控制器的通信。这时候就需要我们进行一些相对应的配置来完成我们的目标。

二、环境

  • Ubuntu14.04LTS in VM
  • Mininet

2.1 Mininet安装

获取源码到本机

安装Mininet

这里典型的[options]主要有下面几种:

  • “-a”:完整安装包括Mininet VM,还包括如Open vSwitch的依赖关系,以及像的OpenFlow Wireshark分离器和POX。默认情况下,这些工具将被安装在你的home目录中。
  • “-nfv”:安装Mininet、基于OpenFlow的交换机和Open vSwitch。
  • “-s mydir” :在其他选项使用前使用此选项可将源代码建立在一个指定的目录中,而不是在你的home目录。

通常而言,选择完整安装Mininet

2.2 Mininet链接真实网络详解

在Mininet2.2以及往后的版本中,可以通过--nat标签来实现链接


通过ping指令确认是否与真实网络链接

值得注意的是,默认情况下,所有的这些方法将重路由(reroute)来自Mininet服务器或者VM的本地的流量,并将重定向到Mininet的IP子网当中(默认为10.0.0.0/8)。如果正在使用的LAN中相同的网段,则可能会造成断开链接。可以使用--ipbase来更改这个子网。

我们同样可以通过调用Python API包 Mininet.addNAT() 来达到NAT。

同时你也可以建立NAT拓扑。

但是这种的实现方法会造成在Mininet中增加了一个nat0主机以达到链接Internet的目的。

在对于网络拓扑有要求的情况下这种方法就显得不太适用。

在Mininet 2.1.0版本试验NAT可以参考 examples目录下的nat.py文件。

在Mininet2.0及其更早的版本的实现的方法是将交换机链接到eth0端口从而实现链接网络的目的。

注意:脚本假定eth0是链接到互联网或者LAN的主机接口,如果不是的的话,你可以进行更改。

将以下语句添加到 /etc/network/interfaces


通过Mininet建立简单的网络拓扑。

通过OVS命令将s1交换机增加本地端口eth0,开启DHCP功能,并将其ip地址设为跟PC同一个网段下,使其在Mininet的主机与控制器可以进行通信。


此时主机已经可以实现DHCP功能,可以自动分配IP,并且每次运行分配的IP不同。

更多的功能可以参考 https://gist.github.com/lantz/5640610

三、实验应用场景


创建如图所示的拓扑结构

Topology: sudo mn --topo=

  • tree,n,m 第一个参数为深度,第二个位扇出系数。可以写成--tree,depth=2,fanout=8
  • single, n:单个交换机,n个交换机
  • liner, n: 线性拓扑,n个交换机

10.0.2.15为floodlight所在服务器的ip。采用6653端口作为openflow通信端口。(6633端口时常被mininet默认控制器占用)

在我们日常使用过程中,可能会遇到需要通过主机跟远端控制器进行通信,但是默认情况下Mininet下的主机却是无法实现的。
比如我们用主机h1去ping控制器所在ip地址10.0.2.15

方法一:这时我们使用mininet的nat标签尝试一下连通网络。

此时我们再用h1 ping一下10.0.2.15和百度


方法二:增加eth0端口

此时我们同样ping一下10.0.2.15

在每次退出mininet之后,建立使用sudo mn -c删除缓存。


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

登录后才可以评论

SDNLAB君 发表于17-06-08
1