RFC 1035 – 域名:实现与规范
为什么存在此RFC
RFC 1035发布于1987年,与RFC 1034一起发布,定义了域名系统的实现细节。虽然DNS是一种通用基础设施,但它对电子邮件绝对至关重要。每次电子邮件传递都始于DNS查询——发送服务器必须发现哪些服务器接受收件人域的邮件。
RFC 1035定义了使这成为可能的记录类型、查询格式和响应结构。对于电子邮件,四种记录类型最重要:MX(邮件交换路由)、A(IPv4地址)、AAAA(IPv6地址,在RFC 3596中定义)和TXT(用于SPF、DKIM密钥、DMARC策略等的文本记录)。
没有RFC 1035,就没有标准方式将域名映射到处理其邮件的服务器。现代电子邮件中的每个身份验证和路由机制都依赖于它。
它如何工作
当发送MTA需要向user@example.com传递消息时,它遵循特定的DNS查询序列:
-
查询MX记录获取
example.com。响应包含一个或多个邮件交换器,每个都有优先级值(低=优先)。 - 按优先级排序。如果多个MX记录共享相同的优先级,发送者在它们之间随机化以实现负载均衡。
- 将MX主机名解析为IP地址,使用A(IPv4)或AAAA(IPv6)查询。
- 连接到邮件服务器在解析的IP地址的端口25上,并开始SMTP会话。
- 如果首选MX无法访问,尝试下一个最低优先级,依此类推。
- 如果不存在MX记录,回退到域本身的A/AAAA记录(根据RFC 5321)。
关键技术细节
MX记录——邮件路由
MX记录是电子邮件路由的基础。它将域映射到其邮件服务器的主机名,优先级值决定了尝试的顺序:
MX目标必须是主机名,永远不是IP地址。发送MTA然后通过A/AAAA查询将该主机名解析为IP。指向CNAME的MX记录在技术上被规范禁止,尽管某些解析器容忍它。
A和AAAA记录——IP解析
一旦已知MX主机名,A记录提供IPv4地址,AAAA记录提供IPv6地址:
如果MX主机名解析为A和AAAA记录,发送MTA根据自己的配置和连接性选择。大多数现代MTA在可用时优先选择IPv6,回退到IPv4。
TXT记录——电子邮件身份验证
TXT记录最初是一种将文本数据附加到域名的通用机制。电子邮件身份验证已广泛采用它们:
TXT记录限制为每个字符串255个字节,但单个记录可以包含多个连接的字符串。超过255个字节的SPF记录必须以这种方式拆分。
空MX——RFC 7505
不接受电子邮件的域可以发布空MX记录——优先级为0、指向"."(根)的MX。这告诉发送服务器不要尝试传递,避免延迟和退回:
TTL和缓存
每个DNS记录都有TTL(生存时间),控制解析器缓存结果的时间长度。对于MX记录,典型TTL范围从300到3600秒。较低的TTL允许更快的故障转移,但会增加DNS查询量。在迁移期间,提前降低TTL,以便缓存记录在更改生效前过期。
DNS查询示例
向user@example.com传递的完整DNS查询序列:
常见错误
-
将MX记录指向IP地址。MX记录必须指向主机名,而不是IP。
MX 10 198.51.100.25无效,会导致传递失败。 - 将MX记录指向CNAME。MX目标必须直接解析为A/AAAA记录。指向CNAME的MX在规范中被禁止,会导致不同解析器之间的行为不可预测。
- 缺少邮件服务器IP的反向DNS(PTR)。虽然RFC 1035未定义,但大多数接收服务器检查您的邮件服务器IP地址是否有PTR记录解析回相同的IP。缺少或不匹配的PTR记录会触发垃圾邮件过滤器。
- 迁移邮件提供商后忘记更新DNS。如果您切换电子邮件服务但保留旧MX记录,邮件会发送到旧提供商。迁移后始终验证MX记录。
- 迁移前设置TTL过高。如果您的MX记录有24小时的TTL而您更改提供商,某些服务器将继续向旧目标传递长达24小时。在切换前至少48小时将TTL降低到300秒。
-
超过SPF的10查询限制。SPF评估遵循
include:和redirect=指令,每个生成额外的DNS查询。超过10次查询会导致永久性SPF错误。保持SPF记录简洁。 - 没有MX记录也没有A记录。如果域既没有MX记录也没有A/AAAA回退,该域的邮件无法传递。发布显式MX记录,或至少发布A记录。
可递送性影响
- 首先检查MX记录。如果您的MX记录缺失、配置错误或指向无法访问的服务器,没有邮件能到达您。这是最基本的可递送性要求。
- SPF、DKIM和DMARC都存在于DNS中。每个电子邮件身份验证检查都始于TXT记录查询。如果您的DNS缓慢、不可靠或配置错误,身份验证会失败,您的消息会被标记或拒绝。
- 反向DNS影响发件人声誉。具有正确配置的正向和反向DNS的邮件服务器受到接收服务器的更多信任。不匹配或缺少的PTR记录是强烈的垃圾邮件信号。
- DNS传播延迟影响迁移。更改电子邮件提供商时,DNS缓存意味着过渡永远不会瞬间完成。计划一段时间,期间旧系统和新系统都必须接受邮件。
- IPv6需要匹配的AAAA和PTR记录。如果您从IPv6地址发送,您需要发送主机名的AAAA记录和IPv6地址的PTR记录。不完整的IPv6 DNS设置会导致优先IPv6的提供商的传递失败。