5.4. 在现有 RHEL 安装中启用 eDNS
您可以在现有 RHEL 安装中启用加密的 DNS (eDNS),以使用 DNS-over-TLS 处理所有 DNS 流量。
先决条件
-
以
#
命令提示符开头的命令需要sudo
或 root 用户访问提供管理特权。有关如何配置sudo
访问权限的详情,请参考 启用非特权用户来运行某些命令。 - 已有 RHEL 安装。
以下软件包安装在您的系统中:
-
dnsconfd
-
dnsconfd-dracut
-
grubby
-
-
如果在 IBM Z 系统中,会安装
zipl
工具。
流程
在
/etc/NetworkManager/conf.d/global-dot.conf
文件中配置 NetworkManager:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 有关全局 DNS 选项的详情,请查看您系统上的
NetworkManager.conf (5)
手册页中的GLOBAL-DNS SECTION
。可选: 要使用自定义 CA 捆绑包来验证上游 DoT 服务器,请将 PEM 格式的文件复制到
/etc/pki/dns/extracted/pem/tls-ca-bundle.pem
文件中。注意在
/etc/pki/dns/extracted/pem
中添加或删除证书后,重启dnsconfd
服务以应用更改。启用
dnsconfd
服务:systemctl enable --now dnsconfd
# systemctl enable --now dnsconfd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新载入 NetworkManager:
systemctl reload NetworkManager
# systemctl reload NetworkManager
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为所有安装的内核重新生成
initramfs
,使其包含dnsconfd
及其配置:for kernel in `rpm -q kernel --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n'`; do dracut -f --kver="$kernel" done
# for kernel in `rpm -q kernel --qf '%{VERSION}-%{RELEASE}.%{ARCH}\n'`; do dracut -f --kver="$kernel" done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为当前和新安装的内核版本设置内核参数:
grubby --args="rd.net.dns=dns+tls://<server_ip>#<dns_server_hostname> rd.net.dns-resolve-mode=exclusive rd.net.dns-backend=dnsconfd" --update-kernel=ALL
# grubby --args="rd.net.dns=dns+tls://<server_ip>#<dns_server_hostname> rd.net.dns-resolve-mode=exclusive rd.net.dns-backend=dnsconfd" --update-kernel=ALL
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果在 IBM Z 中,更新引导菜单:
zipl
# zipl
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
验证您的 eDNS 配置:
dnsconfd status
$ dnsconfd status
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 预期输出:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用
nslookup
验证 DNS 服务器是否响应:nslookup <domain_name>
$ nslookup <domain_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 &
lt;domain_name
> 替换为您要查询的域。
故障排除
在
unbound
中启用详细日志记录:unbound-control verbosity 5
# unbound-control verbosity 5
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 查看相关服务的日志:
journalctl -xe -u <service_name>
$ journalctl -xe -u <service_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<service_name&
gt; 替换为NetworkManager
、dnsconfd
或unbound
。