前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第五章 Mininet常用命令参数介绍

第五章 Mininet常用命令参数介绍

作者头像
红目香薰
发布2022-11-29 14:29:18
1.7K0
发布2022-11-29 14:29:18
举报
文章被收录于专栏:CSDNToQQCodeCSDNToQQCode

mn

观察,可以知道,已经进入了这个自带的网络,网络中有1个交换机和2个主机,且在打开这个网络之后,进入了  mininet>  这个命令模式

然后输入相关命令查看网络状态,如下图所示:

查看可用节点:【nodes

上图中的links用于查看链路连通性,dump查看节点信息,pingall测试各个主机之间是否连通。

此处,我们将mininet命令参数分为三大类:

(1)用于创建网络拓扑结构的命令参数;

(2)用于查看现有(或创建好的)网络拓扑中的各个节点(设备)的网络状态(ip地址、连通性等信息);

(3)用于修改当前网络拓扑,对已有的设备进行增删改查操作。

1.用于创建网络拓扑结构的命令参数

(1)--topo参数,可以创建具有一定规则的网络拓扑结构,也可以创建自定义的网络拓扑结构。

(a)在终端输入:

mn --topo=single,3

表示创建单个交换机3个主机的拓扑网络结构,如下图:

代码运行结果如下图:

links查看:

【exit】退出

(b)终端输入:

【mn --topo=linear,5】

links查看

(c)终端输入 

【mn --topo=tree,depth=2,fanout=3】

 表示创建了一个如下图所示的网络拓扑:

tree表示是树形的网络拓扑,depth表示交换机有多少层,fanout表示所有的交换机作为父节点,有多少个子树。

运行结果如下图:

links查看

(d)以上3中建立网络拓扑的方式,均是建立有规则的网络拓扑,如何自定义网络呢?语法如下:

mn --custom file.py --topo mytopo

具体使用请看下一篇:mininet自定义网络拓扑结构

(2)--switch  定义网络拓扑要使用的交换机,后面可以接的参数有:ovsk、ovsbr、ivs、lxbr、user,前面三种均为OVS型交换机,后面两种分别为内核型(linux bridge)和用户型(user)交换机。

交换机分类3类:用户型、内核型和OVS型,其中内核型和OVS型的吞吐量比用户性大很多,因此一般采用后两种。可以测试三者的TCP bandwidth(区别UDP bandwidth):

sudo mn --test iperf sudo mn --switch user --test iperf sudo mn --switch ovsk --test iperf

(3)--controller 一般我们不用mininet自带的控制器,而是自己制定一个远程控制器,代码如下:

mn --controller = remote,       --ip = [控制器的IP地址]       --port = [控制器的端口号] 如果--ip和--port省略的话,则默认使用本地ip地址,端口默认使用6653或6633端口号。

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

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

net             查看链路信息,两个设备之间的之间连线,称为一个链路,链路是双向的

nodes        查看有哪些可用节点

links           检测链路是否正常工作

pingall       检测各个主机之间的连通性

pingpair     检测前两个主机的连通性            

dump         查看节点信息

3.更改网络结构的命令参数 (1)py命令 

执行Python表达式,例如添加网络设备。下面举例说明:

在mininet自带的网络拓扑的基础上,我们想添加一个主机h3,并且让它和s1之间连通,且可以和其他两个主机h1和h2互相ping通。

代码如下:

py net.addHost('h3')                                #给当前网络net添加新的主机h3

py net.addLink(s1,h3)                              #为主机h3和交换机s1之间添加一条链路

py s1.attach('s1-eth3')                             #为交换机s1添加一个借口用于与h3相连

py h3.cmd('ifconfig h3-eth0 10.3')         #为主机h3配置端口及改端口的IP地址

h1 ping h3                                                #重要!!h1知道h3的IP地址,而h3不知道h1的地址,因此需要h1告诉h3的地址

pingall                                                       #测试所有主机都是连通的

(2)link(和links不同),用法如下:

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

(3)iperf

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

(4)iperfupd

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

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

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

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • mn
    • 1.用于创建网络拓扑结构的命令参数
      • (a)在终端输入:
      • links查看:
      • 【exit】退出
        • (b)终端输入:
          • 【mn --topo=linear,5】
          • links查看
          • (c)终端输入 
            • 【mn --topo=tree,depth=2,fanout=3】
              • links查看
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档