Menu

BLOG ベアメールブログ

SPF includeの役割と設定方法を解説! DNSルックアップ上限超過の解消法も紹介

SPF includeの役割と設定方法を解説! DNSルックアップ上限超過の解消法も紹介

SPF(Sender Policy Framework)は、メールの送信元IPアドレスによって送信者の正当性を確認する送信ドメイン認証技術です。あらかじめ「どのIPアドレス(送信サーバー)からメール送信を許可するか」をSPFレコードとしてDNSに登録しておきます。受信側は、受け取ったメールの送信元IPアドレスとSPFレコードを照らし合わせることで、許可されたサーバーから送信されたものか確認できます。

外部のメール配信サービスを利用している場合には、SPFレコード設定の際に、他ドメインのSPFポリシーを参照する「include」の設定が必要です。includeが正しく設定されていなかったり、DNSルックアップ回数の上限を超えてしまったりすると、SPF認証に失敗し、メールが届かなくなる可能性があります。

本記事では、SPF includeの役割から、具体的な設定方法、DNSルックアップ制限の意味、DNSルックアップの上限を超過してしまった場合の解決策まで、分かりやすく解説します。

SPF includeとは?

SPFの「include」とは、SPFレコードの構成要素である「メカニズム」の一つです。メカニズムとは、「どの送信元(IPアドレスやドメイン)を許可または評価の対象とするか」を定義するもので、include以外にも様々な種類があります。

本章では、includeの役割と利用シーンについて解説します。

SPFの仕組みやレコードの構成要素、設定方法については、以下の記事で詳しく解説しています。
SPFレコードとは? 書き方・設定手順・確認方法まで完全ガイド|ベアメールブログ

SPF includeの役割

SPFのincludeは、別ドメインのSPF情報を参照するために使用されるメカニズムです。

SPFは「送信元が、送信を許可されたIPアドレスかどうか」を基に認証を行います。includeで別ドメインのSPFを参照させることで、そのSPFで指定されたIPアドレスについても、許可の対象に含まれるようになります。

SPF includeの利用シーン

includeが使用されるのは、主に外部のメール配信サービスを利用してメールを送信する場合です。

外部サービスを利用すると、自社のメールサーバーではなく、サービス提供事業者が保有するサーバーからメールが送信されることになります。サービス提供事業者が指定する参照先をincludeで指定することで、「この外部サーバーも許可した送信元である」と示すことができます。

SPF includeの設定方法

SPF includeの構文は非常にシンプルですが、正しく記述しないと認証に失敗するため、注意が必要です。ここでは基本的な構文と、複数のサービスを利用する場合の設定例を解説します。

SPF includeの基本構文

SPFレコードは、「v=spf1」というバージョン宣言から始まり、複数のメカニズムをスペースで区切って記述します。最後には「all」メカニズムを記述し、許可されていない送信先の扱いを指定するのが一般的です。なお、「all」は単体で使用するのではなく、「-all」や「~all」のように限定子と組み合わせて指定します。

includeを使う場合は、以下のように記述します。

v=spf1 include:[参照したいドメイン] ~all

例えば、Google Workspaceからメールを送信する場合、Googleが指定するSPFレコード(_spf.google.com)をincludeに含める必要があります。その場合のSPFレコードは次のようになります。

v=spf1 include:_spf.google.com ~all

複数の外部サービスを追加する場合の設定例

複数の外部サービスを利用している場合は、includeを複数並べて記述します。例えば、Google Workspaceと外部のメール配信サービスを併用している場合のSPFレコードは以下のようになります。

v=spf1 include:_spf.google.com include:_spf.example.net ~all

このように、利用するサービスをincludeで追加していくことで、それらのサービスからの送信メールが正規のものとして扱われます。ただしinclude追加の際には、後述する「DNSルックアップ上限」を超過しないよう、注意しなければなりません。

SPF include設定時の注意点|DNSルックアップ上限

SPFレコードのincludeは非常に便利ですが、無制限に使えるわけではありません。ここでは、設定時に注意すべきDNSルックアップ上限について解説します。

SPFのDNSルックアップ上限とは?

DNSルックアップとは、ドメインから対応するIPアドレスを調べる、IPアドレスからドメイン名を調べるなど、DNSを使って名前解決を行うプロセスを意味します。DoS攻撃(※)の防止やサーバーへの負荷軽減のため、SPF認証におけるDNSルックアップ回数は10回までという上限が設けられています。

