热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Mininet实验命令延伸实验扩展

本次实验尝试使用命令行、Python脚本编写、交互式界面创建自定义拓扑。命令行创建拓扑1.最小的网络拓扑,一个交换机下挂两个主机2.每个交换机连接一个主机,交换机间相连接。本例:4

本次实验尝试使用命令行、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()

技术分享图片

Mininet实验 命令延伸实验扩展


推荐阅读
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 在IDEA中运行CAS服务器的配置方法
    本文介绍了在IDEA中运行CAS服务器的配置方法,包括下载CAS模板Overlay Template、解压并添加项目、配置tomcat、运行CAS服务器等步骤。通过本文的指导,读者可以轻松在IDEA中进行CAS服务器的运行和配置。 ... [详细]
  • 求解连通树的最小长度及优化
    本文介绍了求解连通树的最小长度的方法,并通过四边形不等式进行了优化。具体方法为使用状态转移方程求解树的最小长度,并通过四边形不等式进行优化。 ... [详细]
  • 本文介绍了C#中数据集DataSet对象的使用及相关方法详解,包括DataSet对象的概述、与数据关系对象的互联、Rows集合和Columns集合的组成,以及DataSet对象常用的方法之一——Merge方法的使用。通过本文的阅读,读者可以了解到DataSet对象在C#中的重要性和使用方法。 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 也就是|小窗_卷积的特征提取与参数计算
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了卷积的特征提取与参数计算相关的知识,希望对你有一定的参考价值。Dense和Conv2D根本区别在于,Den ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
author-avatar
ndo2205188
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有