【学习笔记】Mininet 入门

article/2025/9/19 22:44:05

【学习笔记】Mininet入门实战


课程介绍

Mininet是由一些虚拟的终端节点、交换机、路由器连接而成的一个网络仿真器,它采用轻量级的虚拟化技术使得系统可以和真实网络相媲美。

Mininet可以很方便地创建一个支持SDN的网络:host就像真实的电脑一样工作,可以使用ssh登录,启动应用程序,程序可以向以太网端口发送数据包,数据包会被交换机、路由器接收并处理。

有了这个网络,就可以灵活地为网络添加新的功能并进行相关测试,然后轻松部署到真实的硬件环境中。

本教程将包括入门及实战两部分,让用户通过实操快速掌握Mininet


课程学习

1.1Mininet源码安装与验证

  1. 以root用户登录主机,以下命令全部以root身份运行。

  2. 执行ll命令,查看Mininet安装包

在这里插入图片描述

  • 如果本地没有安装包可以使用网络获取资源
  # sudo apt-get update# sudo apt-get install git# git clone http://github.com/mininet/mininet.git
  1. 查看当前Mininet版本
# cd mininet
# cat INSTALL|more

在这里插入图片描述

  1. 安装Mininet (若使用其它命令安装,在安装前请先执行apt-get update命令更新软件列表)
# cd util/
# ./install.sh -a
  1. 测试Mininet的基本功能 mn --test pingall

  2. 查看安装好的Mininet版本 mn --version

安装的时候,执行install.sh的脚本的时候,会有各种花样的问题,根据报错信息查一下解决方案再解决

  • 例如:the following paackages have unmet dependencies(可能是依赖项存在问题)
  • 解决:sudo apt --fix-broken install,然后sudo apt-get autoremove会自动删除一些太旧或者不合适的依赖项(这个功能是我自己的理解)

Mininet拓扑构建与命令使用

1. 打开终端,执行su root切换到root用户

2. 创建拓扑

  • (创建完一种类型后可exit退出,然后再尝试创建不同类型)

    • **创建single拓扑:(单一(Single)**拓扑指整个网络拓扑中交换机有且只有一个,交换机可以下挂一个或多个主机)

      sudo mn --topo=single,3 :本例创建了一个交换机、3个主机,3个主机都下挂在一个交换机下

    • **创建 linear(线性)拓扑:(线性(linear)**拓扑指交换机连接呈线形排列,且每个交换机所连接主机数目只有一个)

      sudo mn --topo=linear,3 :本例创建了3个交换机、3个主机,3个主机分别下挂在一个交换机下

  • **创建树形(tree)拓扑:(树形(tree)**拓扑指交换机连接成树形排列,且每个交换机所连接主机一般有多个关联使用参数depth及fanout)

    sudo mn --topo=tree,depth=2,fanout=2 :本例创建了depth为2,fanout为2的拓扑,表示交换机深度即层数为2,每个交换机下挂2个设备

  • 创建自定义拓扑:(自定义(custom)拓扑指python编写文件file.py,执行此脚本即可创建定义的拓扑,—custom与—topo联用)

    # cd /home/openlab/openlab/mininet/custom

    # sudo mn --custom topo-2sw-2host.py --topo mytopo : 本例在custom目录下存在topo-2sw-2host.py文件,调用此文件构建拓扑

3. 内部交互命令的使用

  • 显示链接信息:net
  • 查看节点信息:nodes
  • 查看链路健壮性信息:links
  • 验证所有主机间通信并查看结果:pingall
  • 开启 xterm 进入设备可视化操作界面
  • 退出Mininet:exit
  • 清除释放Mininet构造配置的交换机及主机:mn -c
  • 查看获取帮助:mn --help或者mn -h

Mininet常用命令总结:

命令作用
help默认列出所有命令文档,后面加命令名将介绍该命令用法 dump打印节点信息
gterm给定节点上开启gnome-terminal 注:可能导致mn崩溃
xterm给定节点上开启xterm
intfs列出所有的网络接口
iperf两个节点之间进行简单的iPerf TCP测试
iperfudp两个节点之间用制定带宽UDP进行测试
net显示网络链接情况
noecho运行交互式窗口,关闭回应(echoing)
pingpair在前两个主机之间互Ping测试
source从外部文件中读入命令
dpctl在所有交换机上用dptcl执行相关命令,本地为tcp 127.0.0.1:6634
link禁用或启用两个节点之间的链路
nodes列出所有的节点信息
pingall所有主机节点之间互Ping
py执行Python表达式
sh运行外部shell命令
quit/exit退出

4. Mininet 可视化构建网络拓扑

  • 启动 MiniEdit

    cd /home/openlab/openlab/mininet/examples
    sudo ./miniedit.py
    
  • Mininet 拓扑建立(选择左侧的网络组件,在空白区域单击鼠标左键即可添加网络组件,可选择的组件主要有主机、OpenFlow交换机、传统交换机,传统路由器、链路、控制器)

