SDN练习第一题

题目描述


实现网络拓扑:

具体要求:

  • 南向接口采用OpenFlow 协议。
  • 可查看网络的拓扑信息视图。
  • H1、H2、H3、H4 任意两两可互通。

实现思路


  • 利用mininet可视化图形界面miniedit画出网络拓扑以及实现openflow协议,之后导出python脚本。
  • 运行floodlight控制器。
  • 运行python脚本并连接floodlight控制器。
  • ping以及拓扑信息视图获取。

miniedit


  • 使用以下命令运行miniedit:
root@ubuntu:/home/liuhy# cd mininet/
root@ubuntu:/home/liuhy/mininet# cd examples/
root@ubuntu:/home/liuhy/mininet/examples# ./miniedit.py

  • 画出拓扑:

  • 右键点击控制器c0选择Preferences修改信息如下:

说明:1.2版本的flood了light控制器默认端口为6653。不修改会造成端口冲突等问题。

  • 左上角Edit→Preferences来编辑协议等信息。

  • 左上角File→Expoet Level 2 Script储存python脚本。

运行floodlight控制器


  • 通过以下命令来创建floodlight控制器,默认端口6653
root@ubuntu:/home/liuhy# cd floodlight/
root@ubuntu:/home/liuhy/floodlight# java -jar target/floodlight.jar

运行脚本


  • 为了确保准确无误,我们来检查脚本。
root@ubuntu:/home/liuhy/mininet# vim sdn1.py

  • 保存

运行脚本连接控制器


  • 注意:脚本直接运行,不用像实验三那样子配置参数,因为脚本中已经配置完毕。
root@ubuntu:/home/liuhy/mininet# sudo python sdn1.py

  • 效果如图

    • mininet

    • floodlight

信息获取


  • 连接状态
mininet> pingall

  • 拓扑信息

遇到的问题


  • 安装floodlight时环境变量出现问题,管态下命令丢失。

  • /bin 不在PATH 环境变量中,故无法找到该命令

    • 原因:配置java环境变量时,不小心把系统的PATH变量弄丢了(或者说覆盖掉)。
    • 解决方法:
      • 打开 ~/.bashrc 进行修改。
      • 运行 gedit ~/.bashrc
      • 如果碰到:“/gedit 不在PATH 环境变量中,故无法找到该命令”,问题,可以先设置临时的PATH变量。
      • 贴出设置环境变量方法
  • 连接floodlight控制器时连接失败问题

    • 原因:端口错误。
    • 解决办法:
      • 查看相关版本生成控制器的端口号。
      • 理解脚本创建拓扑的原理,修改脚本。

