nslookup 不起作用,但使用 ICMP 的 ping 和 traceroute 可以正常工作

nslookup 不起作用,但使用 ICMP 的 ping 和 traceroute 可以正常工作

在我遇到问题的网络中,使用 google.at. 对 dns 服务器 1.1.1.1 进行 nslookup 不起作用,但对 1.1.1.1 进行 ping 操作成功。traceroute 也可以工作,但只能使用 ICMP 包。使用 8.8.8.8 作为 dns 服务器也不起作用。

此问题出现在运行 macOS High Sierra 的 2014 年中 MacBook Pro 15 英寸上。此外,问题似乎只出现在我的设备上,网络中的其他设备运行正常。

nslookup 的输出

$ nslookup
> set d2
> server 1.1.1.1
flush_server_list()
make_server(1.1.1.1)
Default server: 1.1.1.1
Address: 1.1.1.1#53
> google.at.
addlookup()
make_empty_lookup()
looking up google.at.
start_lookup()
setup_lookup(0x7f80a8010208)
resetting lookup counter.
cloning server list
clone_server_list()
make_server(1.1.1.1)
using root origin
recursive query
add_question()
starting to render the message
done rendering
create query 0x10858d008 linked to lookup 0x7f80a8010208
do_lookup()
send_udp(0x10858d008)
bringup_timer()
have local timeout of 5
working on lookup 0x7f80a8010208, query 0x10858d008
sockcount=1
recving with lookup=0x7f80a8010208, query=0x10858d008, sock=0x10858f000
recvcount=1
sending a request
lock_lookup /BuildRoot/Library/Caches/com.apple.xbs/Sources/bind9/bind9-57.3/bind9/bin/dig/dighost.c:2743
success
send_done()
sendcount=0
check_if_done()
list empty
unlock_lookup /BuildRoot/Library/Caches/com.apple.xbs/Sources/bind9/bind9-57.3/bind9/bin/dig/dighost.c:2774

ping 的输出

$ ping 1.1.1.1
PING 1.1.1.1 (1.1.1.1): 56 data bytes
64 bytes from 1.1.1.1: icmp_seq=0 ttl=58 time=12.682 ms
64 bytes from 1.1.1.1: icmp_seq=1 ttl=58 time=10.296 ms
64 bytes from 1.1.1.1: icmp_seq=2 ttl=58 time=10.796 ms
64 bytes from 1.1.1.1: icmp_seq=3 ttl=58 time=12.408 ms
64 bytes from 1.1.1.1: icmp_seq=4 ttl=58 time=10.391 ms
^C
--- 1.1.1.1 ping statistics ---
5 packets transmitted, 5 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 10.296/11.315/12.682/1.022 ms

带有 UDP 包的 traceroute 输出

$ traceroute 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 64 hops max, 52 byte packets
 1  192.168.0.1 (192.168.0.1)  0.696 ms  0.386 ms  0.252 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
^C

带有 ICMP 包的 traceroute 输出

$ traceroute -I 1.1.1.1
traceroute to 1.1.1.1 (1.1.1.1), 64 hops max, 72 byte packets
 1  192.168.0.1 (192.168.0.1)  0.732 ms  0.352 ms  0.272 ms
 2  * * *
 3  212.33.34.109 (212.33.34.109)  7.246 ms  6.210 ms  5.987 ms
 4  212.33.35.174 (212.33.35.174)  7.908 ms  9.502 ms  7.318 ms
 5  193.203.0.195 (193.203.0.195)  10.286 ms  12.702 ms  10.484 ms
 6  1.1.1.1 (1.1.1.1)  13.425 ms  11.694 ms  10.511 ms

编辑:在 safari 中网站调用期间 tcpdump 的输出(nslookup 没有导致任何命令输出)