在这里插入图片描述

  • Miniedit 属性配置(进行鼠标右击长按,选择Properties即可进行配置,设备属性配置OK后,将会在miniedit.py执行的后台(终端)产生日志,告知所添加的设备属性)

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • Miniedit 全局配置(Miniedit左上角“Edit”中可以剪切删除设备,及对整个网络进行全局配置)
    在这里插入图片描述

  • Miniedit 运行(点击左下角“run”,即可运行设置好的网络拓扑,同时在后台可以看到相应的配置信息。运行后对交换机、主机进行右击长按,可查看交换机的bridge信息及打开Host的终端)

  • Miniedit 保存脚本(miniedit设置好拓扑后,可通过选择File-Export Level 2 Script,将其保存为python脚本,默认在mininet/examples目录下,通过chmod给此脚本权限后,直接运行即可重现拓扑。)

  • Miniedit 脚本执行

    • chmod -R 777 sdnlab.py : 通过后台查看保存的sdnlab.py脚本文件,并给脚本赋予权限
    • ./sdnlab.py : 执行sdnlab.py脚本

Mininet 调用API扩展自定义拓扑

  1. cd /home/openlab/openlab/mininet/custom :进入custom目录

  2. sudo mn --custom topo-2sw-2host.py --topo mytopo : 在custom目录下创建自定义拓扑

  3. py net.addHost(‘h3’) : 在Mininet交互环境中添加主机h3

  4. py net.addLink(s3,net.get(‘h3’)) : 添加s3与主机h3之间的链路

  5. py s3.attach(‘s3-eth3’) : 添加接口

  6. py net.get(‘h3’).cmd(‘ifconfig h3-eth0 10.3’) : 对主机进行配置IP地址

  7. 查看节点信息

    dump
    nodes
    
  8. 验证主机间的连通性(建议先不用pingall,先使用两个主机间的ping操作)

    h1 ping h3
    pingall
    

还没做完笔记,之后再补充


http://chatgpt.dhexx.cn/article/iaPCwnw8.shtml

相关文章

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

大家好,我是文思月! 每文一言:不要假装努力,结果不会陪你演戏! 本篇文章: 使用Mininet创建简单的网络拓扑,并创建网络拓扑脚本。 正文如下: 1. 最小网络拓朴 创建最小的网络拓扑…

【Mininet】安装篇:安装Mininet

大家好,我是皮皮猫吖! 每文一言:改变你的生活,现在或者从不 本篇文章: 本文是安装 mininet 的简单过程。 正文如下: 一、Mininet的安装 第一步:安装git apt install git 第二步&#xff…

mininet基础

mininet介绍 一、Mininet是什么 Mininet是由斯坦福大学基于Linux Container架构开发的一个进程虚拟化网络仿真工具,可以创建一个包含主机,交换机,控制器和链路的虚拟网络,其交换机支持OpenFlow,具备高度灵活的自定义…

第一讲——mininet的安装和使用

第一讲——mininet的安装和使用 1.调出字符界面。 2.进入root。 3.直接安装git,发现无法安装,原因是没有安装源。 4.更新安装源。 5.再次安装git,发现可以安装。 6.下载mininet。 7.安装mininet。 8.查看mininet安装情况和创建线性网络拓扑。…

距离(distance)算法小结

18种和“距离(distance)”、“相似度(similarity)”相关的量的小结 在计算机人工智能领域,距离(distance)、相似度(similarity)是经常出现的基本概念,它们在自然语言处理、计算机视觉等子领域有重要的应用,而这些概念又大多源于数学领域的度…

概率论 联合分布

作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明。谢谢! 我之前一直专注于单一的随机变量及其概率分布。我们自然的会想将以前的结论推广到多个随机变量。联合分布(joint distribution)描述了多个随机变…

推荐 :联合概率和条件概率的区别和联系

联合概率P(A∩B) 两个事件一起(或依次)发生的概率。 例如:掷硬币的概率是 ⁄₂ 50%,翻转 2 个公平硬币的概率是 ⁄₂ ⁄₂ ⁄₄ 25%(这也可以理解为 50% 的 50%) P(A ∩ B) P(A) ⋅ P(B) 对于 2 个硬币…

【概率论】五分钟搞懂概率论联合密度函数与概率之间的计算

【例题】 设X和Y的联合密度函数为&#xff1a; f ( x , y ) { 2 0 < x < ∞ , 0 < y < ∞ 0 其 他 区 域 f(x,y)\left\{ \begin{array}{rcl} 2 && {0<x<\infty,0<y<\infty}\\ 0 && 其他区域 \end{array} \right. f(x,y){20​​0<…

python3 联合概率,边缘概率,贝叶斯定理(含详细推导)

