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 记录(尽管我并没有明确要求这样做),但这种情况并不总是发生。
答案1
我很确定,当您执行查找的解析器在其缓存中具有 A 记录时,就会发生这种情况。它会将额外的记录作为响应中附加部分的一部分返回。nslookup 并没有做任何不同的事情。
如果您正在查找包含主机名 (CNAME/MX/等) 的记录,则您可能需要与这些记录关联的地址,但如果解析器尚未在其缓存中,则解析器不会特意查找它们。 (完全有可能您不需要实际地址,具体取决于您询问的原因,因此实际查找地址可能会做比它需要的更多的事情。但是,如果有地址,则返回地址不需要额外的查询,并且可以节省您的计算机执行更多操作的时间,从而减少整体 DNS 流量。)