Mininet实验 命令延伸实验扩展

本次实验尝试使用命令行、Python脚本编写、交互式界面创建自定义拓扑。


命令行创建拓扑

1.最小的网络拓扑,一个交换机下挂两个主机

1 sudo mn --topo minimal

2.每个交换机连接一个主机,交换机间相连接。本例:4个主机,4个交换机。

1 sudo mn --topo linear,4 

3.每个主机都连接到同一个交换机上。本例:三个主机,一个交换机。 

1 sudo mn --topo single,3

4.定义深度和扇形形成基于数的拓扑。本例:深度2,扇出2。

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


Python脚本定义拓扑

1.--topo linear,4 写一个linear.py脚本

1 from mininet.net import Mininet
2 from mininet.topo import LinearTopo
3 Linear4 = LinearTopo(k=4)
4 net = Mininet(topo=Linear4)
5 net.start()
6 net.pingAll()
7 net.stop()

ps:至于怎么创建一个这样的脚本

1 touch linear.py
2 vim linear.py
3
4 //如果提示没有安装vim就
5 sudo apt install vim

赋予文件权限

1 chmod +x linear.py
2 //执行
3 sudo python linear.py

2.--topo single,3

1 from mininet.net import Mininet
2 from mininet.topo import SingleSwitchTopo
3 Single3 = SingleSwitchTopo(k=3)
4 net = Mininet(topo=Single3)
5 net.start()
6 net.pingAll()
7 net.stop()

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

1 from mininet.net import Mininet
2 from mininet.topolib import TreeTopo
3 Tree22 = TreeTopo(depth=2,fanout=2)
4 net = Mininet(topo=Tree22)
5 net.start()
6 net.pingAll()
7 net.stop()

4.不是以上三种拓扑形式的话,可以利用以下的拓扑定义脚本。本例:1个交换机,2个主机,并且赋予主机IP地址。

 1 from mininet.net import Mininet
 2 net = Mininet()
 3 c0 = net.addController()
 4 h0 = net.addHost(‘h0‘)
 5 s0 = net.addSwitch(‘s0‘)
 6 h1 = net.addHost(‘h1‘)
 7 net.addLink(h0, s0)
 8 net.addLink(h1, s0)
 9 h0.setIP(‘192.168.1.1‘, 24)
10 h1.setIP(‘192.168.1.2‘, 24)
11 net.start()
12 net.pingAll()
13 net.stop()

5.除了可以通过Python脚本创建基本的拓扑以外,还能在此基础上对性能进行限制。观察下面给出的脚本文件,addHost()语法可以对主机cpu进行设置,以百分数的形式;addLink()语法可以设置带宽bw、延迟delay、最大队列的大小maxqueuesize、损耗率loss。

 1 from mininet.net import Mininet
 2 from mininet.node import CPULimitedHost
 3 from mininet.link import TCLink
 4 net = Mininet(host=CPULimitedHost, link=TCLink)
 5 c0 = net.addController()
 6 s0 = net.addSwitch(‘s0‘)
 7 h0 = net.addHost(‘h0‘)
 8 h1 = net.addHost(‘h1‘, cpu=0.5)
 9 h2 = net.addHost(‘h1‘, cpu=0.5)
10 net.addLink(s0, h0, bw=10, delay=‘5ms‘,max_queue_size=1000, loss=10, use_htb=True)
11 net.addLink(s0, h1)
12 net.addLink(s0, h2)
13 net.start()
14 net.pingAll()
15 net.stop()


交互式界面创建主机、交换机等

1 sudo mn

 

1.添加主机h3:

1 py net.addHost(‘h3‘)

2.添加link:

1 py net.addLink(s1,net.get(‘h3‘))

3.给交换机s1添加端口eth3用于连接h3:

4.给h3赋予IP(10.0.0.3)

py s1.attach(‘s1-eth3‘)
py net.get(‘h3‘).cmd(‘ifconfig h3-eth0 10.3‘)

5.h1 ping h3 :

1 h1 ping -c3 h3

6.显示所有网络信息:

1  px from mininet.util import dumpNodeConnections
2  py dumpNodeConnections(net.hosts)

7.所有节点的ping测试:

py net.pingAll()

原文地址:https://www.cnblogs.com/pullself/p/10162901.html

时间: 2024-11-08 14:06:15

Mininet实验 命令延伸实验扩展的相关文章

3 Mininet命令延伸实验拓展

