我正在尝试解决我在2个不同虚拟机中拥有2个不同网络的任务。
VM1:
H1----->S1------>C1
and on VM2:
H2------>S2------>C2
我知道通过GRE隧道,我可以连接2个不同的网络,但在这种情况下,我将S1远程连接到C2,S2连接到C1。 但在这里我不希望VM1的控制器控制VM2的Switch。
我在想,如果有可能我可以通过GRE隧道以某种方式在S1和S2之间建立连接。 因此,当我希望H1对H2进行ping操作时,它应该从H1到S1,从S1到S2再到H2。
有人请吗?
答案 0 :(得分:1)
以下是我认为您需要做的总体情况。
你有两个虚拟机,我们称之为A和B.在这两个虚拟机上你需要有一个水龙头界面,还有一些mininet topo正在运行。您应该将mininet topo连接到tap界面。然后你需要将水龙头连接在一起(隧道);所以这也将连接两个mininet topos。
我想棘手的部分是如何将mininet连接到tap接口。看看我在python code中的表现。这部分代码必不可少的是:
# This would connect switch s1 tap interface named tap1
self.addIntf(s1,'tap0')
此外,当您添加控制器时,我认为因为每个VM都有自己的本地主机,所以使用相同的localhost ip和相同的端口号就可以了。但我不确定,所以万一,改变其中一个的端口号。
# So this is ip address and port number of controller.
# both mininet codes should have this line, although with different port number
c = RemoteController('c','0.0.0.0',6633)
细节:
sudo mn -c
以清理mininet环境。 请注意,用于创建Tap界面的名称应与您在mininet拓扑代码中使用的名称相同。
希望它有所帮助。如果我对某些事情不清楚,请告诉我。