Smtp 为什么有MX记录?

Smtp 为什么有MX记录?,smtp,dns,mx-record,Smtp,Dns,Mx Record,我以前(并感谢SO'ers给我的深思熟虑的回答)。现在这个问题已经解决了,我想退一步问一下,为什么首先会有MX记录 具体地说:为什么SMTP得到DNS的特殊处理 我们没有HTTP的HX记录或FTP的FX记录。似乎所有其他互联网协议都能与DNS的A记录很好地相处。事实上,该协议指出,当前的SMTP规范规定,如果接收者不存在MX记录,服务器应该依赖于a记录。它还提到了在DNS之前的世界中SMTP所做的一些调整,但那是25年前的事了。我们真的还需要MX记录吗 似乎所有其他互联网协议都能与DNS的A记录

我以前(并感谢SO'ers给我的深思熟虑的回答)。现在这个问题已经解决了,我想退一步问一下,为什么首先会有MX记录

具体地说:为什么SMTP得到DNS的特殊处理

我们没有HTTP的HX记录或FTP的FX记录。似乎所有其他互联网协议都能与DNS的A记录很好地相处。事实上,该协议指出,当前的SMTP规范规定,如果接收者不存在MX记录,服务器应该依赖于a记录。它还提到了在DNS之前的世界中SMTP所做的一些调整,但那是25年前的事了。我们真的还需要MX记录吗

似乎所有其他互联网协议都能与DNS的A记录很好地相处

嗯,SRV记录类型可用于这些


如果今天编写SMTP,它可能会使用它。

MX记录背后的主要目的是能够指定机器来处理整个域的特定协议,并通过这种方式指定备份邮件服务器(具有不同的优先级),如果一台服务器出现故障,您仍然可以到达排队的下一台服务器,将电子邮件发送到该域。这两种方法都不适用于普通A记录,它直接将全名映射到主机


正如弗兰克指出的那样,现在可以用(日期是8年前,而不是25年前)来完成。当时,没有很多其他的标准协议可供大量使用。

除了允许指定备份交换机之外,请注意,并非每个域都有自己的邮件服务器,因此,有必要能够将另一个域上存在的邮件服务器指定为有权交换邮件的服务器,以便可以传递发往邮政局长、root用户或DNS WHOIS记录中列出的任何技术/管理联系人的管理和系统邮件,即使这些邮件在当前域中不存在


ftp和http不需要这样做,因为这些服务不会像MX那样启动出站连接,也不会被视为官方联系点。

永远不要忽视“历史原因”的解释。早在80年代初,SMTP几乎是为整个站点提供映射的唯一公开协议,DNS查找是在许多系统上使用公共主机文件完成的。

MX
记录被使用,因为需要SMTP通信量
user@domain
与其他流量的路由不同领域,而且
SRV
记录还没有发明出来

您可以键入
http://example.com/
在浏览器中没有
www
前缀,但仍然可以访问所需的网站,这实际上有点奇怪。为了更详细地解释,考虑一个区域通常如何被设置来实现这个前缀更少的访问:

$ORIGIN example.com
@        IN A   192.168.1.1
         IN MX mail.example.com
www      IN A  192.168.1.1
mail     IN A  192.168.1.2
因此,无论使用何种协议,发往
example.com
的任何流量都会发往该IP地址(除非是使用MX记录的电子邮件)

在实践中,所有应用程序最好使用
SRV
记录,然后我们可以一起删除特定于应用程序的前缀,并使用记录来实现其真正目的,特别是将真实主机名映射到IP地址

如果以这种方式使用SRV记录,则区域文件将改为:

$ORIGIN example.com
_http._tcp IN SRV 0 0 80 www.example.com
_smtp._tcp IN SRV 0 0 25 mail.example.com
www        IN A 192.168.1.1
mail       IN A 192.168.1.2

域中的主
A
记录实际上是用于HTTP服务的这一假设也是Verisign的“服务”造成的问题与2003年(简要)推出时一样多的部分原因。通过截取未知域的所有DNS
A
记录查找并返回它们自己的一个地址,Verisign打破了所有假定DNS查找失败时它们可以故障切换到其他地址数据库机制的协议。

如果不使用MX记录,您不认为这个问题可以解决吗,您刚刚创建了一个子域以指向另一个邮件服务器(因此电子邮件帐户类似于someone@mail.mydomain.com而不是someone@mydomain.com)?http SRV记录的有趣副作用——当主web服务器完全不可用时,会自然地故障切换到错误页(或陈旧的静态服务器)。我们需要更多这样的内容。是的,尽管在这种情况下,您希望“www”条目也能正确地进行故障切换,但在本例中(使用显式A记录)它不能。@Dustin为什么要在DNS级别实施任何类型的回退?我认为DNS软件应该简单地将名称转换成ip地址,所有的MX记录和SRV都是一个膨胀。这应该通过其他软件来实现,比如NAT路由器,它通过设计来处理端口和重定向。@doc回退不是在DNS中实现的,而是记录在DNS中,并在堆栈的更高层中实现的。@Alnitak我不想在这里玩语义游戏-记录,实现,不管怎样。。。这是通过使用DNS软件实现的,这很重要。如果它这么说,维基百科的文章部分是错的:当没有MX时,回退是一个地址记录(AAAA和a),而不仅仅是一个记录。RFC 5321,第5.1节引用自文章:“如果没有域的MX记录,请查找RR记录,如果存在此类记录,则将其视为MX记录”。如果需要的话,我没有足够的权威来纠正记录。@bortzmeyer我已经更新了维基百科的文章来纠正这一点。一点也不:正如Alnitak所解释的,MX记录背后的主要目的是能够将域与主机分离。备份邮件服务器在绝大多数情况下都是无用的。我可以接受我的主要目的是错误的,但备份一点也不无用。在大多数情况下,是的,它们是无用的。如果您认为它们有用,请解释原因。它们使设置复杂化(特别是反垃圾邮件设置,大多数MX辅助设备的保护较少)