「a」や「mx」、そして「include」といったメカニズムは、それぞれDNSルックアップを消費します。特にIncludeは、参照先のSPFレコード内にさらにincludeが含まれている場合、その数も加算されていきます。そのため、意図せず上限に達してしまうことがあるのです。

SPFのDNSルックアップ上限については、以下の記事で詳しく解説しています。
SPFのDNSルックアップの回数制限とは? 確認方法や対策を解説|ベアメールブログ

※DoS攻撃:1台のコンピューターから、特定のサーバーやWebサイトに対して大量のデータや不正なリクエストを送り付け、過剰な負担をかけることで、正常なサービス提供を妨害するサイバー攻撃

SPFのDNSルックアップ上限を超えるとどうなる?

DNSルックアップの回数が10回を超えてしまうと、SPF認証の結果は「PermError(恒久的なエラー)」となります。 受信側のサーバーは、このエラーを「認証失敗」とみなし、メールを迷惑メールフォルダに振り分けたり、受信を拒否したりする可能性があります。

結果として、重要なメールが届かないという深刻な問題につながる恐れがあるため、利用するサービスが増えてincludeが多くなってきた場合は、特に注意が必要です。

SPFのDNSルックアップ回数を確認する方法

SPFレコードのDNSルックアップ回数を確認するには、専門のチェックツールを利用するのが最も簡単で確実です。

「MxToolBox SPF Record Checker」などのサイトでは、自社のドメイン名を入力するだけで、SPFレコードの構文やDNSルックアップ回数をチェックできます。定期的にツールを活用して、上限に近づいていないかを監視しましょう。

ツール名特徴URL
MxToolBox SPF Record CheckerDNSルックアップ回数の確認だけでなく、SPFレコードの構文チェックなども併せて行えるhttps://mxtoolbox.com/spf.aspx
dmarcian SPF SurveyorDNSルックアップ回数が分かりやすく可視化されるhttps://dmarcian.com/spf-survey/

SPFのDNSルックアップ上限超過を解消する方法

DNSルックアップ回数が上限の10回に近づいている、あるいは超えてしまった場合、早急な対策が必要です。ここでは、ルックアップ回数を削減する具体的な方法をいくつか紹介します。

SPFの設定を見直し不要な送信元を削除する

最も基本的な方法は、SPFレコードを見直し、不要なinclude指定を削除することです。長期間ドメインの運用を続けていると、現在は利用していない外部サービスの記述が残ったままになっているケースも少なくありません。不要なinclude指定を削除するだけで、DNSルックアップ回数を削減できる場合もあります。

手動でSPFフラット化を行う

SPFフラット化(SPF Flattening)とは、includeなどの参照先ドメインをすべて展開し、最終的に許可されたIPアドレスを直接記載することです。この手法により、DNSルックアップ回数を実質ゼロに抑えられます。

ただしデメリットとして、運用コストの増加が挙げられます。includeの参照先ドメインは、外部サービス側の仕様変更などによりIPアドレスが変わる可能性があるため、SPFフラット化を行う場合はIPアドレスの変更がないかを定期的に確認する必要があります。変更に対応できていないと、SPF認証に失敗しメールが届かなくなる恐れがあるため、十分な注意が必要です。 SPFフラット化については、以下の記事で詳しく解説しています。
SPFフラット化とは? DNS参照回数の上限超過を回避する方法とリスク・代替策を解説|ベアメールブログ

SPFホスティングや自動フラット化サービスを利用する

前述のように、SPFフラット化を手動で行うと、参照元の変更に追随する手間がかかり、運用の負荷が増大します。複数のメール配信サービスを併用しているケースなど、管理が煩雑になりそうなときは、フラット化を自動で行ってくれるサービスの利用を検討するのも有効な手段です。

ベアメールの「迷惑メールスコアリング」では、SPFホスティング機能を提供しています。SPFホスティングなら、SPFを自動でフラット化しルックアップエラーを解消できるほか、管理画面からSPFの編集も容易に行えるため、SPF管理・運用の負荷を大幅に軽減できます。ご興味をお持ちの方は、まずはお気軽にご相談ください。

「迷惑メールスコアリング」SPFホスティング機能紹介
資料をダウンロードする

まとめ

本記事では、SPFレコードのincludeについて、役割や設定方法、注意点を解説しました。includeは外部サービス連携に不可欠なメカニズムですが、設定にミスがあったり、DNSルックアップ上限を超えてしまったりするとSPF認証の失敗につながるため、気を付けて運用する必要があります。

SPF設定の定期的な確認・メンテナンスに加え、必要に応じてSPFホスティングなど専門サービスも活用し、安定したメール送信環境を整えていきましょう。