大家好,我是文思月!
每文一言:不要假装努力,结果不会陪你演戏!
本篇文章:
使用Mininet创建简单的网络拓扑,并创建网络拓扑脚本。
正文如下:
1. 最小网络拓朴
创建最小的网络拓扑,一个交换机和两个主机,交换机连接了两个主机:
sudo mn --topo minimal
2. 线性网络拓扑
创建一个线性的拓扑,一个交换机连接一个主机,总共创建了4个交换机和4个主机
sudo mn --topo linear,4
3. 单一网络拓扑
创建一个single类型的拓扑,一个交换机连接多个主机,这里是一个交换机连接4个主机
sudo mn --topo single,4
4. 树网络拓扑
创建一个树形的拓扑,设置fanout(出度)和depth(高度),高度指的是交换机的高度,出度指的是交换机出度,这里是一个交换机连接两个主机,交换机的高度是2
sudo mn --topo tree,fanout=2,depth=2
5. 创建简单网络拓扑脚本
1)根据–topo linear,3来写一个linear.py的脚本
from mininet.net import Mininet
from mininet.topo import SingleSwitchTopo
Single3 = SingleSwitchTopo(k=3)
net = Mininet(topo=Single3)
net.start()
net.pingAll()
net.stop()
创建linear.py文件到myCustom文件夹下,myCustom文件夹需要与mininet文件夹在同一目录下
然后给文件增加可执行权限
chmod +x linear.py
sudo python3 linear.py
2)根据–topo single,3来写一个single.py的脚本
from mininet.net import Mininet
from mininet.topo import SingleSwitchTopo
single3 = SingleSwitchTopo(k=3)
net = Mininet(topo=single3)
net.start()
net.pingAll()
net.stop()
给single.py文件增加可执行权限
chmod +x single.py
sudo python3 single.py
3)根据–topo tree,fanout=2,depth=2来写一个tree.py的脚本
from mininet.net import Mininet
from mininet.topolib import TreeTopo
Tree22 = TreeTopo(depth=2, fanout=2)
net = Mininet(topo=Tree22)
net.start()
net.pingAll()
net.stop()
给tree.py文件增加可执行权限
chmod +x tree.py
sudo python3 tree.py
6. 创建自定义网络拓扑脚本
1)自定义网络拓扑,一个交换机,两个主机。该文件为myTopo1.py,放在myCustom文件夹下
from mininet.net import Mininet
net = Mininet()
c0 = net.addController('c0')
h0 = net.addHost('h0')
h1 = net.addHost('h1')
s0 = net.addSwitch('s0')
net.addLink(h0, s0)
net.addLink(h1, s0)
h0.setIP('10.0.0.1', 24)
h1.setIP('10.0.0.2', 24)
net.start()
net.pingAll()
net.stop()
sudo python3 myTopo1.py
2)自定义网络拓扑,一个交换机,三个主机,可以对主机的CPU进行配置,还可以设置链路带宽band width,延迟delay,最大队列的大小max_queue_size,损耗率loss。该文件为myTopo2.py,放在myCustom文件夹下
from mininet.net import Mininet
from mininet.node import CPULimitedHost
from mininet.link import TCLink
net = Mininet(host=CPULimitedHost, link=TCLink)
c0 = net.addController()
s0 = net.addSwitch('s0')
h0 = net.addHost('h0')
h1 = net.addHost('h1', cpu=0.5)
h2 = net.addHost('h2', cpu=0.5)
net.addLink(s0,
h0,
bw=10,
delay='5ms',
max_queue_size=1000,
loss=10,
use_htb=True)
net.addLink(s0, h1)
net.addLink(s0, h2)
net.start()
net.pingAll()
net.stop()
sudo python3 myTopo2.py
以上就是Mininet创建简单网络拓扑,以及创建网络拓扑脚本的一些方法,后续会继续写Mininet的其他使用方法。
参考博客:
https://www.cnblogs.com/pullself/p/10162901.html