Python 在Mininet中创建简单拓扑(3个路由器和3个主机)
我试图通过修改创建的mininet示例(linuxrouter.py)来创建一个包含3个路由器和3个主机的拓扑 不幸的是,当我去: h1平h2 它不工作,并告诉我“无法访问目标主机”。 我想知道我在代码上做错了什么,非常感谢 这就是我心目中的拓扑结构: 这是python中的代码:Python 在Mininet中创建简单拓扑(3个路由器和3个主机),python,dump,sdn,mininet,Python,Dump,Sdn,Mininet,我试图通过修改创建的mininet示例(linuxrouter.py)来创建一个包含3个路由器和3个主机的拓扑 不幸的是,当我去: h1平h2 它不工作,并告诉我“无法访问目标主机”。 我想知道我在代码上做错了什么,非常感谢 这就是我心目中的拓扑结构: 这是python中的代码: #!/usr/bin/python from mininet.topo import Topo from mininet.net import Mininet from mininet.node import Nod
#!/usr/bin/python
from mininet.topo import Topo
from mininet.net import Mininet
from mininet.node import Node
from mininet.log import setLogLevel, info
from mininet.cli import CLI
class LinuxRouter(Node):
def config(self, **params):
super(LinuxRouter, self).config(**params)
self.cmd('sysctl net.ipv4.ip_forward=1')
def terminate(self):
self.cmd('sysctl net.ipv4.ip_forward=0')
super(LinuxRouter, self).terminate()
class NetworkTopo(Topo):
def build(self, **_opts):
# Add 3 routers in three different subnets
r1 = self.addNode('r1', cls=LinuxRouter, ip='10.0.0.1/24')
r2 = self.addNode('r2', cls=LinuxRouter, ip='10.1.0.1/24')
r3 = self.addNode('r3', cls=LinuxRouter, ip='10.2.0.1/24')
# Adding hosts specifying the default route
h1 = self.addHost(name='h1',
ip='10.0.0.251/24',
defaultRoute='via 10.0.0.1')
h2 = self.addHost(name='h2',
ip='10.1.0.252/24',
defaultRoute='via 10.1.0.1')
h3 = self.addHost(name='h3',
ip='10.2.0.253/24',
defaultRoute='via 10.2.0.1')
# Add router-router link in a new subnet for the router-router connection
self.addLink(r1,
r2,
intfName1='r1-eth0',
intfName2='r2-eth0',
params1={'ip': '10.5.0.1/24'},
params2={'ip': '10.5.0.100/24'})
self.addLink(r1,
r3,
intfName1='r1-eth1',
intfName2='r3-eth0',
params1={'ip': '10.6.0.253/24'},
params2={'ip': '10.6.0.254/24'})
self.addLink(r2,
r3,
intfName1='r2-eth1',
intfName2='r3-eth1',
params1={'ip': '10.7.0.1/24'},
params2={'ip': '10.7.0.10/24'})
# Add host-router links
self.addLink(h1, r1,intfName1='h1-eth3',intfName2='r1-eth3')
self.addLink(h2, r2,intfName1='h2-eth4',intfName2='r2-eth4')
self.addLink(h3, r3,intfName1='h3-eth5',intfName2='r3-eth5')
def run():
topo = NetworkTopo()
net = Mininet(topo=topo)
# Add routing for reaching networks that aren't directly connected
info(net['r1'].cmd("route"))
info(net['r2'].cmd("route"))
info(net['r3'].cmd("route"))
net.start()
CLI(net)
net.stop()
if __name__ == '__main__':
setLogLevel('info')
run()