我很好奇当主机名在两台机器之间平衡时邮件服务器的行为方式。
例如,当给出这些记录时:
example.com MX 10 mailer.example.com
mailer.example.com A 123.123.123.1
mailer.example.com A 123.123.123.2
当123.123.123.1
暂时无法处理邮件时,邮寄者会立即重试吗123.123.123.2
?还是会立即将其视为(暂时的)故障?
RFC 974 描述了 MX 记录回退的行为,其中以下内容应按预期工作,其中每个主机都在失败前进行了尝试:
example.com MX 10 mailer-1.example.com
example.com MX 10 mailer-2.example.com
mailer-1.example.com A 123.123.123.1
mailer-2.example.com A 123.123.123.2
我可能会使用此设置,因为它被定义为可以工作,但我喜欢第一种格式的更简单记录的想法。有什么我遗漏的应该使第一种格式定义明确的行为吗?或者您会说不建议这样做,因为邮寄者可能会将两个 A 记录视为“同一台机器”并且很快就会失败。
MX 记录回退,如 RFC 974 中所定义,是在其中一台服务器不可用时处理电子邮件传送的标准和推荐方法。
根据标准,邮件服务器应按优先顺序尝试 MX 记录中列出的每个主机,直到投递成功或用尽所有选项。在您提到的第一种格式中(同一主机名的多个 A 记录),虽然它可以工作,但不是常用的方式。
为确保一致且定义明确的行为,建议使用 RFC 974 中所述的第二种格式(MX 记录中列出的单独主机名)。
均匀分配负载的最佳方法是使用负载平衡器。没有一个,负载的分配取决于 MTA 实施 RFC 的质量。甚至 gmail 似乎都可以,但我更喜欢