我的 LAN 有一个 DNS 服务器 (pfSense),运行良好,但发生了一些我无法解释的超时。尤其是“主机”命令立即给出正确答案,但随后超时尝试 2 次:
charles3@cluj:~ » host -v cluj.int.acme.fr
Trying "cluj.int.acme.fr"
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14189
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;cluj.int.acme.fr. IN A
;; ANSWER SECTION:
cluj.int.acme.fr. 1 IN A 192.168.1.113
Received 52 bytes from 192.168.1.1#53 in 0 ms
Trying "cluj.int.acme.fr"
;; connection timed out; no servers could be reached
Trying "cluj.int.acme.fr"
;; connection timed out; no servers could be reached
超时发生在输出的最后 4 行。这发生在我拥有的两台不同的机器(Mac 和 Linux)上。
我怎么知道为什么有两个试验,而答案已经给出?
一个完整的答案
host
可能包括 IPv6 地址。strace -f host
在 Linux 上建议这些以单独的数据包形式到达。看起来主机也查询 MX 地址 (
kernel.org mail is handled by 30 ns4.kernel.org.
),这需要另一个数据包。这样就可以解释如何在第一个请求之后再收到两个请求。即第一级问题,这怎么可能:)。
用于消费者路由器的 Dnsmasq 曾经有一个错误,由 polipo Web 代理使用的同时 ipv4/ipv6 查询模式和 ipv6 结果触发。我认为第二个查询被忽略并超时。
我不知道还有什么会导致这种情况。
SERVFAIL
如有必要,应返回工作的本地解析器。希望 pfsense 支持论坛会知道更多。您可以确认/缩小范围
man host
-a
如果您想执行 ANY 请求,则更好地使用选项,因为会-v
发送多个查询。host -a example.com
host -v example.com
如果有任何规则可以阻止顺序 DNS 查询(端口 53),请检查您的防火墙。