![SPF 包括:IP 地址过多](https://linux22.com/image/510283/SPF%20%E5%8C%85%E6%8B%AC%EF%BC%9AIP%20%E5%9C%B0%E5%9D%80%E8%BF%87%E5%A4%9A.png)
我在 SPF 方面遇到了麻烦。我的域名的 SPF 记录将包含四五个条目,此外还将包含:include:sgizmo.com
sgizmo.com 的 SPF 记录包含 11 个条目!这个记录加上我的记录,远远超过了 RFC 允许的最大 10 个条目(可能也是大多数服务器允许的最大条目数)。我意识到必须有一个限制,以防止 DoS 攻击。然而,在现实世界中,大公司拥有许多服务器地址可能并非不合理。
此外,我是否必须知道监控我的“include:”对应项的更改和添加?我是否必须每周、每天检查以确保某些更改组合不会突然让我感到困惑?在我看来,SPF 不适合在黄金时段使用。
还有其他方法可以做到这一点吗?
答案1
如果您达到 SPF 记录的限制,那么您可能做错了。请考虑使用:
- “a” 快捷方式
- “mx”快捷键
- 子网
一种非常常见的策略是将所有潜在的邮件交换器列为该域的 MX 条目,但具有极高的优先事项数量。由于域名的 MX 是按从低到高的顺序挑选的,这意味着该服务器永远不会被选中收到流量,但将被列为允许发送流量。这可以提高即使对于不支持 SPF 的目的地的可传递性。只需确保在 SPF 列表中包含“mx”即可。
答案2
您为什么要包含 IP 地址?
您可以包含网络、域名、mx 条目 - 无需输入单个单独的 IP 地址。
答案3
RFC 7208指出 DNS 查询限制为 10。因此,如果您的 SPF 记录包含 5 个 IP 地址,而 sgizmo 包含 11 个,则您只需进行 2 次 DNS 查询即可获得该信息。一次查询您的 DNS 以获取 SPF 记录,一次查询 sgizmo 以获取其 SPF 记录。请记住,初始 SPF 查询不计入总共 10 次。
你可能会感到困惑RFC 7208§4.6.4其中指出:
以下术语会引起 DNS 查询:“include”、“a”、“mx”、“ptr”和“exists”机制,以及“redirect”修饰符。SPF 实现必须在 SPF 评估期间将这些术语的总数限制为 10,以避免 DNS 负载过大。
这并不意味着您的 SPF 记录只能包含 10 个项目。这意味着处理 SPF 不应导致超过 10 次 DNS 查找。例如,以下 SPF 记录只有 2 个术语,但包含 254 个 IP 地址和总共 265 个地址:
v=spf1 ip4:123.123.123.2/24 include:sgizmo.com -all
这仅是 2 次 DNS 查找,第一次不计算在内。如果您还拥有一个 Web 服务器和 5 个 MX(邮件服务器),则可以执行以下操作:
v=spf1 mx a ip4:123.123.123.2/24 include:sgizmo.com -all
由于 MX 和 A 术语需要 DNS 查找,因此它们算作 2 个额外的 DNS 查询。由于您可以在单个 DNS 查询中获取完整的 MX 记录列表,因此上面列出的 SPF 将使 DNS 查询数量达到 10 个中的 3 个,并包含 271 个地址。
为了查看您的问题,让我们查看以下 SPF 记录:
v=spf1 ip4:123.123.123.2 ip4:123.123.123.4 ip4:123.123.123.6 ip4:123.123.123.8 ip4:123.123.123.10 include:sgizmo.com -all
这包括 7 个术语,但只有包含需要 DNS 查询。这意味着这会将 16 个服务器添加到您的有效 SPF 检查中,并且将计为 10 个 DNS 查找中的 1 个,因为 ip4 术语不需要任何 DNS 查询来解析它们。
答案4
如果我错了请纠正我,但我认为这只是 10 个 DNS 查找。我不认为 IP 地址算在其中。
sgizmo.com 看起来只有 5 个:sgizmo.com、a、mx、emailsrvr.com 和 support.zendesk.com。