SPF レコードでは、この-all
オプションは「ここで明示的にリストしているマシン/ドメインのみをホワイトリストに登録し、他のサーバーはこのドメインの電子メールを発信できない」という意味です。
では、include:
SPFレコードのオプションを使用して2番目のSPFレコードを含めると、二次的なSPF レコードはありますか-all
? そこにあるとどのような影響がありますか?
答え1
インクルード メカニズムは、インクルードされたレコードの再帰評価をトリガーします。この評価が失敗した場合 (インクルードされたレコードに -all が含まれている場合など)、インクルード メカニズムの結果は「一致しない」とみなされます。そのため、実際には、インクルードされた SPF レコード内の -all メカニズム (または - 修飾子を含むその他のメカニズム) は、プライマリ レコードの評価には影響しません。
インクルードメカニズムがプライマリレコードの評価にどのように影響するかについての完全な概要は、RFC 7208のセクション5.2の表で確認できます(https://www.rfc-editor.org/rfc/rfc7208#section-5.2)
答え2
SPF チェックに合格するには、送信 IP アドレスが少なくとも 1 つのメカニズムに合格する必要があります。インクルード メカニズムは、インクルードされた SPF レコードを使用して受信 IP アドレスをテストし、結果を「返します」。
あなたの例を使用すると:
a.example.com IN TXT "v=spf1 include:b.example.com +all"
b.example.com IN TXT "v=spf1 -all"
含まれているレコードには-all
メカニズムしか含まれていないため、失敗が返されます。ただし、最初のレコードにはメカニズムがあるため、成功します+all
。
より詳細な例を挙げます。
a.example.com IN TXT "v=spf1 ip4:1.2.3.4 mx include:spf.example.org -all"
a.example.com IN MX 0 mailserver.example.com
mailserver.example.com IN A 1.2.3.5
spf.example.org IN TXT "v=spf1 ip4:4.3.0.0/16 -all"
各メカニズムの結果を、レコードに指定されているのと同じ順序で書き留めます。したがって、結果は次のようにフォーマットされます。
- a.example.com:
[ip4] [mx] [include] [-all]
- spf.example.org:
[ip4] [-all]
送信者アドレスは次のとおりです:
1.2.3.4
- spf.example.org ->
fail fail
- a.example.com ->
pass fail fail fail
pass
少なくとも1つのチェックに合格したため、最終結果は になります。
1.2.3.5
- spf.example.org ->
fail fail
- a.example.com ->
fail pass fail fail
pass
少なくとも1つのチェックに合格したため、最終結果は になります。
4.3.10.20
- spf.example.org ->
pass fail
- a.example.com ->
fail fail pass fail
pass
少なくとも1つのチェックに合格したため、最終結果は になります。
要約:include メカニズムは個別に評価され、その結果は、それを含むレコードの評価に返されます。一致するメカニズムがない場合、レコードの評価は失敗します。例を で終了したので+all
、常に一致し、したがって合格します。
答え3
-all
末尾の は、すべてのインクルードが処理された後に解釈されます。
その目的は、リストされているリソースを介して送信されていない電子メールをどのように処理する必要があるかを伝えることです。
-all
は、それらを偽造として削除することを意味しますが、 は、~all
それらがまだ正当である可能性があり、より疑いを持って扱う必要があることを意味します。