简介
本文档介绍思科为CES托管客户推荐的SPF记录如何发挥作用。
要求
- 基本了解DNS的工作方式。
SPF宏的重要性
Cisco推荐的记录使用RFC7208第7部分中定义的SPF宏。在这种情况下,宏用于减少CES设备通过SPF验证所需的DNS查找量。这非常重要,因为根据RFC7208第4.6.4节,SPF将每个SPF验证的DNS查找数量限制为10。如果需要超过10个DNS查找,则SPF验证结果为永久错误。这可能不是问题,但如果调配了更多托管ESA,将需要更多DNS查找。
您可以将每个托管ESA的IP地址添加到SPF记录。这不需要在SPF验证期间执行任何额外的DNS查找。但是,此方法的缺点是,每当调配任何新的ESA或现有ESA的IP地址发生更改时,您必须更改SPF记录。添加记录后,思科建议的SPF记录不需要您进行任何管理。
SPF记录说明
以下是SPF记录的示例:
$ dig acme.com txt +short
"v=spf1 exists:%{i}.spf.acme.iphmx.com ~all"
注意: 此SPF记录的“acme”部分被视为分配名称。您的CES托管集群具有唯一的分配名称,如果向DNS添加此SPF记录,则应使用此名称替代“acme”。
在此SPF记录中,使用宏“%{i}”。此宏用作执行SPF验证时由连接主机的IP地址替换的变量。例如,如果192.168.0.1是发送主机,则主机名“%{i}.spf.acme.iphmx.com”将扩展为“192.168.0.1.spf.acme.iphmx.com”。
“exists”机制在RFC7208 Section-5.7中定义,如果主机名“%{i}.spf.acme.iphmx.com”在DNS中包含A记录,该机制将匹配。例如,假设192.168.0.1再次是发送主机。主机名“%{i}.spf.acme.iphmx.com”将扩展为“192.168.0.1.spf.acme.iphmx.com”,验证主机将执行以下DNS查找:
$ dig 192.168.0.1.spf.acme.iphmx.com a +short
127.0.0.2
注意:域iphmx.com由思科管理。因此,只有思科可以添加/删除/修改该域的DNS记录,与上述记录类似。这意味着您无需在新ESA调配到CES集群时添加这些记录。思科有责任确保这些记录得以添加并正确无误。
因为IP地址127.0.0.2已返回,所以存在机制将匹配,SPF验证结果将通过。
假设发送主机是10.0.0.1。主机名“%{i}.spf.acme.iphmx.com”将扩展为“10.0.0.1.spf.acme.iphmx.com”,并且验证主机将执行以下DNS查找:
$ dig 10.0.0.1.spf.acme.iphmx.com a +short
$
由于没有返回结果,现有的机制不匹配,SPF验证结果将为softfail。
Additional Information
SPF技术可能很复杂,具体取决于要为域授权中继邮件的主机数量。如果CES托管的设备是有权为域中继邮件的唯一主机,则以上记录对您非常有用。否则,您必须修改我们提供的SPF记录,以便它授权您需要它的所有主机。
如果您有现有的SPF记录,则可以在该SPF记录中添加“exists:%{i}.spf.acme.iphmx.com”。