Mininet中文使用教程
译者注:这篇 Blog 是在学习 SDN 过程中翻译的Mininet 官方的文档.文档主要是介绍了 Mininet 的简单用法.会分成几个部分放出来,原文.下面是正文
第1部分:Everyday Mininet Usage
首先是是命令语法
∙$这个符号代表现在处于 Linux 的shell 交互下,需要使用的是 Linux 命令
∙mininet>这个符号表示现在处于 Mininet 交互下,需要使用的是 Mininet 的命令
∙#这个符号表示的是现在处于 Linux 的 root 权限下.
以上相应的状态下下属于对应的命令,就能够得到正常的输出.需要注意的是mininet>的情况比较特殊,需要使用 minient 的命令来进行交互.
Display Startup Options
我们首先来启动 Mininet.
键入以下命令来显示Mininet的帮助信息:
$ sudo mn -h
Usage: mn [options]
<type mn -h for details>
The mn utility creates Mininet network from the command line. It can create
parametrized topologies, invoke the Mininet CLI, and run tests.
Options:
-h, --help show this help message and exit
--switch=SWITCH ivs|ovsk|ovsl|user[,]
-
-host=HOST cfs|proc|rt[,]
--controller=CONTROLLER
none|nox|ovsc|ref|remote[,]
--link=LINK default|tc[,]
--topo=TOPO linear|minimal|reversed|single|tree[,]
-c, --clean clean and exit
--custom=CUSTOM read custom topo and node params from .pyfile
--test=TEST cli|build|pingall|pingpair|iperf|all|iperfudp|none
-x, --xterms spawn xterms for each node
-i IPBASE, --ipbase=IPBASE
base IP address for hosts
--mac automatically set host MACs
--arp set all-pairs ARP entries
-v VERBOSITY, --verbosity=VERBOSITY
info|warning|critical|error|debug|output
--innamespace sw and ctrl in namespace?
--listenport=LISTENPORT
base port for passive switch listening
--nolistenport don't use passive listening port
--pre=PRE CLI script to run before tests
--post=POST CLI script to run after tests
--pin pin hosts to CPU cores <requires --host cfs or --host
rt>
--version
如上所示,输出了 mn 的帮助信息.
Start Wireshark
为了使用 Wireshark 来查看 OpenFlow 的控制信息,我们先打开 Wireshark 并让他在后台运行.$ sudo wireshark &
在 Wireshark 的过滤选项中,输入of,然后选择 Apply.
In Wireshark, click Capture, then Interfaces, then select Start on the loopback interface <lo>.
现在窗口上暂时应该没有任何 OpenFlow 的数据包.
注:在Mininet VM镜像中Wireshark是默认已经安装的.如果你的系统中没有Wireshark的和OpenFlow,您可以使用Mininet的install.sh脚本,按以下步骤安装:
$ cd ~
$ git clone s://github /mininet/mininet#如果它尚不存在
$ mininet/util/install.sh -w
如果已经安装了 Wireshark,但是运行不了〔e.g. 你得到一个类似$DISPLAY not set之类的错误信息,可以参考 FAQ,:s://github /mininet/mininet/wiki/FAQ#wiki-X11-forwarding〕
设置好 X11就可以正常运行 GUI 程序,并且使用 xterm 之类的终端仿真器了,后面的演示中可以用到.
Interact with Hosts and Switches
Start a minimal topology and enter the CLI:
$ sudo mn
默认的最小拓扑结构包含有两台主机〔h1,h2〕,还有一个 OpenFlow 的交换机,一个 OpenFlow 的控制器四台设备.这种拓扑接口也可以使用--topo=minimal来指定.当然我们也可以使用其他的拓扑结构,具体信息可以看--topo的信息.
现在四个实体〔h1,h2,c0,s1〕都在运行着.c0作为控制器,是可以放在虚拟机外部的.
如果没有具体的测试作为参数传递时,我们可以使用 Mininet 交互.
在Wireshark的窗口中,你会看到内核交换机连接到控制器.
显示Mininet CLI命令:
mininet> help
Documented commands <type help <topic>>:
========================================
EOF exit intfs link noecho pingpair py source xterm
dpctl gterm iperf net pingall pingpairfull quit time
dump help iperfudp nodes pingallfull px sh x
You may also send a command to a node using:
<node> command {args}
For example:
mininet> h1 ifconfig
The interpreter automatically substitutes IP addresses
for node names when a node is the first arg, so commands
like
mininet> h2 ping h3
should work.
Some character-oriented interactive commands require
noecho:
mininet> noecho h2 vi foo.py
However, starting up an xterm/gterm is generally better:
mininet> xterm h2
controller翻译中文显示节点:
mininet> nodes
available nodes are:
c0 h1 h2 s1
显示网络:
mininet> net
h1 h1-eth0:s1-eth1
h2 h2-eth0:s1-eth2
s1 lo: s1-eth1:h1-eth0 s1-eth2:h2-eth0
c0
输出所有节点的信息:
mininet> dump
<Host h1: h1-eth0:10.0.0.1 pid=3278>
<Host h2: h2-eth0:10.0.0.2 pid=3279>
<OVSSwitch s1: lo:127.0.0.1,s1-eth1:None,s1-eth2:None pid=3282>
<OVSController c0: 127.0.0.1:6633 pid=3268>
从上面的输出中,你可以看到有一台交换机和两台主机.
在 Mininet 的CLI 中第一个字符串是设备名,那后面的命令就在该设备上执行.例如我们想在h1设备上执行ifconfig则输入如下命令:
mininet> h1 ifconfig -a
h1-eth0 Link encap:Ethernet HWaddr 3e:94:43:b1:ad:48
inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0
inet6 addr: fe80::3c94:43ff:feb1:ad48/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:22 errors:0 dropped:0 overruns:0 frame:0
TX packets:8 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论