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