目录 命令行创建拓扑 启动参数总结 自定义拓扑便捷测试 清理配置 python 脚本定义拓扑 展示所有的网络信息 pyton 脚本中调起 CLI 交互式操作 常用命令总结 Mininet自定义拓扑三种实现方式:命令行创建.Python脚本编写.交互式界面创建. Mininet 是一个轻量级软件定义网络和测试平台:它采用轻量级的虚拟化技术使一个单一的系统看起来像一个完整的网络运行想过的内核系统和用户代码,也可简单理解为 SDN 网络系统中的一种基于进程虚拟化平台,它支持 OpenFlow.Open

信息安全系统设计基础 实验一、实验二 20135327郭皓 20135329 李海空

北京电子科技学院(BESTI) 实     验    报     告 课程:信息安全设计基础                         班级:1353 姓名:郭皓 李海空 学号:20135327  20135329 成绩:             指导教师:娄嘉鹏        实验日期:2015.11.10 实验密级:         预习程度:         实验时间:15:30~18:00 仪器组次:          必修/选修:            实验序号:1 实验名称: 

实验报告(实验一)

北京电子科技学院(BESTI) 实     验    报     告 课程: 密码系统设计基础                                                               班级: 1352班.1353班 姓名:王玥.刘浩晨                                                                    学号:20135232.20135318 成绩:                      

SEED实验——Environment Variable and Set-UID Program实验描述与实验任务

第一部分:实验描述 该实验的学习任务是理解环境变量是如何影响程序和系统行为的.环境变量是一组动态命名的变量 第二部分:实验任务 2.1 任务一:操作环境变量 在这个任务中,我们研究可以用来设置和取消设置环境变量的命令.我们在seed实验环境中使用Bash.用户使用的默认shell在/etc/passwd文件(每个条目的最后一个字段)中设置.您可以使用命令chsh 将其更改为另一个shell程序(请不要在该实验中实现).执行以下任务: 使用printenv或env命令打印出环境变量.也可以单独打印

Java实验报告(实验四)

北京电子科技学院(BESTI) 实     验    报     告 课程:Java    班级:1352班      姓名:王国伊    学号:20135207 成绩:             指导教师:娄嘉鹏       实验日期:2015.6.9 实验密级:无       预习程度:           实验时间:15:30-18:00 仪器组次:         必修/选修:选修     实验序号:四 实验名称:  服务器与客户端间传送信息加解密 实验目的与要求: 1.没有Linux基础

实验一:实验环境配置与使用

一.实验目标:   熟悉Linux上C程序的编译和调试工具,包括以下内容: 1. 了解Linux操作系统及其常用命令 2. 掌握编译工具gcc的基本用法 3. 掌握使用gdb进行程序调试   二.实验环境与工件 1.个人电脑 2. Fedora 13 Linux 操作系统 3. gcc 4. gdb   三.实验内容与步骤 1.根据实验一:实验环境配置与使用.ppt熟悉Linux基本操作(P.1 – P.28),然后根据以下过程创建用户:用户名为学生名称加学号,如赖丹辉,学号2013150040

2017-2018-1 20155235 实验三 实时系统 实验内容

2017-2018-1 20155235 实验三 实时系统 实验内容 一.并发程序-1 二.并发程序-2 三.并发程序-3 实验步骤 一.并发程序-1 学习使用Linux命令wc(1) 基于Linux Socket程序设计实现wc(1)服务器(端口号是你学号的后6位)和客户端 客户端传一个文本文件给服务器 服务器返加文本文件中的单词数 wc命令的学习 Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数.字数.行数,并将统计结果显示输出. 1.命令格式: wc [选项

DNS分离解析实验(全程实验可跟做)

DNS分离解析实验 实验拓扑图 这次实验我们不再对网站进行设置,只要保证局域网与广域网能从服务器解析到域名即可.DNS解析首先我们要安装一个bind软件包. 我们的服务器要分别与广域网和局域网连接,所以我们需要给虚拟机再加一块网卡,并把两块网卡的模式调成仅主机模式. 网卡安装完成后需要重启服务器使网卡生效,这时我们可以查看到系统中已经有第二块网卡ens37了. 网卡添加完成,我们就是需要对网卡进行配置了,首先对ens33网卡进行如下设置. 我们虽然给虚拟机中添加了一块新的网卡,但配置中并未添加进

LB(Load balance)负载均衡集群--{LVS-[NAT+DR]单实例实验+LVS+keeplived实验} 菜鸟入门级

LB(Load balance)负载均衡集群 LVS-[NAT+DR]单实例实验 LVS+keeplived实验 LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统. 逻辑可分为: 1调度层 (Director):它是整个集群对外面的前端机,负责将客户的请求发送到一组服务器上执行,而客户认为服务是来自一个IP地址(我们可称之为虚拟IP地址)上的. 2[服务器池(server pool)/集群层(Real server)]:是一组真正执行客