我正在尝试运行containernet_example.py
文件(在那里我用我的docker映像修改了2 docker映像主机),ONOS作为我的拓扑控制器。
当我通过localhost:8181/onos/ui/login.html
访问ONOS UI页面时,我无法访问主机,即UI页面中的docker映像。我的意思是拓扑不显示在onos页面中,但在containernet CLI中,ping对主机有效。我使用的命令是:
sudo mn --controller remote,ip=MYIPADDRESS --switch=ovsk,protocols=OpenFlow13 --custom containernet_example.py
然而,如果我尝试像树这样的标准拓扑,我就能够访问这些拓扑。我想在onos gui和containernet cli中使用这些docker映像作为主机。
我已经读了很多帖子,但我不能解决这个问题。任何见解都会有帮助。提前谢谢。
用于此的代码已从另一个StackOverflow链接获得,我无法标记,因为我无法准确地为页面添加书签。下面是我在2个docker映像作为containernet主机的情况下工作的代码。
from mininet.net import Containernet
from mininet.node import Controller, OVSKernelSwitch, RemoteController
from mininet.cli import CLI
from mininet.link import TCLink
from mininet.log import info, setLogLevel
setLogLevel('info')
net = Containernet(controller=RemoteController, switch=OVSKernelSwitch) #remote controller
info('*** Adding controllern')
net.addController('c0', controller=RemoteController, ip= 'MYIPADDRESS', port= 6653)
info('*** Adding docker containersn')
d1 = net.addDocker('d1', ip='10.0.0.251', dimage="myimage1:myimagetag")
d2 = net.addDocker('d2', ip='10.0.0.252', dimage="myimage2:myimagetag")
info('*** Adding switchesn')
s1 = net.addSwitch('s1', protocols= "OpenFlow13") #mentioning protocol
info('*** Creating linksn')
net.addLink(d1, s1)
net.addLink(d2, s1)
info('*** Starting networkn')
net.start()
info('*** Testing connectivityn')
net.ping([d1, d2,])
info('*** Running CLIn')
CLI(net)
info('*** Stopping network')
net.stop()
我使用的命令很简单sudo python3 myfilename.py