以下是我认为您需要做的总体情况。
你有两个虚拟机,我们称它们为 A 和 B。它们都需要有一个 tap 接口,并运行一些 mininet 拓扑。你的 mininet 拓扑应该连接到 tap 接口。然后你需要将水龙头连接在一起(隧道);所以这也将连接两个 mininet 拓扑。
我想棘手的部分是如何将 mininet 连接到 Tap 接口。看看我是如何在python 代码中做到这一点的。本质上,这部分代码完成了这项工作:
# 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)
细节:
- 在两个 VM 中创建一个 tap 接口并启动它们。
- 连接它们(隧道)。
- 在两个虚拟机上运行
sudo mn -c
以清理 mininet 环境。
- 在两个 VM 上运行控制器。确保端口不同。
- 在每个节点上运行你的 mininet 拓扑。
请注意,您用于创建 Tap 界面的名称应与您在 mininet 拓扑代码中使用的名称相同。
希望能帮助到你。让我知道我是否不清楚。