例如
现在有 5 个机房 每个机房有 3 台机器
每个机房的 IP 段是/24 相同的
要求单独点对点互联所有机房!
并且点对点时可以设置各个不同连接机房的延迟和宽带限速
例如 A => B 延迟 30ms 宽带 80ms
借助工具写了个这样的 但是不行:
from mininet.net import Mininet from mininet.node import Nod from mininet.link import Link from mininet.cli import CLI from mininet.log import setLogLevel, info class LinuxRouter(Node): "A Node with IP forwarding enabled." def config(self, **params): super(LinuxRouter, self).config(**params) # Enable forwarding on the router self.cmd('sysctl net.ipv4.ip_forward=1') def terminate(self): self.cmd('sysctl net.ipv4.ip_forward=0') super(LinuxRouter, self).terminate() def create_network(): net = Mininet(topo=None, build=False) # Create routers for each room routers = [net.addHost('r%s' % i, cls=LinuxRouter, ip='10.0.%s.1/24' % i) for i in range(1, 6)] # Create switch and hosts for each room, and connect them for i in range(1, 6): switch = net.addSwitch('s%s' % i) net.addLink(switch, routers[i-1]) # Connect switch to router for j in range(1, 3): host = net.addHost('h%s%s' % (i, j), ip='10.0.%s.%s/24' % (i, 10+j), defaultRoute='via 10.0.%s.1' % i) net.addLink(host, switch) # Manually create links between routers to simulate the point-to-point connections for i in range(len(routers)-1): net.addLink(routers[i], routers[i+1]) net.build() net.start() CLI(net) net.stop() if __name__ == '__main__': setLogLevel('debug') create_network()