如何才能获得长度超过 255 个字符的 SPF 记录?

如何才能获得长度超过 255 个字符的 SPF 记录?

因此,我一直认为单个 SPF 条目必须包含 255 个字符,或者使用运算include符将​​多个条目链接在一起形成一个链。但是,RFC 4408 3.1.3. 明确指出,在评估之前必须将多个字符串连接起来 — 因此,IN TXT "v=spf1" " 1.2.3.4 -all"必须与 一样处理IN TXT "v=spf1 1.2.3.4 -all"。值得注意的是,这允许任意大的 SPF 记录,并include成为包含其他人管理的 SPF 记录的工具。

这是对规范的正确解释吗?更重要的是,当前的邮件服务器会尊重这种多字符串类型的 TXT 记录吗?

答案1

是的,你理解的没错。我最近就处理过这个问题。

这篇文章对我有帮助:

我可以拥有长度超过 255 个字符的 TXT 或 SPF 记录吗?

实践中这一概念的一个显著例子是截至 2016 年 2 月 25 日 cisco.com 的 SPF 记录:

> ;; QUESTION SECTION: ;cisco.com.                     IN      TXT
> 
> ;; ANSWER SECTION: cisco.com.              12775   IN      TXT    
> "926723159-3188410" cisco.com.              12775   IN      TXT    
> "v=spf1 ip4:173.37.147.224/27 ip4:173.37.142.64/26
> ip4:173.38.212.128/27 ip4:173.38.203.0/24 ip4:64.100.0.0/14
> ip4:72.163.7.160/27 ip4:72.163.197.0/24 ip4:144.254.0.0/16
> ip4:66.187.208.0/20 ip4:173.37.86.0/24" " ip4:64.104.206.0/24
> ip4:64.104.15.96/27 ip4:64.102.19.192/26 ip4:144.254.15.96/27
> ip4:173.36.137.128/26 ip4:173.36.130.0/24 mx:res.cisco.com
> mx:sco.cisco.com ~all" cisco.com.              12775   IN      TXT    
> "MS=ms65960035"

只要确保考虑到记录中的空格,正如您已经指出的那样。

另外,请记住,您需要将记录中的 DNS 查找次数限制为 10 次SPF 请求

SPF 实现必须将执行 DNS 查找的机制和修饰符的数量限制为每次 SPF 检查最多 10 个,包括使用“包含”机制或“重定向”修饰符引起的任何查找。如果在检查期间超出此数量,则必须返回 PermError。

相关内容