Debian 创建持久网桥

Debian 创建持久网桥

我需要为虚拟机创建一个持久网桥(libvirt

因此,该桥不需要任何物理端口,连接将为该桥进行路由。

如果我手动设置,它会按我描述的方式工作。但是我无法让它在重启后继续存在。

我已经在以下位置创建了桥梁/etc/network/interfaces

 auto vm-bridge
  iface vm-bridge inet static
   address 10.1.0.1
   broadcast 10.1.0.3
   netmask 255.255.255.252
   gateway 10.1.0.1

但是主机重启时不会创建接口。互联网上的所有参考资料都添加bridge_ports到桥接中,所以我不确定我遗漏了什么。

答案1

您必须提供一个选项,以便/etc/network/if-pre-up.d/bridge安装软件包时提供的桥接插件bridge-utils能够激活。它提供的主要命令brctl毫无用处(被ip link+取代bridge),但插件确实很重要。如果没有与桥接相关的选项,系统就无法理解必须创建桥接。因此,如果使用软件包ifupdown(而不是ifupdown2ifupdown-ng):

apt install bridge-utils

那么最简单的选择就是告诉它没有桥接端口。添加此选项:

bridge_ports none

现在将激活插件并创建一个桥接器,并且根据特殊关键字的要求,none不会将任何接口作为桥接端口附加到它。

评论:

  • 同时使用默认路由

      gateway 10.1.0.1
    

    这可能是一个错误:如果系统上已经有其他默认路由(也是度量 0),这将导致结果失败。在将自己指定为网关时尤其如此。先将其删除(如下所述),然后再考虑添加。

  • 没有桥接端口的桥接器处于运行状态 DOWN

    ... 在任何运行最新版的系统上systemd例如 Debian 11 或 12。

    正如本文中所述问答原因描述如下在此问答中回答。这可能会导致 IPv6 出现一些问题,但通常不会对 IPv4 造成问题。

配置变为:

auto vm-bridge
iface vm-bridge inet static
   address 10.1.0.1
   broadcast 10.1.0.3
   netmask 255.255.255.252
   # gateway 10.1.0.1
   bridge_ports none

答案2

请注意,正如评论者指出的那样,此答案基于云镜像中 Debian Bookworm 的特定版本。对于 Debian 的常用版本,其他答案适用。

假设您正在使用 Debian Bookworm,它/etc/network/interfaces默认不再遵守,因为它使用systemd-networkd

要创建桥接,请将文件添加vm-bridge.netdev/etc/systemd/network/

[NetDev]
Name=vm-bridge
Kind=bridge

现在我们需要为该桥配置网络。创建文件/etc/systemd/network/vm-bridge.network

[Match]
Name=vm-bridge

[Network]
Address=10.1.0.1/30
Gateway=10.1.0.1

然后重新启动 networkd:

systemctl restart systemd-networkd

參閱文档了解更多信息。具体配置请参见Arch 维基

相关内容