![为什么有时(但并非总是)在 nslookup 查询的输出中看到 MX 记录的“互联网地址”数据?](https://linux22.com/image/801242/%E4%B8%BA%E4%BB%80%E4%B9%88%E6%9C%89%E6%97%B6%EF%BC%88%E4%BD%86%E5%B9%B6%E9%9D%9E%E6%80%BB%E6%98%AF%EF%BC%89%E5%9C%A8%20nslookup%20%E6%9F%A5%E8%AF%A2%E7%9A%84%E8%BE%93%E5%87%BA%E4%B8%AD%E7%9C%8B%E5%88%B0%20MX%20%E8%AE%B0%E5%BD%95%E7%9A%84%E2%80%9C%E4%BA%92%E8%81%94%E7%BD%91%E5%9C%B0%E5%9D%80%E2%80%9D%E6%95%B0%E6%8D%AE%EF%BC%9F.png)
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 流量。)