将非根网络命名空间中的物理以太网端口添加到 OVS 网桥

将非根网络命名空间中的物理以太网端口添加到 OVS 网桥

我有一台 Ubuntu 20.04 服务器,它有四个以太网接口:eno5、eno6、eno7 和 eno8。前两个属于根网络,后两个属于名为 netns1 的新网络。一条以太网电缆将 eno6 与 eno8 物理互连。

我已经创建了两个 OVS 桥(br0 和 br1),如下所示:

sudo ovs-vsctl add-br br0
sudo ovs-vsctl add-port br0 eno7
sudo ovs-vsctl add-port br0 eno8

sudo ovs-vsctl add-br br1
sudo ovs-vsctl add-port br1 eno5
sudo ovs-vsctl add-port br1 eno6

我希望能够通过以太网电缆(而不是内部电缆)从 br1(10.0.0.6/24)中的 eno6 ping 到 br0(10.0.0.8/24)中的 eno8。根据这个答案,这可以通过使用单独的网络命名空间来实现。

然而,OVS 抱怨它无法找到 eno7 和 eno8,它们位于 netns1 网络命名空间中:

$ sudo ovs-vsctl show
7b1ef2bc-b596-4214-879e-144d45c6a8df
    Bridge br0
        Controller "tcp:10.98.1.85:6653"
            is_connected: true
        Port eno7
            Interface eno7
                error: "could not open network device eno7 (No such device)"
        Port eno8
            Interface eno8
                error: "could not open network device eno8 (No such device)"
        Port br0
            Interface br0
                type: internal
    Bridge br1
        Controller "tcp:10.98.1.85:6653"
            is_connected: true
        Port br1
            Interface br1
                type: internal
        Port eno6
            Interface eno6
        Port eno5
            Interface eno5
    ovs_version: "2.13.8"

因此,我的 SDN 控制器无法发现与 eno7 和 eno8 关联的端口,并且无法在 10.0.0.6 和 10.0.0.8 之间进行 ping 操作。

这是我尝试过的:

  • 使用“ip netns exec netns1”创建 br0 桥,如下所示:sudo ip netns exec netns1 sudo ovs-vsctl add-br br0。没有区别。br0 在根命名空间中仍然可见,并且将 eno7 和 eno8 添加到 br0 会导致相同的错误。
  • 像这样手动将 br0 添加到 netns1 命名空间:sudo ip 链接设置 br0 netns netns1。现在 br0 仅在 netns1 命名空间中可见,但是将 eno7 和 eno8 添加到网桥时出现的错误是相同的,无论我是在将 br0 设置为 netns1 命名空间之前还是之后添加它们。

我想问一下,是否可以将自定义网络命名空间中的端口添加到 ovs 网桥?如果可以,该怎么做?

答案1

我希望能够通过以太网电缆(而不是内部)从 br1(10.0.0.6/24)中的 eno6 ping 到 br0(10.0.0.8/24)中的 eno8。根据此答案,这可以通过使用单独的网络命名空间来实现。

是的,但物理端口不必位于单独的命名空间中,而是实际配置了 IP 子网的接口。通常它们是同一个,但在使用任何形式的分层接口(网桥、绑定、VLAN)时则不是这样。

因此,只需将 eno7/eno8 正常添加到桥中,然后然后将 br0 或 br1 移动到单独的命名空间。

相关内容