MX记录

资源记录类型

邮件交换记录 (MX record)是域名系统(DNS)中的一种资源记录类型,用于指定负责处理发往收件人域名的邮件伺服器。MX记录允许设置一个优先级,当多个邮件伺服器可用时,会根据该值决定投递邮件的伺服器。简单邮件传输协议(SMTP)会根据MX记录的值来决定邮件的路由过程。

概述

编辑

资源记录是域名系统(DNS)的基本资讯单元,它们由“记录类型”(例如A,MX,NS等)和“DNS类”(例如Internet,CHAOS等)来加以区分。每条记录都拥有一个有效期(TTL,time-to-live),每当这个时间耗尽后,它们所包含的资讯必须从一个权威的名称伺服器上进行更新。DNS中的资源记录是按照名称字段组织的,即DNS树中一个节点的完整网域名称 (FQDN)。而对于MX记录而言,这就是收件人的电邮地址的域名部分,即@后面的部分。也就是说,对于someone@example.com这个电邮地址,example.com会用做MX记录的查询。

MX记录中的资讯必需为“完整域名”和“优先序值”。而其域名必须能够对应到一个或者多个DNS中类型为A或者AAAA的地址记录, 且根据RFC2181,原则上禁止指向CNAME记录。此外,MX记录不能直接设置为A或AAAA记录来对应IP地址,这是DNS管理者常见的错误。[1]

当通过互联网发送电邮时,发送方的邮件传输代理(MTA,Mail transfer agent)将会向DNS发送请求,查询每个收件人的邮箱域名的MX记录。这个请求将会返回可以接受发往该邮箱域名的邮件交换伺服器的列表,以及它们的优先级。接下来,发送方的传输代理将会尝试和这些伺服器建立SMTP连接。

MX记录的机制允许为一个邮件域名配置多个伺服器,并且允许管理员通过优先级指定尝试连接他们的先后顺序。这对于配置由多个邮件伺服器构成的高可用性集群是非常有用的。

MX记录的机制无法改变邮件服务使用的端口号,也无法以不同优先级为权重来将邮件分发给不同的邮件伺服器。但是,可以通过指定相同的优先级来将邮件等可能性地分发给多个邮件伺服器。[2]

MX的偏好,距离和优先级

编辑

根据RFC 5321, 越小的数字代表越高的优先级[3]。这个字眼可能会令人困惑,所以“偏好数字”应该被视为“距离”为佳:更短的距离为更可取。早前的RFC(RFC 974)指出,当两个伺服器的首选号码相同时,它们具有相同的“优先级”,因此这两个术语可以互换使用的。

备份MX

编辑

一个“目标伺服器”,即是通常是最优选的一个知道如何发送给相关用户电子邮箱的伺服器。其他较低优先级(数字较大的)的伺服器,又名为“备份MX”或“次要MX”,通常将消息保存并等待主伺服器可用的时候再提取。 如果两台伺服器都在线或以某种方式相互连接,则备份MX通常只会短暂性地存放消息,并立即将其转发至主MX的伺服器上。备份MX多数只为充当存储和转发的邮件伺服器。

优先级

编辑

邮件会传递到以最小优先编号(最高优先级)的邮件交换伺服器,因此用于邮件传递的MX记录应该具有最小的优先编号,通常为0。 例如使用0作为邮件路径记录,并使用10作为验证您拥有您的域名。MX优先级决定伺服器应该被联络的顺序(假设有多个伺服器并具有不同的优先级):最优先的伺服器(以及最小优先编号)将首先被尝试联络。基本上在DNS记录中都会显示其优先编号,但有时也会错误地标记为“优先”。

关于MX优先级的一个常见的误解是,它旨在增加邮件传递的可能性,但只有具备相同首选优先级的MX伺服器才能提供此优势,因为MX优先级规定某些伺服器应该首先被尝试联络。 MX优先级的另一个常见误解是,为伺服器负荷过量情况下的“故障转移”方法。虽然也可以这样使用,但这是一种不好的资源管理技术,因为它故意造成重载,并没有充分利用可用的硬件。只要为所有的伺服器分配相同的优先级也一样可以做的到,甚至可以帮助避免负荷过量情况,从而减少延迟来提高系统速度。

SMTP协议建立一个存储转发网络,如果某个网域的所有邮件伺服器都处于离线状态时,那么发送邮件伺服器将会对发送往该网域的邮件进行排队,以便稍后重试。但是,这些伺服器无法得知该网域早前离线伺服器的在线状况。发送邮件伺服器只有在下次尝试再发送时才会发现该域是可用的。发送邮件伺服器的发送时间与最终抵达目的地伺服器之间的延迟时间可能由几分钟到几天之间不等,这取决于发送伺服器的重试调度。这才是唯一利用备用MX的解决办法。这个方法就是利用次要MX伺服器外带数据的方法得知主伺服器恢复上线的时间。因此,当主伺服器离线时,消息将会发送比在发送伺服器排列重新尝试发送时有更好的地方。

以下列出一些不能或者不应该把备用的伺服器设为同等的优先级的原因:

  • 备用伺服器的拥有人不同于主伺服器
  • 备用伺服器不能直接存取到主要邮件位置
  • 备用伺服器不能分辨有效的收件人地址
  • 备用伺服器的流量成本较高
  • 备用伺服器有明显的带宽速度问题
  • 备用伺服器的带宽有高延迟的问题

参考资料

编辑
  1. ^ RFC 2181, Section 10.3, Clarifications to the DNS Specification, R. Elz, R. Bush (July 1997)
  2. ^ HOWTO - Configure Round Robin and Load Balancing页面存档备份,存于互联网档案馆), Page modified: February 28 2014., zytrax.com
  3. ^ RFC 5321