Mininet(軽量レベルのソフトウェア定義ネットワークとテストプラットフォーム)の1つ
#Mininet -1
基本環境:
parallels@parallels-vm:~$ uname -r
4.13.0-43-generic
parallels@parallels-vm:~$ uname -a
Linux parallels-vm 4.13.0-43-generic #48~16.04.1-Ubuntu SMP Thu May 17 12:56:46 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
##Mininet基本操作:
###操作前に、
mn -h
を使用してマニュアルを確認できます.parallels@parallels-vm:~$ 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 default|ivs|lxbr|ovs|ovsbr|ovsk|user[,param=value...]
ovs=OVSSwitch default=OVSSwitch ovsk=OVSSwitch
lxbr=LinuxBridge user=UserSwitch ivs=IVSSwitch
ovsbr=OVSBridge
--host=HOST cfs|proc|rt[,param=value...]
rt=CPULimitedHost{'sched': 'rt'} proc=Host
cfs=CPULimitedHost{'sched': 'cfs'}
--controller=CONTROLLER
default|none|nox|ovsc|ref|remote|ryu[,param=value...]
ovsc=OVSController none=NullController
remote=RemoteController default=DefaultController
nox=NOX ryu=Ryu ref=Controller
--link=LINK default|ovs|tc|tcu[,param=value...] default=Link
ovs=OVSLink tcu=TCULink tc=TCLink
--topo=TOPO linear|minimal|reversed|single|torus|tree[,param=value
...] linear=LinearTopo torus=TorusTopo tree=TreeTopo
single=SingleSwitchTopo
reversed=SingleSwitchReversedTopo minimal=MinimalTopo
-c, --clean clean and exit
--custom=CUSTOM read custom classes or params from .py file(s)
--test=TEST none|build|all|iperf|pingpair|iperfudp|pingall
-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)
--nat [option=val...] adds a NAT to the topology that
connects Mininet hosts to the physical network.
Warning: This may route any traffic on the machine
that uses Mininet's IP subnet into the Mininet
network. If you need to change Mininet's IP subnet,
see the --ipbase option.
--version prints the version and exits
--cluster=server1,server2...
run on multiple servers (experimental!)
--placement=block|random
node placement for --cluster (experimental!)
以上はMininetのパラメータで、次は基本的なトポロジーを構築し始めます.
###基本的なトポロジー
最もシンプルなネットワーク環境の構築
parallels@parallels-vm:~$ sudo mn
*** Creating network
*** Adding controller
*** Adding hosts:
h1 h2
*** Adding switches:
s1
*** Adding links:
(h1, s1) (h2, s1)
*** Configuring hosts
h1 h2
*** Starting controller
c0
*** Starting 1 switches
s1 ...
*** Starting CLI:
mininet>
ネットワーク内のノード
sudo mn
をすばやく確認mininet> nodes
available nodes are:
c0 h1 h2 s1
ネットワークトポロジー(各ノード)の接続状況を確認する
(mininet)nodes
mininet> net
h1 h1-eth0:s1-eth1
h2 h2-eth0:s1-eth2
s1 lo: s1-eth1:h1-eth0 s1-eth2:h2-eth0
c0
特定のデバイスについて動作する
(mininet)net
mininet> h1 ifconfig
h1-eth0 Link encap:Ethernet HWaddr e6:06:6d:77:e4:c5
inet addr:10.0.0.1 Bcast:10.255.255.255 Mask:255.0.0.0
inet6 addr: fe80::e406:6dff:fe77:e4c5/64 Scope:Link
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:59 errors:0 dropped:0 overruns:0 frame:0
TX packets:31 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:5911 (5.9 KB) TX bytes:2630 (2.6 KB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope:Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
mininet
(mininet) ( ex. h1 ) ( )
を閉じるmininet> exit
*** Stopping 1 controllers
c0
*** Stopping 2 links
..
*** Stopping 1 switches
s1
*** Stopping 2 hosts
h1 h2
*** Done
completed in 779.394 seconds
注意!!!mininet操作に問題がある場合(ネットワーク、知られていないバグ)、
(mininet) exit
を使用すると環境を徹底的にきれいに片付けることができます!!