为什么仅当查询未缓存时才返回额外的 DNS 记录?

为什么仅当查询未缓存时才返回额外的 DNS 记录?

我正在尝试查找我们在向特定域发送邮件时遇到的问题。我们注意到,在查询其 MX 记录时,nslookup/dig 无法获得一致的结果,我不确定我们是在查找不存在的 DNS 问题,还是这可能是一个问题。

当结果不是缓存后,我得到以下结果dig us.yusen-logistics.com mx

;; QUESTION SECTION:
;us.yusen-logistics.com.                IN      MX

;; ANSWER SECTION:
us.yusen-logistics.com. 300     IN      MX      10 smtp1.us.yusen-logistics.com.

us.yusen-logistics.com. 300     IN      MX      20 smtp2.us.yusen-logistics.com.


;; ADDITIONAL SECTION:
grid2i.seg.att.com.     24426   IN      A       209.65.176.73
grid1i.seg.att.com.     24429   IN      A       209.65.160.81
grid2i.seg.att.com.     24426   IN      A       209.65.176.81
grid1i.seg.att.com.     24429   IN      A       209.65.160.73
grid2i.seg.att.com.     24426   IN      A       209.65.160.89

如果我再次运行该命令,我不会得到额外的部分:

;; QUESTION SECTION:
;us.yusen-logistics.com.                IN      MX

;; ANSWER SECTION:
us.yusen-logistics.com. 200     IN      MX      10 smtp1.us.yusen-logistics.com.

us.yusen-logistics.com. 200     IN      MX      20 smtp2.us.yusen-logistics.com.

有人担心缺乏额外记录这就是我们的 Domino 服务器无法连接的原因。

我认为 Domino 只会查询记录smtp1.us.yusen-logistics.com,因为RFC 1035指出“附加记录部分包含与查询相关的 RR,但严格来说不是问题的答案。”是这样吗?

答案1

是的,RR 实际上是 A 记录,smtp1.us.yusen-logistics.com并且smtp1.us.yusen-logistics.com是 CNAME 的。

smtp1.us.yusen-logistics.com是一个具有多个 A 记录的 CNAME grid1i.seg.att.com.,这些记录均已列出。

同上,将 2 替换为 smtp2

正如 dmourati 所说,您的邮件无处可去的真正原因将在您的日志中。DNS 工作正常。

答案2

这些 A 记录与您正在执行的查询无关。正因为如此,它们才没有被放入缓存中,这就是为什么在您的第二个请求中它们没有被包含的原因。否则,这将是教科书式的缓存中毒 DNS 攻击。如果您的 DNS 服务器缓存了 www.google.com 的 A 记录,我可以在第一个响应中偷偷放入这些记录,然后对您造成伤害。

正如所指出的,名称smtp1.us.yusen-logistics.comsmtp2.us.yusen-logistics.com目前是 AT&T 服务器的 CNAME,因此这是一个明显的 SMTP 配置错误. MX 引用中不允许使用 CNAME,因为它会破坏存储转发 MX 优先级链,并且经常导致邮件路由循环。

相关内容