如何连接Mininet中不同网络的2台交换机?

时间:2015-08-03 11:24:18

标签: mininet

我正在尝试解决我在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。

有人请吗?

1 个答案:

答案 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)

细节:

  1. 在两个VM中创建一个tap界面并启动它们。
  2. 连接它们(隧道)。
  3. 在两个VM上运行sudo mn -c以清理mininet环境。
  4. 在两个VM上运行控制器。确保端口不同。
  5. 在每个上运行你的mininet topo。
  6. 请注意,用于创建Tap界面的名称应与您在mininet拓扑代码中使用的名称相同。

    希望它有所帮助。如果我对某些事情不清楚,请告诉我。