我目前正在编写一个网络配置角色,供 Ansible 使用,以定制来自 Debian 11 模板的全新虚拟机。
当我尝试设置和配置 2 个物理网络接口时,我遇到了一个奇怪的问题。当我从模板部署新的虚拟机时,它有 2 个独立的 vmnic,从 debian 的角度来看,这意味着它只有 ens3 和 ens4(我根本不使用任何绑定或子接口)。
这是我设置的简单接口配置文件:
# This file describes the network interfaces available on your system and how to activate them. For more information, see interfaces(5).
source /etc/network/interfaces.d/*
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto ens3
iface ens3 inet static
address 10.0.0.1/24
gateway 10.0.0.254
dns-nameservers 10.230.100.1
dns-search mydomain.net
auto ens4
iface ens4 inet static
address 192.168.0.1/24
gateway 192.168.0.254
dns-nameservers 10.230.100.1
dns-search mydomain.net
然后,当我通过 systemctl 或更好的方式重新启动 networking.service 时,当我重新启动机器时,从ip a
perspective 来看配置设置得很好,但从 journalctl 的角度来看存在问题:
févr. 16 14:04:53 MY-HOST systemd[1]: Starting Raise network interfaces...
févr. 16 14:04:53 MY-HOST ifup[1100]: RTNETLINK answers: File exists
févr. 16 14:04:53 MY-HOST ifup[1078]: ifup: failed to bring up ens4
févr. 16 14:04:53 MY-HOST systemd[1]: networking.service: Main process exited, code=exited, status=1/FAILURE
févr. 16 14:04:53 MY-HOST systemd[1]: networking.service: Failed with result 'exit-code'.
févr. 16 14:04:53 MY-HOST systemd[1]: Failed to start Raise network interfaces.
重新启动服务器后,我仍然遇到很多这些问题,但配置似乎设置得很好
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
2: ens3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 50:6b:8d:d0:c0:3d brd ff:ff:ff:ff:ff:ff
altname enp0s3
inet 10.0.0.1/24 brd 10.0.0.255 scope global dynamic ens3
valid_lft 2147483506sec preferred_lft 2147483506sec
3: ens4: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
link/ether 50:6b:8d:8a:24:94 brd ff:ff:ff:ff:ff:ff
altname enp0s4
inet 192.168.0.1/24 brd 192.168.0.255 scope global dynamic ens4
此外,如果我手动执行sudo ifdown ens4
,sudo ifup ens4
则会收到以下错误:
ifdown: interface ens4 not configured
RTNETLINK answers: File exists
ifup: failed to bring up ens4
我发现如果我auto ens4
在接口文件中注释掉,就不会出现任何错误,但是当我重新启动时,ens4 就不会启动,所以这对我来说不是一个解决方案……
我的问题是:我该如何修复它?我的接口配置中是否遗漏了某些内容?或者是否存在我没有发现的错误?
多谢 !
答案1
编辑
我发现 Debian 只能有一个默认网关,如果需要更多,则必须配置路由。https://www.thomas-krenn.com/en/wiki/Two_Default_Gateways_on_One_System