1、贝叶斯原理 假设有两个随机变量X&#xff1b;Y&#xff08;下方左图&#xff09;&#xff1b; X的取值为 {}&#xff0c;其中 i1,...,M(M个特征&#xff09;&#xff1b; Y的取值为 {}&#xff0c;&#xff0c;其中 j1,...,L&#xff08;L个类&#xff09;&#xff0c;如…

条件概率、联合概率

条件概率的条件已经发生了&#xff0c;而联合概率的两个事件不一定发生。 图中可以看出 等式左边是联合概率&#xff0c;联合概率是指两个事件同时发生的概率&#xff0c;与条件概率不是一回事&#xff0c;条件概率的条件已经发生。 万普尼克理论&#xff1a;

贝叶斯网络的联合概率到底有什么用:贝叶斯理论(4)

上篇博客我们描述了如何计算贝叶斯网络联合概率的方法。这里再举一个例子&#xff1a; 上图这个例子中&#xff0c;事件a导致了b和c的发生。假设a有、、三种状态&#xff0c;b有、两种状态&#xff0c;c有、&#xff0c;a的每个状态的先验概率是&#xff1a; 0.30.50.2 b对a的…

机器学习之条件概率,联合概率,贝叶斯定理详解

文章目录 前言边缘概率联合概率定义分析 条件概率定义问条件概率能举个例子吗问条件概率在图中表示的是哪一块呢&#xff1f;条件概率习题&#xff1a; 全概率定义推导全概率习题 贝叶斯公式定义推导贝叶斯定理习题 结束语 前言 条件概率&#xff0c;边缘概率&#xff0c;联合…

概率论中的联合概率理解

最近在看信息论中的概念&#xff0c;对于联合熵的概念比较混乱&#xff0c;从而引发出对联合概率的思考&#xff0c; 当提到联合概率的时候大家都会看到这么一个图&#xff1a; 学习概率论是这样理解还可以&#xff0c;还能解释条件概率&#xff0c;总体挺好的&#xff1b; 但…

5分钟理解边缘概率,联合概率,条件概率,随机事件独立,随机事件依赖

在隐马尔可夫&#xff08;HMM&#xff09;和条件随机场&#xff08;CRF&#xff09;中有很多概率计算问题&#xff0c;要想理解他们&#xff0c;必须先把概率的一些概念及计算公式搞清楚。本文旨在用形象的图形和具体事例来讲解这些概念和公式&#xff0c;以帮助理解。这里讲的…

联合概率和条件概率的区别和联系

联合概率P(A∩B) 两个事件一起&#xff08;或依次&#xff09;发生的概率。 例如&#xff1a;掷硬币的概率是 ⁄₂ 50%&#xff0c;翻转 2 个公平硬币的概率是 ⁄₂ ⁄₂ ⁄₄ 25%&#xff08;这也可以理解为 50% 的 50%&#xff09; P(A ∩ B) P(A) ⋅ P(B) 对于 2 个硬…

联合概率和条件概率区别

为什么从定义上看&#xff0c;觉得联合概率和条件概率是一个意思&#xff1f; P(A|B) 和 P(AB) 这俩真的不是一个东西吗&#xff1f;&#xff1f; 碎碎念开始&#xff0c;正文请跳往第2分割线 虽然我产生了这种疑问&#xff0c;但我的直觉告诉我&#xff1a;大概是个傻逼。于…

联合概率(joint probability)、分布函数(distribution function)

0. PMF 与 PDF 的记号 PMF&#xff1a; PX(x) PDF&#xff1a; fX(x) 1. 联合概率 联合概率&#xff1a;是指两个事件同时发生的概率。 P(A,B)P(B|A)⋅P(A)⇒P(B|A)P(A,B)P(A) P(A,B)=P(B|A)\cdot P(A) ⇒ P(B|A)=\frac{P(A,B)}{P(A)}因此当两事件独立时&#xff0c; P(A,B)P…

条件概率和联合概率

表示两个事件共同发生百的概率。 A与B的联合概率表示为 P(AB) 或者P(A,B)&#xff0c;或者P(A∩B)。 在概率论中&#xff0c;联合概率是指在多元的概率分布中多个随机变量分别满足各自条件的概率。 举例说明&#xff1a;假设X和Y都服从正态分布&#xff0c;那么P{X<4,Y&l…

联合概率

在机器学习经常出现联合概率&#xff0c;总是困扰者我。因此记录一下 联合概率分布简称联合分布&#xff0c;是两个及以上随机变量组成的随机向量的概率分布。根据随机变量的不同&#xff0c;联合概率分布的表示形式也不同。 对于离散型随机变量&#xff0c;联合概率分布可以以…

条件联合分布的分解

前言 有挺长一段时间没有更新博客了&#xff0c;一方面是学校期末考试&#xff0c;后来又看了一些很基础的编程数学思想的东西&#xff08;《程序员的数学》第一卷&#xff09;&#xff0c;大多数东西都在之前的学习和使用中都有注意到&#xff0c;所以没有什么特别值得更新的…