![使用 systemd-resolved 正确配置分割 dns?](https://linux22.com/image/216260/%E4%BD%BF%E7%94%A8%20systemd-resolved%20%E6%AD%A3%E7%A1%AE%E9%85%8D%E7%BD%AE%E5%88%86%E5%89%B2%20dns%EF%BC%9F.png)
我希望域中主机的请求example.com
转到托管在 172.31.64.1 的本地 DNS 解析器,并且所有其他请求都由默认解析器处理。
172.31.64.1 处的解析器已启动且配置正确:
$ dig files.example.com @172.31.64.1
files.example.com. 590 IN A 172.21.0.4
$ dig www.example.com @172.31.64.1
www.example.com. 600 IN A 172.21.0.2
地址 172.31.64.1 属于本地桥接口:
$ ip addr show br-infra
1021: br-infra: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 12:52:36:61:79:8a brd ff:ff:ff:ff:ff:ff
inet 172.31.64.1/24 brd 172.31.64.255 scope global noprefixroute br-infra
valid_lft forever preferred_lft forever
主接口和 br-infra 接口的解析配置如下所示:
$ resolvectl status eth0
Link 2 (eth0)
Current Scopes: DNS LLMNR/IPv4 LLMNR/IPv6
Protocols: +DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
Current DNS Server: 192.168.1.1
DNS Servers: 192.168.1.1
DNS Domain: house
$ resolvectl status br-infra
Link 1065 (br-infra)
Current Scopes: none
Protocols: -DefaultRoute +LLMNR -mDNS -DNSOverTLS DNSSEC=no/unsupported
DNS Servers: 172.31.64.1
DNS Domain: example.com
尽管进行了此配置,但对域中 hsot 的请求example.com
仍将路由到默认 DNS 服务器。例如,tcpdump -i any -n port domain
在一个终端和dig files.example.com
另一个终端中运行,我看到:
13:52:02.879796 lo In IP 127.0.0.1.45497 > 127.0.0.53.domain: 16287+ [1au] A? files.example.com. (58)
13:52:02.880003 eth0 Out IP 192.168.1.200.58863 > 192.168.1.1.domain: 7738+ A? files.example.com. (35)
13:52:02.899060 eth0 In IP 192.168.1.1.domain > 192.168.1.200.58863: 7738 NXDomain 0/1/0 (91)
13:52:02.899123 lo In IP 127.0.0.53.domain > 127.0.0.1.45497: 16287 NXDomain 0/1/1 (102)
该请求被路由到位于 192.168.1.1 的默认 DNS 服务器。
此配置缺少什么?