SPF MX 机制查找次数

SPF MX mechanism number of lookups

提问人:Indra 提问时间:11/4/2023 更新时间:11/7/2023 访问量:70

问:

我目前正在研究一些用于验证 SPF 记录的代码。然而,当我将我的查找次数结果与MxToolbox和EasyDMARC等其他工具进行比较时,它们似乎不对劲。

目前我正在做类似于以下代码的事情。

if (directive.Mechanism == SpfMechanism.MX)
{
    _lookups++;
    
    // Lookup the MX records
    var records = _resolver.GetMXRecords(directive.MX);
    
    foreach (var record in records)
    {
        // Do an A lookup for the MX record
        _lookups++;
        
        // ...
    }
}

但是,我不确定是否要增加每个 MX 记录的查找次数。

RFC提到

check_host() 首先在 上执行 MX 查找。然后 它会对返回的每个 MX 名称执行地址查找。是 与每个返回的 IP 地址进行比较。防止拒绝服务 (DoS) 攻击,则第 4.6.4 节中定义的处理限制必须 跟着。如果超出 MX 查找限制,则“permerror”为 返回,评估将终止。如果任何地址匹配, 机制匹配。

但目前还不清楚这些是否应该被计算在内,公共实现似乎也对此有所不同。

电子邮件 DNS SPF

评论

0赞 Synchro 11/4/2023
你不会说你的结果是高于还是低于你的预期。
0赞 Indra 11/4/2023
我得到的结果高于预期,超过了最大查找限制。
0赞 Synchro 11/6/2023
我们在这里真的没有什么可做的。在看不到您在给定领域获得的结果的情况下,我们是在盲目地工作。
0赞 Indra 11/6/2023
我主要想知道我应该如何计算这些 MX 查找。一个非常粗略的例子是,我的代码将计算 6 次查找(一个用于 MX,5 个用于每个 MX 记录的 A 查找),而其他工具只计算一次查找。v=spf1 mx:gmail.com -all

答:

1赞 Indra 11/7/2023 #1

再次非常仔细地阅读 RFC 后,查找限制实际上是执行查找的机制的限制。每个 MX 机制都有 10 个查找,与查找限制无关。

通过进行这些更改解决了我的问题,现在我的结果与其他 SPF 工具和库相同。

评论

0赞 Synchro 11/7/2023
有趣的结论,但它似乎有点奇怪,因为它确实为或多或少的无限制查找打开了大门,而不是击败了限制的观点。
0赞 Indra 11/7/2023
同样令人惊讶的是,似乎精心制作的 SPF 记录实际上可以引起多达 100 次查找。