第五章 从零开始实践 Mininet环境配置

    Hurray 2156次浏览 0条评论 1121字

#笔记 #SDN #mininet

## Mininet实践 `Mininet`是SDN实践必不可少的工具之一,可用于快速构建SDN网络。Mininet可以在普通个人电脑的操作系统上模拟出包括交换机、主机和控制器等软件定义网络的节点,从而满足网络研究人员对搭建网络环境的需求。 ### 环境配置 Mininet只支持Ubuntu、CentOS、RedHat等系统。 `Docker`下的Ubuntu配出来有问题,可以不用折腾了。这本书是在Ubuntu下的教程,所以我也直接在虚拟机上安装了Ubuntu14.04。 `Ubuntu`下: ```bash # 更新源 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装在本机上应该是可以的。 ###系统架构 ![](https://file.hurray0.com/uploads/menu/23/ad3be7211dfee4690c72f96474d89809.jpg) 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()`方法来完成。

最后修改: