如何在两种不同的远程控制器下,ping连接到两个不同虚拟交换机的两个虚拟主机?
假设我通过Python脚本在mininet中创建了一个虚拟网络。这个网络包含:
两个远程控制器(c1,c2),
两个交换机(s1,s2):s1由c1控制,s2由c2控制,s1和s2是相互连接的。
两个主机(h1,h2):h1连接到s1,h2连接到s2。
当我在h1上输入ping命令去ping h2时,显示“目标主机不可达”。
请告诉我为什么无法ping通?
c1 c2
/ \
s1------s2
/ \
h1 h2
1 个回答
1
你需要编写控制器的程序,以便以以下方式配置交换机:
如果交换机s1收到一个数据包,目标IP地址是h2的IP地址,那么这个数据包应该通过连接到s2的端口出去。
反过来也一样。
如果s1收到一个发往h1的数据包,就把它通过连接到h1的端口发送出去。
s2也要做类似的处理。
考虑到这个解决方案的思路其实很简单,可能你一开始没有考虑到要编程控制器。首先,建议你先看看一个简单的控制器教程,比如POX。虽然控制器的代码一开始看起来可能会让人感到困惑,但一旦你掌握了代码的模式,就会发现其实很简单!
我知道我回答得有点晚,但希望这能帮助到其他正在寻找类似解决方案的人。