因此,我编写了一个python文件来创建单个拓扑(只是为了检查自定义拓扑是否正常工作),一开始没有使用任何控制器。代码是这样的:
#!/usr/bin/python
from mininet.node import CPULimitedHost, Host, Node
from mininet.node import OVSSwitch
from mininet.topo import Topo
class Single1(Topo):
"Single Topology"
def __init__(self):
"Create Fat tree Topology"
Topo.__init__(self)
#Add hosts
h1 = self.addHost('h1', cls=Host, ip='10.0.0.1', defaultRoute=None)
h2 = self.addHost('h2', cls=Host, ip='10.0.0.2', defaultRoute=None)
h3 = self.addHost('h3', cls=Host, ip='10.0.0.3', defaultRoute=None)
#Add switches
s1 = self.addSwitch('s1', cls=OVSSwitch)
#Add links
self.addLink(h1,s1)
self.addLink(h2,s1)
self.addLink(h3,s1)
topos = { 'mytopo': (lambda: Single1() ) }
当我运行以下命令时,Pingall不工作:
sudo mn --custom single.py --topo mytopo
尽管它确实适用于预定义的“单一”拓扑。有人能帮我解决这个问题吗?
发布于 2018-04-11 17:39:05
主机必须位于同一子网中,才能避免路由协议。否则,您需要静态路由
发布于 2018-04-13 22:08:39
这很奇怪,但现在我可以突然ping…我不知道为什么或如何…我没有改变任何东西。
发布于 2018-04-22 20:46:46
默认情况下,Mininet通过打开VSwitch来模拟交换机。如果没有连接到控制器,OVS将按照其默认规则像普通的L2交换机一样工作。这就是您可以执行pingall()的原因。
然而,我也遇到了Mininet主机无法相互ping的问题,即使它们实际上是连接的。几天后,我发现mininet链接准备好需要时间。因此,如果您等待大约30秒,然后调用pingall(),我认为它应该正常运行。
https://stackoverflow.com/questions/49757771
复制相似问题