使用 Netplan Bridge 时 Hetzner 的网络连接丢失

使用 Netplan Bridge 时 Hetzner 的网络连接丢失

我安装了 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"

阅读完 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

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

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

答案1

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

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

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

cat /sys/class/net/enp4s0/address

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

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

macaddress: xx:xx:xx:xx:xx:xx

对于您来说,您的 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

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

sudo ip link delete br0
sudo netplan apply

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

相关内容