mininet写一个不使用远程控制器的拓扑,包含两个路由器和四个主机,每个路由器连接两个主机,路由器中设置转发规则
以下是一个不使用远程控制器的拓扑,包含两个路由器和四个主机,每个路由器连接两个主机,同时设置了转发规则:
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import Host, OVSKernelSwitch
from mininet.link import TCLink
class MyTopo(Topo):
def __init__(self):
Topo.__init__(self)
# Add hosts
h1 = self.addHost('h1')
h2 = self.addHost('h2')
h3 = self.addHost('h3')
h4 = self.addHost('h4')
# Add switches
s1 = self.addSwitch('s1', cls=OVSKernelSwitch)
s2 = self.addSwitch('s2', cls=OVSKernelSwitch)
# Add links
self.addLink(h1, s1, bw=10)
self.addLink(h2, s1, bw=10)
self.addLink(h3, s2, bw=10)
self.addLink(h4, s2, bw=10)
self.addLink(s1, s2, bw=5)
# Set routing rules
s1.cmd('ip route add to 10.0.2.0/24 via 10.0.1.2 dev s1-eth2')
s2.cmd('ip route add to 10.0.1.0/24 via 10.0.2.2 dev s2-eth2')
if __name__ == '__main__':
topo = MyTopo()
net = Mininet(topo=topo, link=TCLink)
net.start()
net.pingAll()
net.stop()
在这个拓扑中,我们创建了四个主机(h1~h4)和两个交换机(s1和s2),每个交换机连接两个主机。我们使用了 TCLink 来设置链路带宽。最后,在每个路由器上设置了转发规则,让数据包可以在两个交换机之间转发。
原文地址: https://www.cveoy.top/t/topic/xCH 著作权归作者所有。请勿转载和采集!