Fedora 31 和 openvswitch 与网络管理器桥接...不可能吗?

Fedora 31 和 openvswitch 与网络管理器桥接...不可能吗?

Fedora-31 认为网络脚本包已弃用(已经可以安装它,但它们警告您迁移到网络管理器)。所以我使用 Network-Manager(当然安装了 ovs 插件)首先在 openvswitch 上创建桥并添加 enp1s0 作为端口

ovs-vsctl add-br bridge0
ovs-vsctl add-port bridge0 enp1s0

然后我运行这些命令

nmcli connection add type ovs-bridge conn.interface-name bridge0 ipv4.method auto
nmcli connection add type ovs-port connection.interface-name port0 master bridge0
nmcli connection add type ovs-interface slave-type ovs-port connection.interface-name enp1s0 master port0

我想要一个带有动态地址的端口(enp1s0)的bridge0。使用经典的 linux 桥接器很容易。重启后..bridge0 上没有 ip!我也尝试这样

dhclient -v bridge0

但进入超时。我试过禁用selinux和防火墙,没办法。 Nmcli 报告此情况

enp1s0              7d27e505-7931-4838-bea1-08c9fbf759ae  ethernet       enp1s0  
virbr0              0fc3c827-9649-4ef6-a96e-31a24228f7d9  bridge         virbr0  
ovs-bridge-bridge0  12abce0d-488a-444e-99b3-390cbb4edebd  ovs-bridge     bridge0 
ovs-slave-port0     247757ec-76e0-425c-8484-311b48e4de01  ovs-port       port0  

除了 ovs-slave-port0 连接之外,所有内容都是绿色的

我的配置有什么问题?

答案1

当您使用 NetworkManager 时,您不需要使用ovs-vsctl.它甚至可能阻止 NM 实际接管外部创建的 OVS 设备(因此不仅没有必要,而且有害)。

此外,您不会直接dhclient在 NetworkManager 管理的设备上运行。我的意思是,对于一些临时测试,您可以这样做,但总的来说,这会干扰 NetworkManager。

此外,正如 中所解释的man nm-openswitch,NetworkManager 和 NetworkManager 之间也存在差异ovs-vsctl。引用:

  • 配置由网桥、端口和接口组成。接口总是从属于端口,而端口总是从属于网桥。

  • NetworkManager 仅创建您要求的网桥、端口和接口。与 ovs-vsctl 不同,它不会自动创建本地接口及其端口。

换句话说,虽然ovs-vsctl add-br还为您创建了一个接口,但使用 NetworkManager 您必须为此显式激活一个配置文件。这就是为什么dhclient bridge0不起作用,因为不存在这样的接口(并且您不应该dhclient显式运行)。

换句话说:在nmcli device你看到 anovs-bridge和 an ovs-port。但这些设备完全在 OVS 内部(ovs-vsctl show)。您不会看到它们,ip link也无法在它们上配置 IP 地址。内核不知道这些接口。您需要从属一个“真实”接口,ovs-port您(或 NetworkManager)可以在该接口上配置 IP 地址。

您可以在这里做两件事:

  • 要么从属以太网设备
    nmcli con add type ethernet slave-type ovs-port master port0 interface-name enp1s0 ...
    
  • 或创建一个 ovs 接口
    nmcli con add type ovs-interface slave-type ovs-port master port0 interface-name bridge0-if0 ...
    

在此类接口上,您可以通过在相应配置文件中指定 IP 配置来配置 IP 地址。

与往常一样,请注意 NetworkManager 连接配置文件和设备之间的区别。在 NetworkManager 中,您可以通过激活合适的配置文件来配置(和创建)设备。

我凭记忆写下这些例子,目的是为了给你一个想法。我建议您阅读man nm-openvswitch并遵循那里的示例。祝你好运。

相关内容