【问题标题】:After DNS A record change, dig and nslookup showing different results for a the same domain name on Mac OS X在 DNS A 记录更改后,dig 和 nslookup 在 Mac OS X 上显示相同域名的不同结果
【发布时间】:2021-06-10 17:32:03
【问题描述】:

更改主机名的 DNS A 记录后,dignslookup 显示不同的结果。虽然 dig 显示正确的 IP,但 nslookup 仍然显示旧 IP。我在macos 11.2.3

我的域 {{domainname}}nslookup 输出是(请注意,我将生成的 ip 地址替换为 xxx.old.ip.xxx。

$ nslookup {{domainname}}
Server:     192.168.178.1
Address:    192.168.178.1#53

Non-authoritative answer:
Name:   {{domainname}}
Address: xxx.old.ip.xxx

dig 输出(请注意,我用yyy.new.ip.yyy 替换了生成的IP,以表明它是与nslookup 不同的IP

$ dig {{domainname}}
; <<>> DiG 9.10.6 <<>> {{domainname}}
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 45116
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 512
;; QUESTION SECTION:
;{{domainname}}.        IN  A

;; ANSWER SECTION:
{{domainname}}. 1157    IN  A   yyy.new.ip.yyy

;; Query time: 70 msec
;; SERVER: 192.168.178.1#53(192.168.178.1)
;; WHEN: Fri Mar 12 18:29:03 CET 2021
;; MSG SIZE  rcvd: 63

nslookup 出了什么问题?是DNS缓存吗?如果这是问题所在,我该怎么做才能强制 nslookup(和其他工具)刷新 DNS 缓存。

更新:大约 20 分钟后,nslookup 和 dig 显示相同的 IP,并且 ssh 正在使用 {{domainname}} 进行连接。

【问题讨论】:

    标签: macos dns nslookup dig


    【解决方案1】:

    这两个响应都不是来自权威名称服务器,因此 DNS 响应来自解析器的缓存。在更改 DNS 资源记录之前,请记下 TTL 值。这是在解析器删除缓存值之前等待的秒数。对于dig 命令,缓存值上剩余的 TTL 为下一次刷新前的 1157 秒。

    【讨论】:

    • 那么dig和nslookup有不同的DNS缓存?有关如何刷新 nslookup 的 DNS 缓存的任何信息?
    • 答案取决于您如何在本地计算机 (macOS) 和网络上设置 DNS。对于nslookup,解析器是192.168.178.1。我没有看到 dig 使用了什么。您的操作系统可以缓存 DNS 查找,但如果上游解析器具有相同的缓存值,则本地缓存将重新填充相同的旧值。但是,这只对您的系统有帮助。世界其他地方呢?您必须等待全局解析器更新。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-13
    • 1970-01-01
    • 1970-01-01
    • 2018-07-02
    • 2010-10-13
    • 2013-07-18
    相关资源
    最近更新 更多