一:补充

(一)推文

openvswitch的原理和常用命令

https://blog.csdn.net/ten_sory/article/details/79593554

(二)回顾:sudo mn --test pingall

  1. 测试的是一个mininet自带的简单网络拓扑的连通性问题,这个简单的网络拓扑结构包含一个交换机s1,两个主机h1,h2与交换机构成连通网络

1.使用mn命令进入测试网络(上面图中网络)

  1. 可以查看信息

2.使用links命令查看链路连通性

3.使用dump查看各个节点信息

4.使用pingall命令测试各个主机之间是否连通

二:命令图谱

三:网络构建参数

(一)topo

1.单一拓扑:整个网络拓扑中交换机只有一个,下面可以连接多个主机

2.线性拓扑:可以有多个交换机,但是每个交换机下面只是连接一个主机

  1. 注意:网络链路状态中,links是包含交换机之间也是连通的 s1--s2--s3--s4

3.树形拓扑

  1. depth设置树的深度(不含根节点),fanout设置每个节点下的子树个数(广度)

4.自定义拓扑(重点)

(二)switch

  1. 定义网络拓扑要使用的交换机,后面可以接的参数有:ovskovsbrivslxbruser,前面三种均为OVS型交换机,后面两种分别为内核型(linux bridge)和用户型(user)交换机。
  1. 交换机分类3类:内核型、用户型、OVS型,其中内核型和OVS型的吞吐量比用户型大很多,因此一般采用后两种。
  1. 测试三者的TCP bandwidth
  1. sudo mn --test iperf 内核型

  1. sudo mn --switch user --test iperf 用户型
  1. sudo mn --switch ovsk --test iperf ovs

(三)controller :一般我们不用mininet自带的控制器,而是自己制定一个远程控制器

  1. 如果--ip和--port省略的话,则默认使用本地ip地址,端口默认使用66536633端口号。

(四)mac

  1. 使用这个参数可以让MAC地址从小到达排列,使得复杂的网络更清晰,容易辨识各个组件的MAC地址。
    不使用这个参数的话,复杂的网络容易混乱。

四:内部交互命令

(一)常用内部交互命令(不可修改网络结构)

  1. 这些命令在 mininet> 命令模式下使用,仅查看网络设备状态信息,不对网络结构进行改变

  1. net              查看链路信息,两个设备之间的之间连线,称为一个链路,链路是双向的
  2. nodes           查看有哪些可用节点
  3. links            检测链路是否正常工作
  4. pingall         检测各个主机之间的连通性
  5. pingpair       检测前两个主机的连通性            
  6. dump           查看节点信息

(二)采用内部交互命令:可以更改网络结构的命令,或者是带参数命令

1.py命令

  1. 执行Python表达式,例如添加网络设备。下面举例说明:
  2.  
  3. mininet自带的网络拓扑的基础上,我们想添加一个主机h3,并且让它和s1之间连通,且可以和其他两个主机h1h2互相ping通。
  1. py net.addHost('h3')                                #给当前网络net添加新的主机h3
  2. py net.addLink(s1,h3)                              #为主机h3和交换机s1之间添加一条链路
  3. py s1.attach('s1-eth3')                             #为交换机s1添加一个接口用于与h3相连
  4. py h3.cmd('ifconfig h3-eth0 10.3')               #为主机h3配置端口及改端口的IP地址
  5. h1 ping h3                                          #重要!!h1知道h3的IP地址,而h3不知道h1的地址,因此需要h1告诉h3的地址
  6. pingall                                             #测试所有主机都是连通的

2.link:设置链路状态

  1. link s1 s2 down/up 禁用/开启s1s2这两个节点之间的链路

  1. 可以看到,当关闭链路s1 s2后,主机h1h2是无法通信的

3.iperf h1 h2                          测试两个主机h1和h2之间的TCP带宽

4.iperfupd bw h1 h2             测试两个主机h1和h2之间的UDP带宽

  1. 一定要加上bw

5.dpctl                             对所有交换机操作流表,包括流表的显示、添加、修改、删除,具体用法,参考

6.xterm                             如xterm h1打开主机h1的操作窗口

五:Mininet可视化

(一)启动Miniedit

  1. 注意:最好在root权限下运行,在前面加上sudo

(二)自定义创建拓扑,设置设备信息

1.创建拓扑

2.配置设备属性

配置控制器

  1. 右击设备,出现控制器选项和属性

配置交换机

  1. 注意DPID16位长度

配置主机

  1. 注意:IP配置是根据全局配置中设置的网络地址设置的

配置链路 

miniedit的全局配置

(三)运行拓扑并生成拓扑脚本

  1. 运行设置好的网络拓扑,可在命令行界面显示出运行的拓扑信息

  1. 运行当中,右击长按,可以查看设备信息
  1. 使用图形界面设置好拓扑后,可以通过选择File-Export Level Script,将其保存为python脚本,以后直接运行python脚本即可重现拓扑,重现拓扑后可在命令行直接操作
  1. 可以通过python 脚本.py或者赋予脚本执行权限chmod +X 脚本.py

