添加桥接接口后网络停止工作

添加桥接接口后网络停止工作

我使用的是 Fedora 25,内核为 4.11.9,安装了 kvm 和 bridge-utils。我按照http://www.linux-kvm.org/page/Networking#Public_Bridge,以获取公共网桥。我的机器上还安装了 Docker(它会创建自己的网桥和虚拟接口)。

当我运行 时ip link add br0 type bridge,一切都正常。但之后,当我运行ip link set eth0 master br0我的网络时,它停止工作。接口 eth0 是我用来访问本地网络并退出互联网的接口。

可能出了什么问题?我该如何解决此问题?

答案1

当您将以太网接口添加到网桥时,您还需要将 ipv4 设置从 eth0 移至 br0。因此,首先清除 eth0 设置,然后将 ipv4/6 地址/网关/等提供给 br0。

我个人认为使用 NetworkManager 的 GUI(或 TUI)来执行此任务很方便。

答案2

这个方法对我有用(使用 NetworkManager CLI):

https://gist.github.com/plembo/f7abd2d9b6f76e7afdece02dae7e5097

以 root 身份执行以下步骤:

> nmcli con show
Ethernet 1  e923bc3e-d77f-4f68-8b33-eaa9955f437d  ethernet  eth0

识别以太网连接和物理设备。从现在开始,作为示例,它们分别是“以太网 1”和“eth0”。现在创建一个桥接网络:

> nmcli con add ifname br0 type bridge con-name 'Bridge 1'

并将物理设备添加为该新连接的从属设备:

> nmcli con add type bridge-slave ifname eth0 master 'Bridge 1'

现在,事情会表现如下:

> nmcli con show
Ethernet 1         e923bc3e-d77f-4f68-8b33-eaa9955f437d  ethernet  eth0
Bridge 1           c2a4218f-70b8-488e-83a6-49530ad79d7c  bridge    br0
bridge-slave-eth0  92fab279-110a-48ec-9e55-f240353f4fb2  ethernet  --

如果您使用 DHCP:

> nmcli con mod 'Bridge 1' ipv4.method auto

如果不,

> nmcli con mod 'Bridge 1' ipv4.method manual
> nmcli con mod 'Bridge 1' ipv4.addresses 10.1.1.16/24
> nmcli con mod 'Bridge 1' ipv4.gateway 10.1.1.1
> nmcli con mod 'Bridge 1' ipv4.dns '10.1.1.1,8.8.8.8,8.8.4'

此外,不需要 STP,因此请禁用它:

> nmcli con mod 'Bridge 1' bridge.stp no

现在关闭以太网连接并打开桥接:

> nmcli con down 'Ethernet 1'
> nmcli con up 'Bridge 1'

目前,当您重新启动计算机时,以太网 1 连接会继续绑定到 eth0 设备,但我们不希望出现这种情况。为了让网桥从属设备可以绑定到物理设备,这最后一个设备必须是空闲的,因此您必须禁用以太网连接的自动连接标志:

> nmcli con mod 'Ethernet 1' connection.autoconnect no

其他步骤:

  • 此外,您可能需要打开 NetworkManager GUI,并编辑 bridge-slave-eth0 连接以将其限制为 eth0 物理设备。
  • 此时,eth0 物理设备可能被锁定到“以太网 1”连接,您可能需要重新启动。

相关内容