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

In this tutorial, i will show you how to create a simple network topology including Hub, Router and Switch.

First experimental topology:
http://img2.58codes.com/2024/20126989iGW852ExMO.png
in this experiment, you need to type this command to install:

sudo apt-get install bridge utils

Base command:

brctl addbr br0       //add bridge(BRCTL = bridge control)brctl addif br0 eth0  //Which current interface to add to the bridge (addif = add interface)

Here is my topology.py:

 #!/usr/bin/env pythonfrom mininet.cli import CLIfrom mininet.net import Mininetfrom mininet.link import Link,TCLinkif '__main__' == __name__ : net = Mininet(link=TCLink) h1 = net.addHost('h1', ip="192.168.10.1/24", mac="00:00:00:00:00:01") h2 = net.addHost('h2', ip="192.168.10.2/24", mac="00:00:00:00:00:02") h3 = net.addHost('h3', ip="192.168.20.1/24", mac="00:00:00:00:00:03") r0 = net.addHost('r0') s0 = net.addHost('s0') net.addLink(h1,s0) net.addLink(h2,s0) net.addLink(s0,r0) net.addLink(r0,h3) net.build() r0.cmd("echo 1 > /proc/sys/net/ipv4/ip_forward") r0.cmd('ifconfig r0-eth0 192.168.10.254 netmask 255.255.255.0') r0.cmd('ifconfig r0-eth1 192.168.20.254 netmask 255.255.255.0') h1.cmd("ip route add default via 192.168.10.254 dev h1-eth0") h2.cmd("ip rotue add default via 192.168.10.254 dev h2-eth0") h3.cmd("ip route add default via 192.168.20.254 dev h3-eth0") s0.cmd("brctl addbr br0") s0.cmd("brctl addif br0 s0-eth0") s0.cmd("brctl addif br0 s0-eth1") s0.cmd("brctl addif br0 s0-eth2") s0.cmd("ifconfig br0 up") CLI(net) net.stop()

echo 1 > /proc/sys/net/ipv4/ip_forward --> mean enable routing function.
ip rotue add default via 192.168.10.254 dev h2-eth0 -->setting default router.

The execution result:

parallels@parallels-vm:~/Desktop/shell$ sudo python topology.py mininet> neth1 h1-eth0:s0-eth0h2 h2-eth0:s0-eth1h3 h3-eth0:r0-eth1r0 r0-eth0:s0-eth2 r0-eth1:h3-eth0s0 s0-eth0:h1-eth0 s0-eth1:h2-eth0 s0-eth2:r0-eth0mininet> nodesavailable nodes are: h1 h2 h3 r0 s0mininet> linksh1-eth0<->s0-eth0 (OK OK) h2-eth0<->s0-eth1 (OK OK) s0-eth2<->r0-eth0 (OK OK) r0-eth1<->h3-eth0 (OK OK) 

Second experimental topology:
continuation experiment 1, i added h4 which opened hub function.
Here is my topology.py:

#!/usr/bin/env pythonfrom mininet.cli import CLIfrom mininet.net import Mininetfrom mininet.link import Link,TCLinkif '__main__' == __name__ : net = Mininet(link=TCLink) h1 = net.addHost('h1', ip="192.168.10.1/24", mac="00:00:00:00:00:01") h2 = net.addHost('h2', ip="192.168.10.2/24", mac="00:00:00:00:00:02") h3 = net.addHost('h3', ip="192.168.20.1/24", mac="00:00:00:00:00:03") h4 = net.addHost('h4', ip="192.168.10.3/24", mac="00:00:00:00:00:04") r0 = net.addHost('r0') s0 = net.addHost('s0') net.addLink(h1, s0) net.addLink(h2, s0) net.addLink(s0, r0) net.addLink(r0, h3) net.addLink(s0, h4) net.build() r0.cmd("echo 1 > /proc/sys/net/ipv4/ip_forward") r0.cmd('ifconfig r0-eth0 192.168.10.254 netmask 255.255.255.0') r0.cmd('ifconfig r0-eth1 192.168.20.254 netmask 255.255.255.0') h1.cmd("ip route add default via 192.168.10.254 dev h1-eth0") h2.cmd("ip rotue add default via 192.168.10.254 dev h2-eth0") h3.cmd("ip route add default via 192.168.20.254 dev h3-eth0") h4.cmd("ip route add default via 192.168.10.254 dev h4-eth0") s0.cmd("brctl addbr br0") s0.cmd("brctl addif br0 s0-eth0") s0.cmd("brctl addif br0 s0-eth1") s0.cmd("brctl addif br0 s0-eth2") s0.cmd("brctl addif br0 s0-eth3") s0.cmd("brctl setageing br0 0") s0.cmd("ifconfig br0 up") CLI(net) net.stop()

http://img2.58codes.com/2024/20126989c5npkoH0Xj.png


关于作者: 网站小编

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

热门文章