我正在使用 Ubuntu 20.04 和 systemd-resolved 来解析 dns 查询。机器连接到 1 个接口。
network:
ethernets:
eth0:
dhcp4: true
set-name: eth0
nameservers:
addresses: [11.2.3.4, 12.2.3.4]
search: [domain.first, domain.second]
version: 2
Resolvectl 选择其中一台 DNS 服务器作为当前 DNS 服务器。我面临的挑战是,我有一个 11.2.3.4 dns 服务器,它仅解析 domain.first 的查询,另一个 12.2.3.4 仅解析 domain.second 的查询。
每当 Resolvectl 选择 11.2.3.4 作为当前 dns 服务器时,搜索域.first 的查询会成功,但搜索域.second 的查询会失败(这很明显,因为它应该由 12.2.3.4 解析)。
有没有办法设置resolvctl,以便它应该根据域搜索及其各自的dns服务器解析查询。即根据搜索域解析到不同的dns服务器
我知道 bind9 提供了此功能,但我想通过 systemd-resolved 解析器实现类似的功能。
答案1
我所知道的最接近的systemd-resolved
功能是“split dns”,但我相信它仅适用于多个网络接口(例如物理适配器和 VPN 适配器)。
我看到一些建议可用于dnsmasq
实现条件转发服务器的目标。
链接
- https://fedoramagazine.org/systemd-resolved-introduction-to-split-dns/
- https://www.bertrandbc.com/blog/split-dns-with-systemd/
- https://blogs.gnome.org/mcatanzaro/2020/12/17/understanding-systemd-resolved-split-dns-and-vpn-configuration/
- https://stackoverflow.com/questions/29004054/dnsmasq-forwarding-on-specific-domains