Openlab实验平台实验--Mininet 安装

时间:2024-03-13 15:49:35

任务目的

1、了解Mininet的基本概念与作用。
2、掌握Mininet的源码安装方法。

任务环境

设备名称 软件环境 硬件环境
主机 Ubuntu 14.04命令行版 CPU:1核 内存:2G 磁盘:20G

注:系统默认的账户为root/[email protected],openlab/[email protected]
任务内容
1、学习Mininet的概念和作用。
2、通过不同的方式安装Mininet。

实验原理
一、Mininet简介

Mininet是一个可以在有限资源的普通电脑上快速建立大规模SDN原型系统的网络仿真工具。该系统由虚拟的终端节点(End-Host)、OpenFlow交换机、控制器(也支持远程控制器)组成,这使得它可以模拟真实网络,可对各种想法或网络协议等进行开发验证。目前Mininet已经作为官方的演示平台对各个版本的OpenFlow协议进行演示和测试。

Mininet是基于Linux Container这一内核虚拟化技术开发出的虚拟化平台,其实现虚拟化主要是用到了Linux内核的Network namespace资源隔离机制。Linux的Network namespace机制可以让每个namespace拥有独立的网络设备、网络协议栈和端口等。Mininet正是利用了Linux这种Networknamespace机制,才可以在一台电脑上创建多台虚拟主机。此外,Mininet建立的网络拓扑的交换节点可以是OpenvSwitch、Linux Bridge等软件交换机,交换节点之间的链路采用Linux的vethpair(virtual Ethernet pair)机制实现,控制器可以部署在网络可达的任意地方。因此,Mininet可以定制任意灵活的SDN网络拓扑,为实验用户提供快捷可靠的实验环境。

Mininet架构按datapath的运行权限不同,分为kernel datapath和userspace datapath 两种,其中kernel datapath把分组转发的逻辑编译进入Linux内核,效率非常高;userspace datapath把分组转发逻辑实现为一个应用程序,叫做ofdatapath,效率虽不及kernel datapath,但更为灵活,更容易重新编译。

Mininet的kernel datapath架构如图1所示,控制器和交换机的网络接口都在root 命名空间中,每个主机都在自己独立的命名空间里,这也就表明每个主机在自己的命名空间中都会有自己独立的虚拟网卡eth0。控制器就是一个用户进程,它会在loopback上预留的6633端口监听来自交换机安全信道的连接。每个交换机对应几个网络接口,比如s0-eth0、s0-eth1以及一个ofprotocol进程,它负责管理和维护同一控制器之间的安全信道。
Openlab实验平台实验--Mininet 安装
图 1 kernel datapath架构
Mininet的userspace datapath架构如图2所示,与kernel datapath架构不同,网络的每个节点都拥有自己独立的namespace。因为分组转发逻辑是实现在用户空间,所以多出了一个进程叫ofdatapath。另外,Mininet除了支持kernel datapath和userspace datapath这两种架构以外,还支持OVS交换机。OVS充分利用内核的高效处理能力,它的性能和kernel datapath相差无几。

Openlab实验平台实验--Mininet 安装
图 2 userspace datapath架构

二、Mininet安装

Mininet的安装有三种方式:一种是从网上直接下载安装好Mininet的虚拟机镜像,然后在VMware或者VirtureBox上打开Mininet虚拟机即可。这种安装方法是最简单的,但是该方法不支持最新版本的OpenvSwitch。第二种是在本地安装Mininet源代码。该安装方法在安装过程中可以设置OpenvSwitch的版本。第三种是安装Mininet文件包,该安装方法也不支持最新版本的OpenvSwitch。推荐使用第二种安装方法,安装命令即参数解释如下:

1、 命令格式
Openlab实验平台实验--Mininet 安装
2、 参数解释

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

“-a”:完整安装,包括Mininet VM,还包括Open
vSwitch的依赖关系、OpenFlow、Wireshark分离器和POX等。默认情况下,这些工具将被安装在home目录中。

“-nfv”:安装Mininet核心文件及依赖、OpenFlow和Open vSwitch。

“-s mydir”:使用此选项可将源代码建立在一个指定的目录中,而不是home目录。

所以,可能会用到下面的某一个命令来安装Mininet:

install.sh -a 完整安装(默认安装在home目录下)
install.sh -s mydir -a 完整安装(安装在其他目录)
install.sh -nfv 安装Mininet+用户交换机+OVS(安装在home目录下)
install.sh -s mydir -nfv 安装Mininet+用户交换机+OVS(安装在其他目录下)

实验步骤

本次介绍的Mininet安装方法适用于本地虚拟机,EC2远程和本地安装,并适合在一个干净的Ubuntu上进行安装。不适用于从旧版本的Mininet或OVS升级。为支持新版本的OpenvSwitch,建议安装14.04及以上版本的Ubuntu。

1、 以root用户登录主机,以下命令全部以root身份运行。

sudo su

2、
Openlab实验平台实验--Mininet 安装