Mininet
是SDN实践必不可少的工具之一,可用于快速构建SDN网络。Mininet可以在普通个人电脑的操作系统上模拟出包括交换机、主机和控制器等软件定义网络的节点,从而满足网络研究人员对搭建网络环境的需求。
Mininet只支持Ubuntu、CentOS、RedHat等系统。Docker
下的Ubuntu配出来有问题,可以不用折腾了。这本书是在Ubuntu下的教程,所以我也直接在虚拟机上安装了Ubuntu14.04。
Ubuntu
下:
<源码>- # 更新源
- apt-get update
- # 下载sudo、git
- apt-get install sudo git
- # 下载Mininet
- cd /tmp
- git clone git://github.com/mininet/mininet
- # 安装
- cd mininet/util
- sudo bash ./install.sh
如果运行sudo mn
没有卡住,而是进入了Mininet的交互界面就表示成功了。
在Docker
下会卡在node建立的地方,目测问题出现在OVS
的问题上。例如,在Docker中执行ovs-vsctl add-br s1
会db连接报错。
如果把OVS装在本机上应该是可以的。
Mininet默认采用Open vSwitch
作为交换机。
ofprotocol模块用于和控制器建立连接并解析OpenFlow协议。
Mininet建立的Host,实际上是一个Namespace,其中运行着/bin/bash
等进程。
主机和交换机端口之间的链路及交换机之间的链路由Veth Pairs(Virtual Ethernet Pairs)来模拟完成。
支持TC(Traffic Control),用户可以自定义链路的宽带、丢包率等具体参数。
Mininet运行时,首先运行/bin/mn
文件,这是一个Python文件。在mn文件中定义了MininetRunner
类,用于完成Mininet的启动。启动分为参数解析、运行环境构建、Mininet拓扑和主机创建等内容,可以分别由MininetRunner
类的self.parseArgs()
、self.setup()
和self.begin()
方法来完成。
版权属于:Hurray's InfoShare
本文链接:https://hurray0.com/menu/23/
如果没有特别声明,则为本博原创。转载时须注明出处及本声明!
最后修改: