这个问题可能看起来很基础,但我想知道,假设对于电子邮件路由,使用 MX 记录指向邮件服务器的 FQDN,并指向 A 记录。当我们最终解析 FQDN 并获取 A 记录以获取信息时,为什么要有 MX 记录呢?我的意思是,为什么不能不获取域的 MX 记录,而是获取域的 A 记录并发送电子邮件。
提前感谢帮助:)
答案1
没有什么可以阻止您完全依赖“A”记录来发送电子邮件。
假设您example.net
没有发布的“MX”记录,但您有“A”记录server.example.net
。如果有人向发送电子邮件[email protected]
,只要服务器1配置了SMTP服务器,并且用户1存在,电子邮件就应该被传递。但是,MX记录使您能够将负载分散到多个服务器并具有后备选项。
事实上,我认为 SMTP 的使用实际上早于 DNS 的使用。 RFC 821描述 SMTP 的协议于 1982 年发布。 RFC 883描述 DNS 的规范直到一年后(1983 年 11 月)才发布,并于 1984 年实施。在此之前,名称解析的标准机制是 HOSTS.TXT,它无法区分资源记录类型,只是一个 IP 地址到主机名映射的表格,这就是我们今天所知道的,有关/etc/hosts
更多信息,请参阅https://en.wikipedia.org/wiki/MX_record
答案2
根本原因是您可能希望以不同的方式使用同一域名来提供不同的服务。也就是说,电子邮件地址的域名部分可能还用于除接收电子邮件以外的其他用途。
例如[email protected]
,您可能希望拥有用于 SMTP 服务器以外的其他服务器的地址记录 ( A
/ AAAA
) example.com
。可能是 Web 服务器,也可能是其他服务器,具体是什么并不重要。
也就是说,如果没有MX
,则标准是回退到查找地址记录并使用这些记录来发送电子邮件。
旁注,如果这一切都是今天设计的,那么MX
实际上会是多余的,因为SRV
后来引入了一种MX
可以用于任何服务的通用形式。
使用SRV
您可以指定哪种服务类型应映射到哪个主机,而不是像使用那样为一种特定类型的服务设置专用的记录类型MX
。
此外,如果早先出现,诸如 Web 浏览器之类的 http 客户端可能也会使用,SRV
而不仅仅是查找地址记录SRV
,这实际上会非常好。但这不是我们所拥有的,到目前为止,在这方面没有发生任何变化。
答案3
因为这就是标准。就是这样。你可以做任何你想做的事 - 但数百万其他玩家已经同意这是标准并使用它。归根结底,现在 DNS 中并非所有东西都有意义,但标准随着时间的推移而发展。
另请注意,MX 条目具有 IN A 记录所没有的附加信息 - 因此如果您有多个电子邮件服务器并且想要指定优先级,则功能会有所不同。多个 IN A 记录不允许指定优先级。
但最终,“为什么”的答案是“因为这是标准,很久以前就决定了”。