【Mininet】基础篇:Mininet创建简单网络拓扑及简单网络拓扑脚本编写

news2024/11/24 10:57:36

大家好,我是文思月!
每文一言:不要假装努力,结果不会陪你演戏!

本篇文章:

使用Mininet创建简单的网络拓扑,并创建网络拓扑脚本。

正文如下:

1. 最小网络拓朴

创建最小的网络拓扑,一个交换机和两个主机,交换机连接了两个主机:

sudo mn --topo minimal

在这里插入图片描述

2. 线性网络拓扑

创建一个线性的拓扑,一个交换机连接一个主机,总共创建了4个交换机和4个主机

sudo mn --topo linear,4

在这里插入图片描述

3. 单一网络拓扑

创建一个single类型的拓扑,一个交换机连接多个主机,这里是一个交换机连接4个主机

sudo mn --topo single,4

在这里插入图片描述

4. 树网络拓扑

创建一个树形的拓扑,设置fanout(出度)和depth(高度),高度指的是交换机的高度,出度指的是交换机出度,这里是一个交换机连接两个主机,交换机的高度是2

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

在这里插入图片描述

5. 创建简单网络拓扑脚本

1)根据–topo linear,3来写一个linear.py的脚本

from mininet.net import Mininet
from mininet.topo import SingleSwitchTopo

Single3 = SingleSwitchTopo(k=3)
net = Mininet(topo=Single3)
net.start()
net.pingAll()
net.stop()

创建linear.py文件到myCustom文件夹下,myCustom文件夹需要与mininet文件夹在同一目录下

在这里插入图片描述

然后给文件增加可执行权限

chmod +x linear.py
sudo python3 linear.py

在这里插入图片描述

2)根据–topo single,3来写一个single.py的脚本

from mininet.net import Mininet
from mininet.topo import SingleSwitchTopo

single3 = SingleSwitchTopo(k=3)
net = Mininet(topo=single3)
net.start()
net.pingAll()
net.stop()

给single.py文件增加可执行权限

chmod +x single.py
sudo python3 single.py

在这里插入图片描述

3)根据–topo tree,fanout=2,depth=2来写一个tree.py的脚本

from mininet.net import Mininet
from mininet.topolib import TreeTopo

Tree22 = TreeTopo(depth=2, fanout=2)
net = Mininet(topo=Tree22)
net.start()
net.pingAll()
net.stop()

给tree.py文件增加可执行权限

chmod +x tree.py
sudo python3 tree.py

在这里插入图片描述

6. 创建自定义网络拓扑脚本

1)自定义网络拓扑,一个交换机,两个主机。该文件为myTopo1.py,放在myCustom文件夹下

from mininet.net import Mininet

net = Mininet()
c0 = net.addController('c0')
h0 = net.addHost('h0')
h1 = net.addHost('h1')
s0 = net.addSwitch('s0')
net.addLink(h0, s0)
net.addLink(h1, s0)
h0.setIP('10.0.0.1', 24)
h1.setIP('10.0.0.2', 24)
net.start()
net.pingAll()
net.stop()
sudo python3 myTopo1.py

在这里插入图片描述

2)自定义网络拓扑,一个交换机,三个主机,可以对主机的CPU进行配置,还可以设置链路带宽band width,延迟delay,最大队列的大小max_queue_size,损耗率loss。该文件为myTopo2.py,放在myCustom文件夹下

from mininet.net import Mininet
from mininet.node import CPULimitedHost
from mininet.link import TCLink

net = Mininet(host=CPULimitedHost, link=TCLink)
c0 = net.addController()
s0 = net.addSwitch('s0')
h0 = net.addHost('h0')
h1 = net.addHost('h1', cpu=0.5)
h2 = net.addHost('h2', cpu=0.5)
net.addLink(s0,
            h0,
            bw=10,
            delay='5ms',
            max_queue_size=1000,
            loss=10,
            use_htb=True)
net.addLink(s0, h1)
net.addLink(s0, h2)
net.start()
net.pingAll()
net.stop()
sudo python3 myTopo2.py

在这里插入图片描述


以上就是Mininet创建简单网络拓扑,以及创建网络拓扑脚本的一些方法,后续会继续写Mininet的其他使用方法。


参考博客:

https://www.cnblogs.com/pullself/p/10162901.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/596780.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++多态及其多态的原理

目录 多态的定义及实现多态的条件 多态的原理虚函数表动态绑定和静态绑定总结多态原理 单继承和多继承下的虚函数表单继承下的虚函数表(有虚函数覆盖)多继承下的虚函数表(有虚函数覆盖)为什么子类对象赋值给父类对象,也…

耕耘不缀、丰收如期,中药入血组又双叒叕升级了

春去夏来,小满已至,麦浪序曲逐渐拉响,百趣人在中药领域的勤耕不辍也迎来了本年度的第一次丰收。中药入血组作为中药临床应用重磅产品,此次升级可谓“一优化,两提升,三新增”。“一优化”为分析图例优化&…

Python之pyecharts的常见用法1-水球图

Pyecharts是一个基于Echarts的Python可视化库,可以用Python语言轻松地生成各种交互式图表和地图。它支持多种图表类型,包括折线图、柱状图、散点图、饼图、地图等,并且可以通过简单的API调用实现数据可视化。 Pyecharts的优点包括&#xff1a…

Spring Cloud Alibaba 整合Seata 之概念介绍及Seata-server搭建

目录 前言 基础介绍 官方文档 模式分类 角色介绍 Seata Server 部署 - docker-compose 数据库 服务器 docker-compose.yaml nacos配置 启动 前言 Seata 是 阿里巴巴 开源的 分布式事务中间件,以 高效 并且对业务 0 侵入 的方式,解决 微服务…