SDN练习一的更多相关文章

  1. SDN/NFV运营商商业化部署

    三大运营商发布未来网络架构,并逐步加快SDN/NFV商业化部署的步伐.中国联通发布其新一代网络架构<CUBE-Net 2.0白皮书>,并与20多家合作伙伴共同启动了“新一代网络”合作研发计 ...

  2. SDN/NFV若干问题

    1.首先谈一谈网络技术和组网技术的关系 网络可分为两层:业务网.承载网.业务网主要是组织业务系统,而承载网主要是用来传输信息流:包括传送网(点到点数据专线).数据网(端到端连接).内容分发网(点到多点 ...

  3. 解读SDN的东西、南北向接口

    北向接口(Northbound Interface)是为厂家或运营商进行接入和管理网络的接口,即向上提供的接口. 南向接口(Southbound Interface)是提供对其他厂家网元的管理功能,支 ...

  4. SDN:motivation

    今天公交车上看了会SDN一本介绍性的书籍,具体名字不记得了.我想,我已经在实验室呆了很久的时间的,接触SDN也有一段时间了.对SDN的一些基本的知识还是需要好好整理一番.当然,这里只是一个随笔,想到什 ...

  5. SDN与NFV技术在云数据中心的规模应用探讨

    Neo 2016-1-29 | 发表评论 编者按:以云数据中心为切入点,首先对SDN领域中的叠加网络.SDN控制器.VxLAN 3种重要技术特点进行了研究,接下来对NFV领域中的通用服务器性能.服务链 ...

  6. SDDC-SDN-SDS

    SDDCSDNSDS软件定义存储是一个较大的行业发展趋势,这个行业还包括软件定义网络(SDN)和软件定义数据中心(SDDC). SDDC依赖于虚拟化和云计算技术, SDDC的目标是虚拟化数据中心的一切 ...

  7. SDN三种模型解析

    数十年前,计算机科学家兼网络作家Andrew S. Tanenbaum讽刺标准过多难以选择,当然现在也是如此,比如软件定义网络模型的数量也很多.但是在考虑部署软件定义网络(SDN)或者试点之前,首先需 ...

  8. 浅谈SDN和NFV之间的关系

    一个行业固定设备的折旧周期很长,任何变革的发生都绝非易事,但是网络却一次性面临两项革新--软件定义网络(SDN)和网络功能虚拟化(NFV),在变革网络的过程中,二者若想取得成功可能会依赖彼此的技术,或 ...

  9. SDN跟网络虚拟化的完美结合

    SDN跟网络虚拟化的完美结合 之前说过,所谓的“SDN最适合的领域是数据中心”的说法,笔者认为更准确的说法应该是SDN最适合的领域是数据中心中的网络虚拟化应用.为什么说SDN 非常适合用在网络虚拟化中 ...

  10. 深度解析SDN——利益、战略、技术、实践(实战派专家力作,业内众多专家推荐)

    深度解析SDN——利益.战略.技术.实践(实战派专家力作,业内众多专家推荐) 张卫峰 编   ISBN 978-7-121-21821-7 2013年11月出版 定价:59.00元 232页 16开 ...

随机推荐

  1. PHP保存数组到数据库

    数组是 PHP 开发中使用最多的数据类型之一,对于结构化的数据尤为重要. 很多时候我们需要把数组保存到数据库中,实现对结构化数据的直接存储和读取. 其中一个案例就是,对于 Form 提交的多选 che ...

  2. CentOS6安装各种大数据软件 第一章:各个软件版本介绍

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  3. 弄清Spark、Storm、MapReduce的这几点区别才能学好大数据

    很多初学者在刚刚接触大数据的时候会有很多疑惑,比如对MapReduce.Storm.Spark三个计算框架的理解经常会产生混乱. 哪一个适合对大量数据进行处理?哪一个又适合对实时的流数据进行处理?又该 ...

  4. 树莓派3B+学习笔记:11、查看硬件信息

    1.查看CPU信息 cat /proc/cpuinfo 查看最后三行 如果只想查看最后三行,也可使用这个命令 /proc/cpuinfo lscpu 2.查看树莓派型号 cat /proc/devic ...

  5. U盘直接读写(今天用到了)

    #ifndef INVALID_SET_FILE_POINTER #define INVALID_SET_FILE_POINTER (DWORD)-1 #endif #define FILE_BEGI ...

  6. 分别给Python类和实例增加属性和方法

    #定义一个类Student class Student(object): pass #给类增加一个属性name Student.name = 'xm' print Student.name # xm ...

  7. 核密度估计 Kernel Density Estimation (KDE) MATLAB

    对于已经得到的样本集,核密度估计是一种可以求得样本的分布的概率密度函数的方法: 通过选取核函数和合适的带宽,可以得到样本的distribution probability,在这里核函数选取标准正态分布 ...

  8. libuv源码分析

    项目开发过程中经常使用了基于libuv库封装的库接口来实现异步处理,一直没仔细研究过这些接口的内部如何实现,因此也就没有掌握它的设计思想.今天花了点时间研究了其事件循环内部的一些过程,总算有了一些理解 ...

  9. [WC2010]重建计划 长链剖分

    [WC2010]重建计划 LG传送门 又一道长链剖分好题. 这题写点分治的人应该比较多吧,但是我太菜了,只会长链剖分. 如果你还不会长链剖分的基本操作,可以看看我的长链剖分总结. 首先一看求平均值最大 ...

  10. win7升级到win10,出现算术运算溢出问题

    前台winform,后台java代码是: OutputStream ou=(OutputStream)response.getOutputStream(); ou.write(rightSet.get ...