我构建了一个简单的 mininet 拓扑,其中两个主机连接到由运行 forwarding.L2_learning 组件的远程控制器 pox 控制的交换机。这工作正常 ping 一切都很好。
现在我用两个主机和两个交换机更改拓扑,每个主机连接到一个交换机,两个交换机都连接到运行相同组件(forwarding.L2_learning)的远程 pox 控制器。
但是这次pingall不起作用!我是 mininet 和 pox 的新手。
用于创建 mininet 拓扑的 python 脚本如下
#!/usr/bin/python
from mininet.net import Mininet
from mininet.node import Controller, RemoteController, OVSController
from mininet.node import CPULimitedHost, Host, Node
from mininet.node import OVSKernelSwitch, UserSwitch
from mininet.node import IVSSwitch
from mininet.cli import CLI
from mininet.log import setLogLevel, info
from mininet.link import TCLink, Intf
from subprocess import call
from time import sleep
def myNetwork():
net = Mininet(topo=None,
build=False,
ipBase='10.0.0.0/8')
info('*** Adding controller\n')
c0 = net.addController(name='c0',
controller=RemoteController,
ip='0.0.0.0',
protocol='tcp',
port=6633)
info('*** Add switches\n')
s1 = net.addSwitch('s1', cls=OVSKernelSwitch)
s2 = net.addSwitch('s2', cls=OVSKernelSwitch)
info('*** Add hosts\n')
h1 = net.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)
h2 = net.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)
info('*** Add links\n')
net.addLink(h1, s1)
net.addLink(h2, s2)
net.addLink(h1, s2)
info('*** Starting network\n')
net.build()
info('*** Starting controllers\n')
for controller in net.controllers:
controller.start()
info('*** Starting switches\n')
net.get('s1').start([c0])
net.get('s2').start([c0])
info('*** Post configure switches and hosts\n')
net.pingAll()
net.stop()
if __name__ == '__main__':
setLogLevel('info')
myNetwork()