我之前曾问过一个关于MX记录的问题(并且感谢我从SO'ers那里得到的深思熟虑的答案).既然问题已经解决了,我想退一步问为什么首先有MX记录.
具体来说:为什么SMTP通过DNS获得特殊待遇?
我们没有FTP的HTTP或FX记录的HX记录.似乎所有其他互联网协议与DNS的A记录相得益彰.实际上,关于MX记录的维基百科文章指出,当前的SMTP规范说如果接收者不存在MX记录,服务器应该回到A记录上.它还提到了一些在DNS前世界中制作的SMTP,但那是在25年前.我们真的需要MX记录吗?
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
记录,然后我们可以一起取消特定于应用程序的前缀,并使用A记录实现其目的 - 特别是将真实主机名映射到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的SiteFinder "服务"引起与2003年(简要)引入时一样多的问题的部分原因.通过拦截所有DNS A
记录查找如果DNS查找失败,Verisign破坏了各种协议,这些协议假定它们可以故障转移到其他地址数据库机制.
MX记录背后的主要目的是能够指定处理整个域的特定协议的机器,还指定备份邮件服务器(具有不同的优先级).这样,如果一个服务器出现故障,您仍然可以访问下一个服务器,用于向该域发送电子邮件.也不能使用普通A记录,它直接映射主机的全名.
现在可以用弗兰克指出的SRV记录(日期为8年,而不是25年)来完成.那时候没有很多其他大规模可用的标准协议.