我目前正在编写 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
角度来看配置设置得很好,但从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
你能试试这个吗:
auto ens3
allow-hotplug ens3
iface ens3 inet static
address 10.0.0.1/24
auto ens4
allow-hotplug ens4
iface ens4 inet static
address 192.168.0.1/24
重新启动或重新启动而不是尝试 ping10.0.0.1
和192.168.0.1
如果该工作配置了您的 dns、名称服务器、网关等。
检查这篇文章并/etc/resolve.conf
编辑nameserver
检查 Debian 网络配置:
也检查一下:
也许这篇文章可以帮助您:
答案2
终于找到真正的解释了这里:
默认情况下,系统上只能有一个默认网关。
经过测试,我可以确认一个网关正常,两个则不行。但无论如何,一旦设置网络配置,似乎就会默认创建以下路由:
因此,就我而言,我可能不需要按照说明创建默认路由。