Domain-Name-System

為什麼有時(但並非總是)在 nslookup 查詢的輸出中看到 MX 記錄的“網際網路地址”數據?

  • April 30, 2013

CentOS 5.x

我注意到有時我會在 nslookup 的輸出中看到 MX 記錄的“網際網路地址”。不過,這並不總是發生。

例如,假設 foo.com 使用 Microsoft 提供郵件服務。在這種情況下,當我跑步時,nslookup -q=mx foo.com 我會看到:

foo.com       MX preference = 10, mail exchanger = mail.messaging.microsoft.com

foo.com                          nameserver = ns71.worldnic.com
foo.com                          nameserver = ns72.worldnic.com
mail.messaging.microsoft.com     internet address = 216.32.180.190
mail.messaging.microsoft.com     internet address = 207.46.163.30
ns71.worldnic.com                internet address = 205.178.190.36
ns72.worldnic.com                internet address = 206.188.198.36

其他時候,當我執行相同的查詢時,我會得到:

foo.com       MX preference = 10, mail exchanger = mail.messaging.microsoft.com

foo.com                 nameserver = ns71.worldnic.com
foo.com                 nameserver = ns72.worldnic.com
ns71.worldnic.com       internet address = 205.178.190.36
ns72.worldnic.com       internet address = 206.188.198.36

為什麼底部部分有時會缺少 mail.messaging.microsoft.com?nslookup 似乎試圖變得聰明並更進一步提供 A 記錄(即使我沒有明確要求它),但這並不是一直發生的。

我很確定當您執行查找的解析器在其記憶體中具有 A 記錄時會發生這種情況。它將額外記錄作為響應中附加部分的一部分返回。不是 nslookup 在做任何不同的事情。

如果您正在查找包含主機名 (CNAME/MX/etc) 的記錄,您可能會想要與這些記錄關聯的地址,但解析器不會特意查找它們如果它們還沒有在它的記憶體中。(完全有可能您不需要實際地址,具體取決於您詢問的原因,因此實際查找地址可能比它需要的要多。但是,如果有地址,則返回地址不需要額外的查詢,並且可以節省您的電腦不得不做更多的事情,減少整體的 DNS 流量。)

引用自:https://serverfault.com/questions/503991