Mininet中的命令解析二

Test connectivity between hosts

验证h1可以ping通h2

h1 ping h2 -c 1

在这里插入图片描述
现在第一主机知道的第二个IP地址,并且可以通过ICMP ping 来回显请求
重复前一条命令
这次 ping 的时间将比第一次低的多, A flow entry covering ICMP ping traffic was previously installed in the switch, so no control traffic was generated, and the packets immediately pass through the switch.
使用pingall命令可以让每一个节点直接都产生上面的效果。

Run a simple web server and client

我们不单可以在主机上面运行ping命令,每一条 Linux下的命令或者程序都可以在 Mininet 中运行:
接下来,尝试开始于h1启动一个简单的HTTP服务器上,然后从h2发出请求,最后关闭Web服务器:

h1 python -m SimpleHTTPServer 80 &
h2 wget h1
h1 kill %python

在这里插入图片描述
退出mininet交互命令:mininet>exit
如果mininet出于某种原因崩溃,可以用下面命令来清理:sudo mn -c

Part 2: 高级选项Advanced Startup Options

回归测试Run a Regression Test

Mininet 可以用于直接运行回归测试,不一定要切换到他的 CLI 下面。
运行回归测试:

sudo mn --test pingpair

在这里插入图片描述
这条命令会创建一个小的拓扑结构,然后启动 OpenFLow 的控制器,然后跑 ping 测试,最后再把拓扑结构跟控制器关掉。
还有一直常用的测试是iperf(完成这个测试大概需要10s 钟):

sudo mn --test iperf

在这里插入图片描述
此命令创建的相同Mininet,并在其中一台 host 上面跑 iperf server, 然后在另外一台 host 上面运行iperf client 然后解析取得带宽情况。

更改拓扑结构大小和类型 Changing Topology Size and Type

Mininet 默认的拓扑结构是由两台 host 以及一台交换机组成的,你可以用–topo参数来更改拓扑结构。
假设你要在一个交换机与三台 host 之间做 ping 探测验证(verify all-pairs ping connectivity)。
运行回归测试:

sudo mn --test pingall --topo single,3

在这里插入图片描述
另一个例子中,使用线性拓扑(其中每个交换机配有一个主机,并且所有的交换机连接在一起):

sudo mn --test pingall --topo linear,4

在这里插入图片描述

链路变化 Link variations

Mininet2.0允许你设置连接参数,甚至可以通过命令行实现自动化设置:

$ sudo mn --link tc,bw=10,delay=10ms
mininet> iperf
mininet> h1 ping -c10 h2

在这里插入图片描述
上面的设置每两个节点之间的延迟是10ms,因为 ICMP 请求传过了两条链路(一次是到大交换机,一次到达主机),往返时间(RRT)就应该是40ms。
你还可以使用 PythonAPI 来做更多的事儿,不过现在我们先继续往下演练。

调整输出信息Adjustable Verbosity

Mininet默认输出信息的级别是 Info,Info级别会输出 Mininet的详细信息。
我们也可以通过 -v参数来设置输出DEBUG信息。

$ sudo mn -v debug
mininet> exit

在这里插入图片描述
这样会打印出更多额外的细节。现在尝试一下output参数,这样可以在 CLI 中打印更少的信息。

$ sudo mn -v output
mininet> exit

除了上面的几个级别,还有其他的级别可以使用,比如warning等

Custom Topologies自定义拓扑结构

在custom/topo-2sw-2host.py中是一个例子可以拿来参考,我们可以看到通过 PythonAPI 我们可以很简单的来定义拓扑结构。
这个例子直接连接两台交换机,每个交换机带有一台主机。
在这里插入图片描述
我们提供一个自定义的mininet 文件,就可以创建新的拓扑结构、交换机类型。
我们在命令行里面测试一下:
在这里插入图片描述
ID= MAC
默认情况下,host 的 mac 地址是随机分配的。这会导致每次 mininet 创建的时候,MAC地址都会改变,这会给调试带来一些困难
–mac参数可以解决上面的问题,例子如下:
之前:

$ sudo mn
mininet> h1 ifconfig

在这里插入图片描述
使用–mac参数:

$ sudo mn --mac
mininet> h1 ifconfig

在这里插入图片描述

XTerm Display xterm屏显

为了方便更复杂的调试工作,可以使用 mininet 的 xterms
可以通过x选项来给每一个 host 与交换机启动一个xterm。

sudo mn -x

在这里插入图片描述
后一秒钟,在xterm终端会弹出,并且具有自动设置窗口的名称(h1,h2…)。
或者,您也可以用下面的方式打开更多的xterm。
默认情况下,仅仅 host 需要一个namespace,而交换机的窗口则不用(与政策的终端类似)
but can be a convenient place to run and leave up switch debug commands, such as flow counter dumps.
在你想看到交互命令的时候,xterm 很有用,但是如果你仅仅想看到输出信息,那你可能想停掉 xterm
例如:
在switch: s1 (root)的 xterm下面运行:

dpctl dump-flows tcp:127.0.0.1:6634

在这里插入图片描述
因为交换机中没有数据流量,所以不会有信息输出。
To use dpctl with other switches, start up mininet in verbose mode and look at the passive listening ports for the switches when they’re created.
现在,在host: h1的xterm中运行:

# ping 10.0.0.2

在这里插入图片描述
回到s1的 xterm中查看:

# dpctl dump-flows tcp:127.0.0.1:6634

现在就可以看见数据流了。
另外我们可以直接用dpctl命令直接调用 Mininet CLI 里面的命令,而不需要启动任何xterm或者指定交换机的IP 跟端口。
我们看已通过ifconfig命令来判断xterm 是否在root的名字空间下,如果所有的网卡都显示出来(包含eth0),那他就是在root下。

Other Switch Types 其他类型的交换机

我们可以使用不同的交换机类型。例如:运行 user-space 交换机:

$ sudo mn --switch user --test iperf

值得注意的是这种交换机下,带宽相比于前面的内核态交换机要小的多。
如果做 ping 探测,也会有更高的延迟,这是因为现在的数据包需要从内核态转换到用户空间,消耗了更多的资源。
另一方面,用户空间的交换机会有一些新功能,如果交换机的性能不是关键问题是的时候。
在 Mininet 虚拟机中预装了另外一个交换机类型是 Open vSwitch(OVS),在iperf测试中,带宽会比内核态交换机更大。

$ sudo mn --switch ovsk --test iperf

Mininet Benchmark

To record the time to set up and tear down a topology, use test ‘none’:

$ sudo mn --test none

Everything in its own Namespace (user switch only)

默认情况下,主机都放在自己的命名空间,
而交换机和控制器的root命名空间。
我们可以通过–innamespace参数来把交换机放在自己的名字空间中。

$ sudo mn --innamespace --switch user

Instead of using loopback, the switches will talk to the controller through a separately bridged control connection.
就其本身而言,这个选项是没有多大用处的,但它确实提供了如何分离不同交换机的例子。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值