Mininet中自定义拓扑pingall失败及处理办法

问题

之前的自定义拓扑一直pingall失败,检查了controller的连接和host、switch的设置都没有问题,甚至流表也是正常的。
Mininet中自定义拓扑pingall失败及处理办法_第1张图片

然后发现是因为自定义拓扑里有环路。
我用的controller是RYU中的simple_switch.py,自定义拓扑中有环路时无法收敛。

解决方案

要解决这个问题可以手动去除环路,也可以使用switch中的stp协议,这个协议可以破除拓扑中的环路。
使用stp协议需要在启动mininet时向命令中添加参数 --switch lxbr,stp=1 or --switch ovsbr,stp=1,具体命令举例如下:

sudo mn --topo torus,3,3 --switch ovsbr,stp=1

mininet开始运行后等stp起效即可。
Mininet中自定义拓扑pingall失败及处理办法_第2张图片

参考链接

https://www.zhihu.com/question/521566304
stp相关:https://github.com/mininet/mininet/wiki/FAQ
Mininet中自定义拓扑pingall失败及处理办法_第3张图片

你可能感兴趣的:(网络)