使用 systemd-resolved 正确配置分割 dns?

使用 systemd-resolved 正确配置分割 dns?

我希望域中主机的请求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 服务器。

此配置缺少什么?

相关内容