将 systemd-resolved 配置为首先使用本地绑定,并使用 DHCP 提供的 DNS 作为后备

将 systemd-resolved 配置为首先使用本地绑定,并使用 DHCP 提供的 DNS 作为后备

我使用 Fedora 36 作为我的日常桌面计算机,我尝试做一些我认为相当简单的事情,但我在网上找不到其他人为此提供正确的配置。

基本上,一切都在标题中:我想找到正确的systemd-resolved配置来使用我的本地绑定服务器作为 DNS(到目前为止没什么复杂的),但是也回退到任何 DHCP 提供的 DNS。

NetworkManager到目前为止,我尝试的是首先使用以下配置强制在 DHCP 提供的 DNS 中提供本地 Bind 实例:

# /etc/dhcp/dhclient.conf
prepend domain-name-servers 127.0.0.1;
require subnet-mask, domain-name-servers;
# /etc/NetworkManager/conf.d/dhcp-client.conf
[main]
dhcp=dhclient

但这是行不通的。systemd-resolved仍然在我的本地绑定服务器之前查询 DHCP 提供的 DNS。

我找到了一个systemd-resolved查询本地绑定服务器的配置:

# /etc/systemd/resolved.conf
DNS=127.0.0.1 ::1
Domains=~.

但我不确定它是否会回退到 DHCP 提供的 DNS。

答案1

如果您正在运行自己的名称服务器,我实际上建议您systemd-resolved完全禁用(众所周知,无论如何它都会破坏某些 DNS 功能,例如 DNSSEC)。

systemctl disable systemd-resolved
systemctl stop systemd-resolved
systemctl mask systemd-resolved

然后你可以控制你的 resolv.conf 文件,或者使其基于 DHCP:

rm -f /etc/resolv.conf
ln -s /run/NetworkManager/resolv.conf /etc/resolv.conf

相关内容