Mininet应用实践

1. Mininet简介

1.1 Minint系统架构

1.1.1 kernel datapath架构

1.1.2 userspace datapath架构

1.3 Mininet的主要特点

2. Mininet代码

2.1 Mininet源代码的目录结构

3.Mininet的使用

3.1 MininetCLI命令的功能表


1. Mininet简介

Mininet是一款轻量级的进程虚拟化网络仿真工具,其最重要的一个特点就是它的所有代码几乎可以无缝迁移到真实的硬件环境,方便为网络添加新的功能并进行相关测试。

1.1 Minint系统架构

Mininet是一个可以在有限资源的普通电脑上快速建立大规模SDN原型系统的网络仿真工具。该系统由虚拟的终端节点、OF交换机、控制器组成,这使得它可以模拟真实网络,可对各种想法或网络等进行开发验证。由于Mininet是基于Linux Container这一内核虚拟化技术开发出的进程虚拟化平台,因此其实现进程虚拟化主要是用到了Linux内核的namespace机制,其从Linux版本2.6.27开始支持namespace机制,可以实现进程级的虚拟化。在Linux中不同namespace的进程看到的系统资源可能是不同的。默认所有进程都在root namespace中,某个进程可以通过unshare系统调用拥有一个新的namespace,通过namespace机制可以虚拟化3类系统资源。

网络协议栈:通俗来讲,每个namespace都可以独自拥有一块网卡(可以是虚拟出来的),root namespace看到的就是物理网卡,不同namespace里的进程看到的网卡是不一样的。

进程表:简单来说,就是每个namespace中的第一个进程看到自己的PID是1,以为自己是系统中的第一个进程(实际是init)。同时,不同namespace中的进程之间是不可见的。

挂载表:不同namespace中看到文件系统挂载情况是不一样的。

正是因为Linux内核支持这种namespace机制,可以在Linux内核中创建虚拟主机和定制拓扑,这也是Mininet可以在一台电脑上可以创建支持OF协议的SDN的关键所在。

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

1.1.1 kernel datapath架构

Mininet的kernel datapath架构如图所示,控制器和交换机的网络接口都在root 命名空间中,每个主机都在自己独立的命名空间里,这也就表明每个主机在自己的命名空间中都会有自己独立的虚拟网卡eth0。控制器就是一个用户进程,它会在 loopback 上预留的6633 端口监听来自交换机安全信道的连接。每个交换机对应几个网络接口,如s0-eth0、s0-eth1以及一个ofprotocol进程,它负责管理和维护同一控制器之间的安全信道。

1.1.2 userspace datapath架构

Mininet的userspace datapath架构如图所示,与kernel datapath架构不同,网络的每个节点都拥有自己独立的namespace。因为分组转发逻辑是实现在用户空间,所以多出了一个进程叫ofdatapath。另外,Mininet除了支持kernel datapath和userspace datapath这两种架构以外,还支持OVS交换机。OVS充分利用内核的高效处理能力,它的性能和kernel datapath相差无几

1.3 Mininet的主要特点

灵活性

可以通过软件的方式简单、迅速的创建一个用户自定义的网络拓扑,缩短开发测试周期,支持系统级的还原测试,且提供python API,简单易用。

  • 5
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值