返回顶部
首页 > 资讯 > 服务器 >【学习笔记】Mininet 入门
  • 817
分享到

【学习笔记】Mininet 入门

学习网络服务器 2023-12-22 19:12:31 817人浏览 八月长安
摘要

【学习笔记】Mininet入门实战 课程介绍 Mininet是由一些虚拟的终端节点、交换机、路由器连接而成的一个网络仿真器,它采用轻量级的虚拟化技术使得系统可以和真实网络相媲美。 Mininet可以很方便地创建一个支持SDN的网络:

学习笔记】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/examplessudo ./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. 查看节点信息

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

    h1 ping h3pingall

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

来源地址:https://blog.csdn.net/HeyKith/article/details/128205103

--结束END--

本文标题: 【学习笔记】Mininet 入门

本文链接: https://lsjlt.com/news/551488.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 【学习笔记】Mininet 入门
    【学习笔记】Mininet入门实战 课程介绍 Mininet是由一些虚拟的终端节点、交换机、路由器连接而成的一个网络仿真器,它采用轻量级的虚拟化技术使得系统可以和真实网络相媲美。 Mininet可以很方便地创建一个支持SDN的网络:...
    99+
    2023-12-22
    学习 网络 服务器
  • Python 入门学习笔记
    1 安装Anaconda和jupyter notebook   之前没有听说过这两个名词,然后看完介绍,按照我自己的理解,Anaconda是一个集合很多环境和模块的存储地方。 Jupyter notebook 就是一个可以在此环境里打代码...
    99+
    2023-01-30
    学习笔记 入门 Python
  • Ansible 入门学习笔记
    本文 的主要内容来自ansible官网书籍。 本文采用vagrant软件基于VirtualBox的虚拟机进行自动化管理,先要安装VirtualBox和vagrant两个软件。类似Docker有Dockerfile, Jenkins有Je...
    99+
    2023-01-31
    学习笔记 入门 Ansible
  • Nodejs学习笔记之入门篇
    分享第一篇,关于 NodeJS —— Javascript 的常用知识以及如何从 Javascript 开发者过渡到 NodeJS 开发者(不会介绍具体的框架)。在读本文前,希望你对 javascript ...
    99+
    2022-06-04
    学习笔记 入门篇 Nodejs
  • python入门学习笔记分享
    一、python的基础语法 1.行连接的方法是最后加上一个‘\' 2.注释:多行注释三引号,#行注释;三引号定义的字符串原样输出(保存原格式) 3.I/O语句:用逗号分隔零个或多个表...
    99+
    2024-04-02
  • Mysql学习笔记2--使用入门
    ---创建数据库kakaxi mysql> create database kakaxi; Query OK, 1 row affected (0.02 sec) ---要知道系统中有哪些数据库,可...
    99+
    2024-04-02
  • 【机器学习】Python 快速入门笔记
    Python 快速入门笔记Xu An   2018-3-7 1、Python print#在Python3.X中使用print()进行输出,而2.x中使用()会报错 print("hello world")  print('I\'m app...
    99+
    2023-01-31
    入门 机器 快速
  • mybatis学习笔记,简介及快速入门
    1.MyBatis是什么?  MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBa...
    99+
    2024-04-02
  • Pytorch学习笔记DCGAN极简入门教程
    目录1.图片分类网络2.图片生成网络首先是图片分类网络:重点是生成网络每一个step分为三个步骤:1.图片分类网络 这是一个二分类网络,可以是alxnet ,vgg,resnet任何...
    99+
    2024-04-02
  • SQL入门经典(第5版)学习笔记(一)
    1.缩写“SQL”的含义是什么?stuctured query language 结构化查询语言 2.SQL命令的6个主要类别是什么?事务控制命令 commit 数据定义语言 create table 数据...
    99+
    2024-04-02
  • SQL入门经典(第5版)学习笔记(三)
    1.下面这个CREATE TABLE命令能够正常执行吗?需要做什么修改?在不同的数据库(MySQL、Oracle、SQL Server)中执行,有什么限制吗? 不要as: middle_name null...
    99+
    2024-04-02
  • SQL入门经典(第5版)学习笔记(二)
    1.判断对错:个人社会保险号码,输入格式为 '1111111111',它可以是下面任何一种数据类型:定长字符、变长字符、数值。错 不能是数值 引号会转换为字符 2.判断对错:数值类型的标度是指数值的总体长度...
    99+
    2024-04-02
  • C语言入门学习笔记之typedef简介
    在单片机和操作系统中 typedef 会经常用到,它可以为某一个类型自定义名称。和#define比较类似。但是又有不同的地方。 typedef 创建的符号只能用于数据类型,...
    99+
    2024-04-02
  • Go 函数学习笔记:从入门到精通!
    Go 语言是一种开源的静态编译型语言,由 Google 设计并开发。它具有简单、高效、安全等特点,因此越来越受到开发者的欢迎。其中,函数是 Go 语言中最基本的代码组织方式之一,也是编写高质量代码的关键所在。在本文中,我们将深入了解 Go...
    99+
    2023-08-19
    函数 开发技术 学习笔记
  • Go语言:入门到精通的学习笔记
    Go语言是一种开源的编程语言,由Google公司开发。它的设计目标是提高程序的可读性和可维护性,同时保持高效性和安全性。本文将带您从入门到精通,深入了解Go语言的基础知识和高级特性,并附上演示代码供您参考。 一、入门 Go语言的基本语法与C...
    99+
    2023-08-16
    laravel 学习笔记 shell
  • python基础入门学习笔记(Python环境搭建)
    Python学习第一篇。把之前学习的Python基础知识总结一下。 一、认识Python 首先我们得清楚这个:Python这个名字是从Monty Python借鉴过来的,而不是源于大家所知道的大蟒蛇的意思。...
    99+
    2022-06-04
    学习笔记 入门 环境
  • Python入门学习笔记4:他人的博客及
    看其他人的学习笔记,可以保证自己不走弯路。并且一举两得,即学知识又学方法! 廖雪峰:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e5...
    99+
    2023-01-30
    学习笔记 入门 博客
  • ASP 缓存 学习笔记 http:如何快速入门?
    ASP 缓存是一种在 ASP 程序中提高性能的技术。当 ASP 页面被请求时,它们可能会从数据库或其他数据源中获取数据,并进行处理,这样会消耗大量的时间和资源。而将这些数据缓存起来,可以避免重复获取和处理,从而提高网站的性能和响应速度。 ...
    99+
    2023-08-07
    缓存 学习笔记 http
  • Python并发编程入门:Linux环境学习笔记!
    在计算机科学中,并发是指在同一时间段内处理多个任务的能力。并发编程在现代计算机系统中至关重要,因为它可以提高系统的性能和响应能力。Python是一种流行的编程语言,它支持多线程和多进程并发编程。在本篇文章中,我们将学习如何在Linux环境...
    99+
    2023-07-07
    linux 学习笔记 并发
  • 用Git记录PHP和NumPy学习笔记:从入门到精通
    Git是一种十分流行的版本控制工具,它可以帮助我们管理代码、文档、图片等各种文件的版本,同时也是一个可以协作开发的平台。在开发过程中,我们通常需要记录自己的学习笔记,以便日后查阅和复习。本文将介绍如何使用Git来记录PHP和NumPy的学习...
    99+
    2023-10-07
    numy 学习笔记 git
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作