过零投切开关的安科瑞低压电力电容器设计

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要:目前,我们经常使用的电容器投切开关在实际的运行过程中还存在着很多问题,新型的过零投切开关主要利用微电子技术,同时企业对电路的结构等开展了进一步的优化与调整…

真的有必要定义VO,BO,PO,DO,DTO吗?

今天给大家带来一篇关于VO,BO,PO,DO,DTO的文章,阅读完这篇文章之后,希望大家对VO,BO,PO,DO,DTO有自己的见解。 1. 概念 在讲具体的概念之前,我们…

I.MX6ULL_Linux_驱动篇(35) linux并发与竞争

Linux是一个多任务操作系统,存在多个任务共同操作同一段内存或者设备的情况,多个任务或者中断都能访问的资源叫做共享资源,就和共享单车一样。在驱动开发中要注意对共享资源的保护,也就是要处理对共享资源的并发访问。比如共享单车…

Mybatis插件MyBatisCodeHelperPro使用

目录 MyBatisCodeHelperPro的安装(IDEA插件的两种安装方式) 通过IDEA连接MySQL数据库,方便后续的数据库操作 MyBatisCodeHelperPro的使用 1、新建项目工程测试 2、在pom文件中引入依赖(后面测试需要用到) 3、编写…

使用docker部署 java web项目完整记录

概述:基于java及vue开发的前后端web应用, 整套系统由 一个后端服务一个管理端前端vue一个用户端前端vue项目组, 涉及的中间件及第三方应用有 mysql、redis、nginx, 采用docker方式部署整套系统 一、docker 安装 1、参考文档&…

jira中issue状态的改变触发jenkins job构建

背景:想通过监控jira中 issue状态的变化去触发jenkins job的构建 在jenkins中安装插件:JIRA Trigger plugin. 下载地址:https://plugins.jenkins.io/jira-trigger/ 在Jenkins-> Manage Jenkins -> Configure System -> JIRA Trigg…

UnityVR--EventManager--事件中心2

目录 前言 事件中心的结构 EventManager事件管理器 EventType事件类型 EventListener监听及回调 EventDataBase回调时需要传递的参数 总结 前言 上一篇(事件中心1)中,简单解释了委托、事件、监听者,是用于管理项目运行过程…

深度学习进阶篇[9]:对抗生成网络GANs综述、代表变体模型、训练策略、GAN在计算机视觉应用和常见数据集介绍,以及前沿问题解决

【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化算法、卷积模型、序列模型、预训练模型、对抗神经网络等 专栏详细介绍:【深度学习入门到进阶】必看系列,含激活函数、优化策略、损失函数、模型调优、归一化…

多线程-*同步代码块*解决两种线程创建方式的线程安全问题

线程安全问题及解决 当我们使用多个线程访问同一资源(可以是同一个变量、同一个文件、同一条记录等)的时候,若多个线程只有读操作,那么不会发生线程安全问题。但是多个线程中对资源有读和写的操作。就容易出现线程安全问题。 举…

PyTorch 深度学习 || 专题三:PyTorch 数据的准备

PyTorch 数据的准备 1. 生成数据的准备工作 import torch import torch.utils.data as Data#准备建模数据 x torch.unsqueeze(torch.linspace(-1, 1, 500), dim1) # 生成列向量 y x.pow(3) # yx^3#设置超参数 batch_size 15 # 分块大小 torch.manual_seed(10) # 设置种子点…

国自然发文:这种行为将永久取消基金申请资格

函评阶段这些行为被基金委禁止 国家自然科学基金委重拳出击打击"打招呼"现象,出台《国家自然科学基金项目评审请托行为禁止清单》,禁止科研人员、依托单位、评审专家和基金委工作人员24种违规行为。 主要内容如下: 一、科研人员禁止清单(7项) 主要包括…

初阶数据结构——二叉树

目录 树的概念及结构树的概念树的相关概念树的表示树在实际中的运用 二叉树概念及结构特殊的二叉树二叉树的性质二叉树的存储结构 二叉树的顺序结构及实现二叉树的顺序结构堆的概念及结构堆的实现堆的结构:初始化堆:销毁堆:插入数据&#xff…

通过maven配置不同的开发环境

前言 项目有开发、测试、生产至少有这三个环境, 所需要的配置信息肯定不一样, 比如需要开发环境的时候,注解掉测试和生产的配置信息,打开开发的配置信息。 后来工作接触到新项目,发现是通过maven来控制加载不同的配置…

第55讲:Python函数形参、实参的语法格式汇总以及应用小案例

文章目录 1.Python函数中各种参数的汇总1.1.常规参数1.2.参数设置默认值1.3.强制传参时使用关键字传参1.4.个数可变的形参1.5.将序列中的每个元素都转换为位置实参1.6.将字典中的每个元素都转换为关键字实参 2.小案例练习Python中的各种函数参数2.1.案例一2.2.案例二 1.Python函…

React-reacte-app项目实现antD按需加载(2023)

出现的问题: 项目打包后,由于引入了antD,所以打包后的mani.js体积会非常大。相当于引入了全部的antD的代码。所以可以做一个优化:通过script标签引入antD,将其挂载在window上。使用antD组件的使用,直接从w…

2.矢量分析

目录 一.标量函数和矢量函数 二.矢端曲线 三.矢量函数导数和微分 1.导数 2.导数的几何意义 3.微分 4.矢量导数性质 5.例题 四.矢量导数的应用 1.几何应用 1.曲线的切线和法平面 2.曲面的法线和法平面 2.物理应用 3.两大典型问题 五.矢量函数的积分 如果第一章我…