Mininet (Rapid Prototyping for Software Defined Networks)-1-

In this tutorial, i will show you how to create a simple network topology in your computer. For the first step, you need to install mininet on your computer.

Environment:

parallels@parallels-vm:~$ uname -r4.13.0-43-genericparallels@parallels-vm:~$ uname -aLinux parallels-vm 4.13.0-43-generic #48~16.04.1-Ubuntu SMP Thu May 10 12:56:46 UTC 2020 x86_64 x86_64 x86_64 GNU/Linuxparallels@parallels-vm:~$ git clone git://github.com/mininet/mininetparallels@parallels-vm:~$ cd mininetparallels@parallels-vm:~$ util/install.sh -a
parallels@parallels-vm:~$ sudo mn -hUsage: mn [options](type mn -h for details)The mn utility creates Mininet network from the command line. It can createparametrized 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!)

Ok! Let's start to create a realistic virtual network!

1.Create a simple network topology:

parallels@parallels-vm:~$ sudo mn*** Creating network*** Adding controller*** Adding hosts:h1 h2 *** Adding switches:s1 *** Adding links:(h1, s1) (h2, s1) *** Configuring hostsh1 h2 *** Starting controllerc0 *** Starting 1 switchess1 ...*** Starting CLI:mininet> 
Check how many nodes are in the network topology:
mininet> nodesavailable nodes are: c0 h1 h2 s1

3.Check network topology connection status:

mininet> neth1 h1-eth0:s1-eth1h2 h2-eth0:s1-eth2s1 lo:  s1-eth1:h1-eth0 s1-eth2:h2-eth0c0

4.you can type a command to operate on special equipment:

mininet> h1 ifconfigh1-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)

5.Closed the mininet:

mininet> exit*** Stopping 1 controllersc0 *** Stopping 2 links..*** Stopping 1 switchess1 *** Stopping 2 hostsh1 h2 *** Donecompleted in 779.394 seconds

You can use sudo mn -c to clean the virtual network environment when something problems.


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章