使用 Netplan 网桥在 Hetzner 上丢失网络连接

swe*_*web 4 networking bridge ubuntu netplan

我安装了 Ubuntu 18.04 并希望有一个桥接接口,而不是直接使用主接口进行 KVM 虚拟化:

这是安装后的Netplan默认配置,效果很好:

----
# This file describes the network interfaces available on your system
# For more information, see netplan(5).
network:
  version: 2
  renderer: networkd
  ethernets:
    enp4s0:
      addresses: [ 176.9.199.230/27 ]
      gateway4: 176.9.199.225
      nameservers:
          addresses:
              - "8.8.8.8"
Run Code Online (Sandbox Code Playgroud)

在阅读了 Netplan 的文档后,我尝试了桥接模式的这个设置:

---

network:
  version: 2
  renderer: networkd
  ethernets:
    enp4s0:
      dhcp4: no
      dhcp6: no
  bridges:
    vmbr0:
      dhcp4: no
      dhcp6: no
      interfaces: [ enp4s0 ]
      addresses: [ 176.9.199.230/27 ]
      gateway4: 176.9.199.225
      nameservers:
        addresses:
          - "127.0.0.1"
      parameters:
        stp: false
        forward-delay: 1
        hello-time: 2
        max-age: 12
Run Code Online (Sandbox Code Playgroud)

从 IP 地址可以看出,服务器托管在 Hetzner 上。

在 Ubuntu 16.04 上,网桥与 ifupdown 配合良好,但现在 Ubuntu 18.04 使用 Netplan 而不是 ifupdown,我需要知道如何在 Netplan 中配置网桥。

Del*_*tik 6

如果您没有在 Netplan 的网桥配置中明确设置 MAC 地址,则它是随机的。

如果我没记错的话,Hetzner 会将您分配的 IP 地址限制为服务器的 MAC 地址,因此您可能需要将网桥的 MAC 地址设置为物理接口的 MAC 地址。

要获取物理接口的 MAC 地址,请运行以下命令:

cat /sys/class/net/enp4s0/address
Run Code Online (Sandbox Code Playgroud)

enp4s0如果需要,替换为适当的接口名称。)

在您的 Netplan 配置文件中,在网桥接口名称下添加 MAC 地址,如下所示:

macaddress: xx:xx:xx:xx:xx:xx
Run Code Online (Sandbox Code Playgroud)

对您而言,您的 Netplan 配置应如下所示:

---
network:
  version: 2
  renderer: networkd
  ethernets:
    enp4s0:
      dhcp4: no
      dhcp6: no
  bridges:
    vmbr0:
      macaddress: xx:xx:xx:xx:xx:xx
      dhcp4: no
      dhcp6: no
      interfaces: [ enp4s0 ]
      addresses: [ 176.9.199.230/27 ]
      gateway4: 176.9.199.225
      nameservers:
        addresses:
          - "127.0.0.1"
      parameters:
        stp: false
        forward-delay: 1
        hello-time: 2
        max-age: 12
Run Code Online (Sandbox Code Playgroud)

通过删除受影响的接口(Netplan 使用新 MAC 地址重新创建它所必需的)并运行 Netplan 来应用配置:

sudo ip link delete br0
sudo netplan apply
Run Code Online (Sandbox Code Playgroud)

现在您应该有一个具有正常主机连接功能的网桥。