对于那些不知道的人来说 - Mininet 是一个工具,它允许自动创建多个 OVS 交换机、chroot linux“容器”作为主机并将它们全部链接在一起以原型 OVS 驱动的网络。
我正在尝试创建一个略微开箱即用的 mininet 环境,但一直无法理解 mininet 如何处理容器和网络。我了解到,当您在 mininet 中创建新主机时,会在 mininet 实例和“主机”之间创建一个 veth 对。
在此图中,我用蓝色勾勒出了标准的 mininet 行为 - mininet 实例和主机之间的 veth 对。我正在尝试创建用红色标记的链接,即 mininet“主机”和 mininet 服务器上的 linux 网络堆栈之间的 veth 对。
这种情况允许我在主机上运行控制器并与主机 mininet 机器和虚拟网络的其余部分进行通信。
我该如何在 chroot“容器”和主机之间创建新的 veth 对?
答案1
您可以使用以下命令建立新的 veth 对。
#!/bin/bash
CONTAINERPID=$(get the pid of the container)
ip link add dev swport1 type veth peer h1-eth1
ip link set dev swport1 up
ip link set netns "${CONTAINERPID}" dev h1-eth1
这将在容器中创建一个“关闭”的链接,您需要在容器内部启动该链接并添加 IP 地址等。