1. 安装轻量级网络仿真工具Mininet

先从GitHub上获取mininet源码,再输入命令进行安装,代码分别如下:
git clone https://github.com/mininet/mininet.git
cd mininet/util
./install.sh

运行结果如下:



2. 用字符命令搭建如下拓扑,要求写出命令

(1)拓扑结构如下:

输入命令:

sudo mn --topo linear,3

(2)拓扑结构如下:

(ctrl+D命令:退出这个网络 net 查看网络状态)

(注意:没搭建一次拓扑,要输入 "mn -c"来清除剩余缓存)

输入命令:

sudo mn --topo tree,fanout=3,depth=2

3. 利用可视化工具搭建如下拓扑,并要求支持OpenFlow 1.0 1.1 1.2 1.3,设置h1(10.0.0.10)、h2(10.0.0.11)、h3(10.0.0.12),拓扑搭建完成后使用命令验证主机ip,查看拓扑端口连接情况。

(1)在~/mininet/examples目录下打开终端,执行以下命令:

./miniedit.py

(2)接下来打开可视化工具,通过利用可视化工具,可以更加方便的的搭建拓扑、使用命令查看状态。

配置完成后,执行run

(3)通过net命令可以查看网络拓扑:

(4)使用xterm语句验证主机ip,查看各个拓扑端口连接情况:

4. 利用Python脚本完成如下图所示的一个Fat-tree型的拓扑

(1)python代码如下:

#!/usr/bin/python
# sudo mn --custom fattree.py --topo mytopo --switch ovsk,protocols=OpenFlow10
"""Custom topology example
Adding the 'topos' dict with a key/value pair to generate our newly defined
topology enables one to pass in '--topo=mytopo' from the command line.
""" from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import RemoteController,CPULimitedHost
from mininet.link import TCLink
from mininet.util import dumpNodeConnections class MyTopo(Topo):
"Simple topology example." def __init__(self):
"Create custom topo." # Initialize topology
Topo.__init__(self)
L1 = 2
L2 = 4
c = []
a = [] # add core ovs
for i in range(L1):
sw = self.addSwitch('s{}'.format(i+1))
c.append(sw) # add aggregation ovs
for i in range(L2):
sw = self.addSwitch('s{}'.format(L1+i+1))
a.append(sw) # add links between core and aggregation ovs
for i in range(L1):
sw1 = c[i]
for sw2 in a[0: :1]:
self.addLink(sw2, sw1) #add hosts and its links with aggregation ovs
count = 1
for sw1 in a:
for i in range(2):
host = self.addHost('h{}'.format(count))
self.addLink(sw1, host)
count += 1
topos = {'mytopo': (lambda: MyTopo())}

(2)生成拓扑:

sudo mn --custom fattree.py --topo mytopo --switch ovsk,protocols=OpenFlow10

(3)使用net命令验证拓扑结构

2019 SDN上机第一次实验作业的更多相关文章

  1. 2019 SDN上机第一次作业

    2019 SDN上机第一次作业 1. 安装轻量级网络仿真工具Mininet 安装Mininet的步骤 - git clone git://github.com/mininet/mininet - cd ...

  2. 2019 SDN上机第二次作业

    2019 SDN上机第二次作业 1.利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名.交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况 1. ...

  3. 2019 SDN上机第6次作业

    2019 SDN上机第6次作业 1.实验拓扑 (1)实验拓扑 (2)使用Python脚本完成拓扑搭建 from mininet.topo import Topo from mininet.net im ...

  4. 2019 SDN上机第5次作业

    2019 SDN上机第5次作业 1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 答:官方教程实现了一 ...

  5. 2019 SDN上机第四次作业

    2019 SDN上机第4次作业 1. 解压安装OpenDayLight控制器(本次实验统一使用Beryllium版本) 修改环境变量 2. 启动并安装插件 3. 用Python脚本搭建如下拓扑,连接O ...

  6. 2019 SDN上机第三次作业

    2019 SDN上机第三次作业 实验一 利用Mininet仿真平台构建如下图所示的网络拓扑,配置主机h1和h2的IP地址(h1:10.0.0.1,h2:10.0.0.2),测试两台主机之间的网络连通性 ...

  7. 2019 SDN上机第7次作业

    2019 SDN上机第7 次作业 basic补充`/* -- P4_16 -- */ include <core.p4> include <v1model.p4> const ...

  8. 2019 SDN上机第六次作业

    1.实验拓扑 (1)实验拓扑 (2)使用python脚本完成拓扑搭建 from mininet.topo import Topo class Mytopo(Topo): def __init__(se ...

  9. 2019 SDN上机第五次作业

    1.浏览RYU官网学习RYU控制器的安装和RYU开发入门教程,提交你对于教程代码的理解,包括但不限于: 描述官方教程实现了一个什么样的交换机功能? 实现将接收到的数据包发送到所有端口 控制器设定交换机 ...

随机推荐

  1. Fortify漏洞之 Log Forging(日志伪造)

    继续对Fortify的漏洞进行总结,本篇主要针对 Log Forging(日志伪造)的漏洞进行总结,如下: 1.1.产生原因: 在以下情况下会发生 Log Forging 的漏洞: 1. 数据从一个不 ...

  2. 分布式结构化存储系统-HBase应用案例

    分布式结构化存储系统-HBase应用案例 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 为了让读者更进一步了解HBase在实际生成环境中的应用方法,在董西成的书里介绍两个经典的HB ...

  3. 《CoderXiaoban》第八次团队作业:Alpha冲刺 2

    项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 实验十二 团队作业8:软件测试与ALPHA冲刺 团队名称 Coderxiaoban团队 作业学习目标 (1)掌握软件测试基 ...

  4. DT二次开发之-采购页面加入好看的倒计时

    加入采购页面倒计时,个人感觉挺漂亮的,做下笔记. <span id="timer" ></span> {if $totime} <script typ ...

  5. 运行Vue项目,没办法自动打开浏览器,提示“Unable to open browser. If you are running in a headless environment, please do not use the open flag.”

    留坑,待解决 Unable to open browser. If you are running in a headless environment, please do not use the o ...

  6. java singleton(单例设计模式)

    单例设计模式的主要作用是: 1.控制资源的使用,我们对资源使用线程同步来实现并发访问. 2.节约资源,我们对一个类只进行一个实例化进行全局的资源访问,节约了内存. 3.作为通信媒介,也是数据共享,可以 ...

  7. php 递归算法

    通过递归实现阶乘 function multi($n){ if($n == 0){ return 1 ;//终止递归 } $value = $n * multi($n-1); return $valu ...

  8. MySQL-linux系统下面的配置文件

    一般linux 上都放在 /etc/my.cnf   ,window 上安装都是默认可能按照上面的路径还是没找到, window 上  可以登录到mysql中  使用   show variables ...

  9. .NetCore WebApi结构及前端访问方式

    .NetCore WebApi结构及前端访问方式(Ajax方式,fetch方式,axios方式) //访问的地址api/控制器名称/方法名称;action一般会省略 [Route("api/ ...

  10. Apache Kylin v3.0.0-alpha 发布

    Apache Kylin v3.0.0-alpha 发布 Apr 19, 2019 • Shaofeng Shi 近日 Apache Kylin 社区很高兴地宣布,Apache Kylin v3.0. ...