我在服务器上使用 dnsmasq 通过 PXE(传统 BIOS 和 UEFI)启动我们的客户端;NFS 根目录是只读的,客户端使用覆盖根目录。这对于 Xubuntu 18.04 客户端来说效果很好。
升级到 22.04 后,生成的客户端系统没有 DNS 解析:我可以 ping 一个 IP 地址,但ping google.com
给出错误“名称解析暂时失败”。
我已经使用全新 22.04 安装重现了该问题(使用提供的 iso 进行最低安装https://xubuntu.org/release/22-04/加上 overlayroot 包)。
我使用了以下诊断:
$ resolvectl Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported resolv.conf mode: stub
Link 2 (enp0s3) Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
$ nmcli d show
GENERAL.DEVICE: enp0s3
GENERAL.TYPE: ethernet
GENERAL.HWADDR: 08:00:27:52:C3:FC
GENERAL.MTU: 1500
GENERAL.STATE: 100 (connected (externally))
GENERAL.CONNECTION: enp0s3
GENERAL.CON-PATH: /org/freedesktop/NetworkManager/ActiveConnection/1
WIRED-PROPERTIES.CARRIER: on
IP4.ADDRESS[1]: 192.168.8.2/24
IP4.GATEWAY: 192.168.8.100
IP4.ROUTE[1]: dst = 0.0.0.0/0, nh = 192.168.8.100, mt = 0
IP4.ROUTE[2]: dst = 192.168.8.0/24, nh = 0.0.0.0, mt = 0
IP4.ROUTE[3]: dst = 169.254.0.0/16, nh = 0.0.0.0, mt = 1000
IP6.ADDRESS[1]: fe80::a00:27ff:fe52:c3fc/64
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = fe80::/64, nh = ::, mt = 256
GENERAL.DEVICE: lo
GENERAL.TYPE: loopback
GENERAL.HWADDR: 00:00:00:00:00:00
GENERAL.MTU: 65536
GENERAL.STATE: 10 (unmanaged)
GENERAL.CONNECTION: --
GENERAL.CON-PATH: --
IP4.ADDRESS[1]: 127.0.0.1/8
IP4.GATEWAY: --
IP6.ADDRESS[1]: ::1/128
IP6.GATEWAY: --
IP6.ROUTE[1]: dst = ::1/128, nh = ::, mt = 256
我找到了两种解决方法:
手动启动 dhclient:$ sudo dhclient
在 nm-connection-editor 中更改配置:启动编辑器时,我有一个名为“enp0s3”的最近使用的配置条目。在“IPv4 设置”选项卡上:将方法从“手动”更改为“自动(DHCP)”
dhclient 运行后,resolvectl 会显示有效的 DNS 配置:
$ resolvectl
Global
Protocols: -LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
resolv.conf mode: stub
Link 2 (enp0s3)
Current Scopes: DNS
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.8.100
DNS Servers: 192.168.8.100
DNS Domain: my.domain
这两种解决方案似乎都不能完全令人满意...有人可以帮忙找到问题的根本原因并以稳定的方式(甚至可能是上游)修复它吗?