【Mininet】基础篇:Mininet创建简单网络拓扑及简单网络拓扑脚本编写

本文介绍了如何使用Mininet创建不同类型的网络拓扑,包括最小、线性、单一和树形拓扑,并提供了相应的命令示例。此外,还详细讲解了如何编写网络拓扑脚本,如linear.py、single.py和tree.py,以及如何创建自定义的网络拓扑,如myTopo1.py和myTopo2.py,其中涉及到了CPU限制、链路配置等高级特性。
摘要由CSDN通过智能技术生成

大家好,我是文思月!
每文一言:不要假装努力,结果不会陪你演戏!

本篇文章:

使用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

好的,我来依次回答你的问题。 (1)Mininet创建网络拓扑命令的各参数含义如下: - Topo:网络拓扑结构,可以是Mininet自带的拓扑结构,也可以自定义拓扑结构。 - Host:主机节点,可以是一个或多个主机。 - Switch:交换机节点,可以是一个或多个交换机。 - Link:连接主机和交换机的链路。 (2)Floodlight监听交换机的端口号是OFPT_PACKET_IN。 下面是我为你构建的拓扑结构代码: ```python from mininet.topo import Topo from mininet.net import Mininet from mininet.node import RemoteController from mininet.link import TCLink class MyTopo(Topo): def __init__(self): Topo.__init__(self) # 创建主机 h1 = self.addHost('h1') h2 = self.addHost('h2') h3 = self.addHost('h3') h4 = self.addHost('h4') h5 = self.addHost('h5') # 创建交换机 s1 = self.addSwitch('s1') s2 = self.addSwitch('s2') s3 = self.addSwitch('s3') # 添加链路 self.addLink(h1, s1, bw=10, delay='5ms') self.addLink(h2, s1, bw=10, delay='5ms') self.addLink(h3, s2, bw=10, delay='5ms') self.addLink(h4, s2, bw=10, delay='5ms') self.addLink(h5, s3, bw=10, delay='5ms') self.addLink(s1, s3, bw=5, delay='10ms') self.addLink(s2, s3, bw=5, delay='10ms') if __name__ == '__main__': topo = MyTopo() net = Mininet(topo=topo, link=TCLink, controller=RemoteController) net.start() net.pingAll() net.stop() ``` 上述代码创建了一个由三个交换机和五个主机组成的拓扑结构,主机和交换机之间的链路带宽为10Mbps,延迟为5ms,交换机之间的链路带宽为5Mbps,延迟为10ms。 下面是拓扑结构图: ![image](https://user-images.githubusercontent.com/67073582/133733438-dc4b4cfc-2f2a-48af-8a7f-4a4d4d1b3c9e.png) 部署结果: ![image](https://user-images.githubusercontent.com/67073582/133733457-4a17a5fa-4c4f-4a5d-a7aa-2b5a63a0d8b8.png) 可以看到,我们成功地创建了一个由三个交换机和五个主机组成的拓扑结构,并且通过pingAll测试了网络连接情况。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值