使用 MacOS 进行 DNS 查找会忽略来自 DNS 服务器的答案

使用 MacOS 进行 DNS 查找会忽略来自 DNS 服务器的答案

我已经为我的家庭网络配置了自己的 DNS 服务器(我在运行 Ubuntu 服务器 16.04 的服务器上运行 dnsmasq)。该服务器还运行 DHCP 并告诉客户端它是 DNS 服务器。

我的 DNS 服务器设置为解析本地网络以及外部网络的名称。

我设置了一个完全合格的域名(通过动态 DNS 服务),这样当我不在家时,我就可以通过笔记本电脑访问 LAN 上的服务。这一切在我的 Windows 7 PC 和网络上运行的其他各种 ubuntu 机器上都运行良好,但是,它在我的 MacBook 上卡住了,目前运行的是 MacOS 10.12.3。

从我的局域网上的 MacBook,我可以使用 dig 命令查找我的 ubuntu 服务器(serv2)的地址,如下所示:

nick@deathrow:~$ dig serv2

; <<>> DiG 9.8.3-P1 <<>> serv2
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53350
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;serv2.             IN  A

;; ANSWER SECTION:
serv2.          0   IN  A   192.168.2.4

;; Query time: 9 msec
;; SERVER: 192.168.2.4#53(192.168.2.4)
;; WHEN: Sat Feb 25 18:24:17 2017
;; MSG SIZE  rcvd: 39

如您所见,它正确连接到我的局域网 192.168.2.4 上的 DNS 服务器,并正确返回服务器 192.168.2.4 的地址。

但是,如果我尝试使用命令访问 serv2,它将使用 serv2 的外部 IP 地址。以下是使用 ping 的简单示例:

nick@deathrow:~$ ping serv2
PING njj.chickenkiller.com (84.63.173.131): 56 data bytes
64 bytes from 84.63.173.131: icmp_seq=0 ttl=64 time=19.293 ms

您可以看到它使用外部地址 84.63.173.131,而不是内部地址 192.168.2.4

如果我随后清除 Mac 的 DNS 缓存,并尝试 ping 访问 serv2,它会正常工作:

sudo dscacheutil -flushcache;sudo killall -HUP mDNSResponder
Password:
nick@deathrow:~$ ping serv2
PING serv2.njj.chickenkiller.com (192.168.2.4): 56 data bytes
64 bytes from 192.168.2.4: icmp_seq=0 ttl=64 time=1.854 ms

但很快又恢复使用外部地址:

ping serv2
PING njj.chickenkiller.com (84.63.173.131): 56 data bytes
64 bytes from 84.63.173.131: icmp_seq=0 ttl=64 time=2.668 ms

这很麻烦,因为我已经对网络上的大多数服务设置了防火墙(因此,如果 serv2 解析为 192.168.2.4,则打印可以进行,如果解析为外部地址,则打印失败)

您知道如何让我的 Mac Book 使用本地 DNS 服务吗?

编辑:scutil --dns 的输出:

nick@deathrow:~$ scutil --dns
DNS configuration

resolver #1
  search domain[0] : njj.chickenkiller.com
  nameserver[0] : 192.168.2.4
  if_index : 4 (en0)
  flags    : Request A records
  reach    : Reachable, Directly Reachable Address

resolver #2
  domain   : local
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : Not Reachable
  order    : 300000

resolver #3
  domain   : 254.169.in-addr.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : Not Reachable
  order    : 300200

resolver #4
  domain   : 8.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : Not Reachable
  order    : 300400

resolver #5
  domain   : 9.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : Not Reachable
  order    : 300600

resolver #6
  domain   : a.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : Not Reachable
  order    : 300800

resolver #7
  domain   : b.e.f.ip6.arpa
  options  : mdns
  timeout  : 5
  flags    : Request A records
  reach    : Not Reachable
  order    : 301000

DNS configuration (for scoped queries)

resolver #1
  search domain[0] : njj.chickenkiller.com
  nameserver[0] : 192.168.2.4
  if_index : 4 (en0)
  flags    : Scoped, Request A records
  reach    : Reachable, Directly Reachable Address

编辑(2):我使用 namebench 测试了我的 DNS 服务器(在远程 Linux 客户端上运行)的响应时间,其余的是这里。我的服务器显示为 SYS-127.0.1.1。我不是这方面的专家,但与替代方案相比,它的性能看起来还不错

编辑 3:输出自dns-sd

Last login: Thu Mar  9 07:04:41 on console
jay@sol3:~$ dns-sd -q njj.chickenkiller.com 255 255
DATE: ---Sat 11 Mar 2017---
 9:56:51.048  ...STARTING...
Timestamp     A/R Flags if Name                          Type  Class           Rdata
 9:56:52.055  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
 9:57:48.377  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
 9:58:43.590  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
 9:59:39.598  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:00:06.548  Add     2  0 njj.chickenkiller.com.        AAAA   IN     0.0.0.0    No Such Record
10:00:06.633  Add     2  0 njj.chickenkiller.com.        Addr   IN     84.63.173.131
10:00:34.965  Rmv     1  0 njj.chickenkiller.com.        Addr   IN     84.63.173.131
10:00:34.965  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:01:30.629  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:02:26.753  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:03:22.282  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:04:18.329  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:05:14.342  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:06:10.251  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:07:06.042  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:08:01.278  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:08:57.289  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:09:52.916  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:10:48.523  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:11:44.831  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:12:40.842  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:13:36.158  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record
10:14:32.105  Add     2  0 njj.chickenkiller.com.        ANY    25     0.0.0.0    No Such Record

编辑 4:这个问题得到了回答这里

相关内容