Networking

使用來自 iputils-s20180629 的 ping 和最短的 DNS 名稱(帶有“A”記錄)時出現錯誤的 DNS 答案:dk

  • June 1, 2020

我想知道為什麼ping無法在我的 Debian 10 上檢索dk TLD的 ipv4。這是一個有效的域名,是我通過dns知道的最短的域名(有A記錄)。很好的測試網路連接。

當我使用dig時,一切都按預期執行:

dig A +short dk
193.163.102.58

但是當我使用ping時,dk它會附加到我擁有的域中,並啟用萬用字元。比方說example.org,所以:

ping -c1 dk
PING dk.example.org (x.x.x.x) 56(84) bytes of data.
64 bytes from x.x.x.x-reverse-dns (x.x.x.x): icmp_seq=1 ttl=57 time=3.72 ms

--- dk.example.org ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 3.716/3.716/3.716/0.000 ms

但是,如果我附加一個點,它會起作用:

ping -c1 dk.
PING dk (193.163.102.58) 56(84) bytes of data.
64 bytes from static3.prod.dkhm.dk (193.163.102.58): icmp_seq=1 ttl=51 time=24.6 ms

--- dk ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 24.569/24.569/24.569/0.000 ms

通過DoT/stubby和通過一些公共靜態 DNS 解析器進行測試/etc/resolv.conf(結果相同)。

我沒有任何本地解析器,例如unboundnor bind

目錄和 IP 地址example.org中沒有任何有趣的匹配。/etc

/etc/nsswitch.conf在配置不正確的情況下:

[...]
hosts:          files mdns4_minimal [NOTFOUND=return] dns
networks:       files
[...]

有誰知道發生了什麼?

最短的域名是.. 這很重要,因為dk不是完全限定的域名。它的人類可讀形式不會以句點結束。以句點結尾表示(人類可讀形式)完全限定域名。

DNS 以完全限定的域名起作用,您的 DNS 客戶端庫(連結到類似 的程序ping)必須通過附加一個或多個後綴將其轉換dk為. 您的 DNS 客戶端正在附加您看到的後綴。在大多數 C 庫中包含的 BIND DNS 客戶端庫的情況下,後綴列表來自 中的指令/etc/resolv.conf,回退到提供給作業系統的動態域名後綴(以各種方式)。

dk.相比之下*,是*完全限定域名,DNS客戶端庫不通過名稱限定。

這裡實際上沒有任何問題。

進一步閱讀

引用自:https://unix.stackexchange.com/questions/586726