SDN 与 Mininet 概述

SDN 全名为(Software Defined Network)即软件定义网络,是现互联网中一种新型的网络创新架构,其核心技术 OpenFlow 通过网络设备控制面与数据面分离开来,从而实现网络流量的灵活控制,为网络及应用提供了良好的平台。而 Mininet 是一个轻量级软件定义网络和测试平台;它采用轻量级的虚拟化技术使一个单一的系统看起来像一个完整的网络运行想过的内核系统和用户代码,也可简单理解为 SDN 网络系统中的一种基于进程虚拟化平台,它支持 OpenFlow、OpenvSwith 等各种协议,Mininet 也可以模拟一个完整的网络主机、链接和交换机在同一台计算机上且有助于互动开发、测试和演示,尤其是那些使用 OpenFlow 和 SDN 技术;同时也可将此进程虚拟化的平台下代码迁移到真实的环境中。

Mininet 实现的特性

  • 支持 OpenFlow、OpenvSwitch 等软定义网路部件
  • 支持系统级的还原测试,支持复杂拓扑,自定义拓扑等
  • 提供 Python API, 方便多人协作开发
  • 很好的硬件移植性与高扩展性
  • 支持数千台主机的网络结构

MiniNet在一台机器(VM、Cloud或Native)上创建了一个真实的虚拟网络,运行真实的内核、交换机和应用程序代码,只需几秒钟

Mininet在/mininet/node.py中定义了Node、OVSSwitch和Controller等重要的类。在OVSSwitch类中,通过使用命令OVS的命令创建交换机从而得到一个OVS实例。

Mininet创建的host,switch等实例实际上是运行在不同namespace下的某个进程。默认情况下Host运行在自己的namespace中,交换节点运行在root namespace中。

  • Mininet的源码安装

1.     github上获取Mininet源码。

2.     查看当前获取的Mininet版本

Mininet2.1.0p1及以后的版本可以原生支持OpenFlow1.3,所以我们这次安装的Mininet2.3.0d4版本支持OpenFlow1.3协议。

3.     源码树获取成功以后,安装Mininet

# install.sh –a ##完整安装(默认安装在home目录下)

# install.sh -s mydir –a ##完整安装(安装在其他目录)

# install.sh –nfv ##安装Mininet+用户交换机+OVS(安装在home目录下)

# install.sh -s mydir –nfv ##安装Mininet+用户交换机+OVS(安装在其他目录下)

4.     安装完成以后,通过简单的命令测试Mininet的基本功能。

5.     python自定义拓扑后验证拓扑结构(先用mn自带的模板)

简单网络示例图

 

Mininet 网络系统中直接输入 mn 命令,可以在此系统中创建单层的拓扑网络,从中默认创建了两台 host 和一个交换机,并且激活了控制器和交换机。同时也可以通过命令 net 查看到链路情况

Mininet 系统上,实现两主机互连测试。

查看节点与链接

最新文章

  1. jQuery jQuery对象与dom对象的转换
  2. 我开发的SNMP编译器和浏览器
  3. JAVA常用的XML解析方法
  4. 关于ASPCMS标签调用的一些总结
  5. Fisker大师用ZBrush制作兽人萨尔全过程
  6. 技术分享:WIFI钓鱼的入门姿势
  7. Spring基础知识及bean的配置
  8. sharepoint中的YesNo字段
  9. jQuery扩展与noConflict的用法-小示例
  10. poj1981 Circle and Points 单位圆覆盖问题
  11. Android滚动选择控件
  12. [Leetcode] Binary search -- 475. Heaters
  13. Python函数篇(5)-装饰器及实例讲解
  14. PhpStorm中报 “Cannot run program git.exe, 系统找不到指定的文件” 
  15. spark2.1:使用df.select(when(a===b,1).otherwise(0))替换(case when a==b then 1 else 0 end)
  16. Mac ---- markdown 转 html\word\pdf
  17. Hadoop伪分布式的搭建
  18. 第十八节 JS中的正则表达式
  19. java文件上传 关键代码
  20. 卸载postgresql数据库

热门文章

  1. "==" equals和hashCode的联系和区别
  2. sql点滴44—mysql忘记root密码
  3. windows下的MySql实现读写分离
  4. sublime设置node.js编译
  5. Arcgis创建SDE_Geometry、SDO_Geometry的区别
  6. nodeJS---模块与npm包管理工具
  7. HDU1754
  8. $\rm{NOIp}$板子整理
  9. Mysq性能分析 —— Genral log(普通日志)与 Slow log(慢速日式)
  10. 添加mysqld、apache服务到windows服务