$ sudo tcpdump -iany port 53
tcpdump: data link type PKTAP
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on any, link-type PKTAP (Apple DLT_PKTAP), capture size 262144 bytes
19:36:00.117430 IP 192.168.0.11.64652 > 1.1.1.1.domain: 43155+ A? google.at. (27)
19:36:00.125909 IP 192.168.0.11.61744 > 1.1.1.1.domain: 38849+ PTR? 1.1.1.1.in-addr.arpa. (38)
19:36:01.130751 IP 192.168.0.11.61744 > 1.1.1.1.domain: 38849+ PTR? 1.1.1.1.in-addr.arpa. (38)
19:36:03.131708 IP 192.168.0.11.61744 > 1.1.1.1.domain: 38849+ PTR? 1.1.1.1.in-addr.arpa. (38)
19:36:05.117436 IP 192.168.0.11.64652 > 1.1.1.1.domain: 43155+ A? google.at. (27)
19:36:07.134725 IP 192.168.0.11.61744 > 1.1.1.1.domain: 38849+ PTR? 1.1.1.1.in-addr.arpa. (38)
19:36:07.890420 IP 192.168.0.11.51727 > 1.1.1.1.domain: 24358+ A? gateway.fe.apple-dns.net. (42)
19:36:08.087105 IP 192.168.0.11.63601 > 1.1.1.1.domain: 5775+ A? outlook.fh-ooe.at. (35)
19:36:08.895728 IP 192.168.0.11.51727 > 1.1.1.1.domain: 24358+ A? gateway.fe.apple-dns.net. (42)
19:36:10.118645 IP 192.168.0.11.64652 > 1.1.1.1.domain: 43155+ A? google.at. (27)
19:36:10.896498 IP 192.168.0.11.51727 > 1.1.1.1.domain: 24358+ A? gateway.fe.apple-dns.net. (42)
19:36:14.901699 IP 192.168.0.11.51727 > 1.1.1.1.domain: 24358+ A? gateway.fe.apple-dns.net. (42)
19:36:15.139180 IP 192.168.0.11.61744 > 1.1.1.1.domain: 38849+ PTR? 1.1.1.1.in-addr.arpa. (38)
19:36:30.336824 IP 192.168.0.11.63537 > 1.1.1.1.domain: 38627+ A? api-glb-fra.smoot.apple.com. (45)
19:36:31.656916 IP 192.168.0.11.56392 > 1.1.1.1.domain: 369+ A? mail.google.com. (33)
19:36:34.145445 IP 192.168.0.11.64274 > 1.1.1.1.domain: 15319+ A? accounts.google.com. (37)
19:36:35.148576 IP 192.168.0.11.64274 > 1.1.1.1.domain: 15319+ A? accounts.google.com. (37)
19:36:37.153460 IP 192.168.0.11.64274 > 1.1.1.1.domain: 15319+ A? accounts.google.com. (37)
19:36:38.337756 IP 192.168.0.11.63537 > 1.1.1.1.domain: 38627+ A? api-glb-fra.smoot.apple.com. (45)
19:36:41.158234 IP 192.168.0.11.64274 > 1.1.1.1.domain: 15319+ A? accounts.google.com. (37)
19:36:46.351481 IP 192.168.0.11.59502 > 1.1.1.1.domain: 45992+ A? clients1.google.com. (37)
19:36:49.161336 IP 192.168.0.11.64274 > 1.1.1.1.domain: 15319+ A? accounts.google.com. (37)
^C
22 packets captured
9589 packets received by filter
1729 packets dropped by kernel

答案1

奇怪的是,它nslookup不会生成任何 DNS 查询。

从 的输出中可以看出tcpdump,您没有从 服务器收到任何答复1.1.1.1

可能存在以下原因:

  • 该服务器上没有运行 DNS 服务器。
  • 有一个 DNS 服务器,但它被配置为不回答来自您的地址的查询。
  • 某些东西阻止了您的 DNS 请求,它们甚至无法到达 DNS 服务器。
  • 在返回途中,有一些东西阻碍了服务器的 DNS 应答。

由于您说同一网络中的其他设备会从该服务器获取答案,因此很可能您有一个本地防火墙阻止了 DNS 数据包。您可以在tcpdump网络上的另一台设备上运行,看看它是否收到您生成的 DNS 数据包。

答案2

确保您的 DNS 服务器 --> 服务 --> DNS 在 DNS 服务旁边选中了 ON

相关内容