SDN实验---Mininet的相关命令(待补充完善)的更多相关文章

  1. SDN实验---Mininet实验(玩转流表)

    一:实验目的 (一)案例目的 (二)实验内容 (三)网络拓扑结构 二:OpenFlow流表实验准备 (一)使用Python设置网络拓扑 --- tree_topo.py from mininet.to ...

  2. SDN实验---Mininet实验(模拟多数据中心带宽实验)

    补充:NameError: name 'buffer' is not defined >>> import sys >>> ,): ... buffer = mem ...

  3. 实验 4 :Open vSwitch 实验 —— Mininet 中使用 OVS 命令

    实验 4 :Open vSwitch 实验 -- Mininet 中使用 OVS 命令 一.实验目的 Mininet 安装之后,会连带安装 Open vSwitch,可以直接通过 Python 脚本调 ...

  4. SDN实验2

    第二次sdn实验: 1. 利用mininet创建如下拓扑,要求拓扑支持OpenFlow 1.3协议,主机名.交换机名以及端口对应正确,请给出拓扑Mininet执行结果,展示端口连接情况. 本次使用py ...

  5. Linux文件管理相关命令

    Linux文件管理相关命令   作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux文件管理背景知识之后, 我们可以 ...

  6. SDN实验---Ryu的应用开发(二)Learning Switch

    一:自学习交换机(二层MAC交换机)的编程思路 (一)明确问题 如何实现软件定义的自学习交换机? (二)设计解决方案 通过控制器来实现自学习交换算法,然后指导数据平面实现交换机操作 (三)确定具体的技 ...

  7. linux 搜索相关命令(2)

    文件搜索相关命令 1:locate命令 需要 yum install mlocate locate 文件名 在后台数据库中按文件名搜索,搜索速度更快 /var/lib/mlocate #locate命 ...

  8. 《The Linux Command Line》 读书笔记04 Linux用户以及权限相关命令

    Linux用户以及权限相关命令 查看身份 id:Display user identity. 这个命令的输出会显示uid,gid和用户所属的组. uid即user ID,这是账户创建时被赋予的. gi ...

  9. linux 目录结构及其相关命令

    目录也是一个文件,它的唯一功能是用来保存文件及其相关信息.所有的文件,包括普通文件.设备文件和目录文件,都会被保存到目录中. 主目录 登录后,你所在的位置就是你的主目录(或登录目录),如果是root用 ...

随机推荐

  1. Postgresql日志配置

    将PostgreSQL数据库安装后,需要进行一些关于数据库日志的配置,将postgresql.conf文件中,关于日志的配置选项详解,记录如下: 1.logging_collector = on/of ...

  2. Python入门篇-函数、参数及参数解构

    Python入门篇-函数.参数及参数解构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数概述 1>.函数的作用即分类 函数 数学定义:y=f(x) ,y是x的函数,x ...

  3. 玩转DNS服务器——Bind服务

    合理的配置DNS的查询方式 实验环境: 虚拟机:VMware® Workstation 15 Pro 均使用NAT连接   网段为192.168.1.0/24 DNS 服务器 ---- Centos ...

  4. 如何查看自己steam库里游戏是哪个区的

    1 开启Steam开发者模式,切换到控制台,以便调出游戏区域数据 1.1 首先找到Steam的快捷方式,在目标一行中最后输入 -dev (前面带空格),然后重新运行. 1.2 如下图上方标签切换到控制 ...

  5. CSP-S 2019提高组训练 服务器需求

    时间限制:C/C++ 3秒 空间限制:C/C++ 262144K 题目描述 小多计划在接下来的n天里租用一些服务器,所有的服务器都是相同的.接下来n天中,第i天需要\(a_i\)台服务器工作,每台服务 ...

  6. Linux Shell 常用命令与目录分区的学习总结

    很早就想根据自己的学习规律和遗忘规律,自己总结一下Linux/Unix系统的Shell命令,一来便于自己时常查询之用,二来也分享于各位博友 Linux shell是系统的用户界面,即命令行.它提供了用 ...

  7. redis提权

    介绍:Redis是一个开源的使用ANSI C语言编写.遵守BSD协议.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.它通常被称为数据结构服务器,因为值(va ...

  8. mac系统下 PHPStorm 快捷键

    PHPStorm可以自己设置快捷键 按住command + , 打开Preferences点击Keymap,右边出现下拉框点击下拉框选择你想要的快捷键设置,eclipse快捷键比较常用 eclipse ...

  9. navicat设置唯一

    https://blog.csdn.net/Song_JiangTao/article/details/82192189

  10. 单页面应用程序(SPA)

    一.概念 ①在一个页面上实现网站的大部分功能,就是单页面应用程序,是一种常见的网页开发模式. ②整个网站就只有一个Html文件,每次在切换页面时,不需要请求服务器,只要通过本地的js来切换即可.这样可 ...