BLOG ベアメールブログ
2023.09.12 (火)
SPFのDNSルックアップの回数制限とは? 確認方法や対策を解説
Last Updated on 2025.11.19
SPFを設定することは、送信したメールが迷惑メールとして判定されないために有効な対策です。しかし、SPFを正しく設定したはずなのにエラーが発生してしまったという経験はないでしょうか。SPFのDNSルックアップには回数制限があり、10回を超えてしまうとエラーとなり認証が失敗してしまうのです。
本記事では、SPFのDNSルックアップの回数制限について詳しく解説し、対処方法についても紹介しますので、ぜひ参考にしてください。

目次
SPFとは
SPF(Sender Policy Framework)とは、メール送信元のドメイン認証技術の一つで、メールが正当な送信元から送信されているかどうかを確認するための仕組みです。送信を許可するメールサーバをSPFレコードの形式で記載し、DNSで公開することで利用できます。
SPFの仕組み
受信側がメールを受け取ると、送信元ドメインのDNSサーバーに問い合わせ、SPFレコードを確認します。SPFレコードに記載されている情報と、送られてきたメールの送信元IPアドレスを照合し、正当な送信元と確認できれば受信します。認証が失敗した場合は送信ドメインの詐称が行われたと判断し、受信拒否などの処理を行います。この仕組みによってSPFは送信元ドメインの信頼性を担保しています。

SPFのDNSルックアップ回数制限とは
SPFには、認証時に実行できるDNSルックアップは10回までという回数制限が設けられています。もし10回を超えるDNSルックアップが行われた場合、SPFレコードがPermError(無効)と見なされ、受信者側での認証が失敗してしまいます。
SPFのDNSルックアップの回数制限については、RFC7208の「4.6.4. DNS Lookup Limits」の箇所に記載されています。 参考:RFC7208「Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1」>4.6.4. DNS Lookup Limits https://www.rfc-editor.org/rfc/rfc7208#section-4.6.4
DNSルックアップが発生するSPFのメカニズム
SPFレコードの中で、DNSルックアップが発生するのは以下のメカニズムです。
メカニズム 指定する内容 a 指定したドメイン名のAレコードに設定されているIPアドレスを参照 mx 指定したドメイン名のMXレコードに設定されているIPアドレスを参照 include 指定したドメイン名のSPFレコードを参照 ptr ※現在は非推奨 redirect 指定したドメイン名のSPFレコードに処理を完全に委譲 exists 送信者のIPアドレスに基づく動的なチェックを⾏い、特定のDNSレコードが存在するかで判定する
「ip4」「ip6」についてはDNSルックアップを必要としないため、この制限にはカウントされません。
SPFレコードの構文について詳しくは、こちらの記事をご参照ください。
SPFレコードの書き方とは? 記述例を総まとめ | ベアメールブログ
SPFのルックアップ回数が制限されている理由
この制限が設けられている理由は、DNSの無限ループやDoS攻撃の対策のためです。
SPFレコードは「include」のメカニズムによって他ドメインのDNSサーバーを参照することも多いことから、制限がなければDNSサーバーへの問い合わせがどんどん増えてしまい、DNSというシステム全体の負荷や遅延につながってしまう恐れがあります。そのため、DNSの参照回数を制限することで、設定ミスや攻撃によるDNSの負荷を緩和するために役立つのです。
制限の理由について、同じくRFC7208の「11.1. Processing Limits」に詳しい理由が記載されていおり、DoS攻撃の手段として悪用される恐れについて言及があります。個々のメールサーバーにとっては問題がない範囲だったとしても、悪用されることで不当な量のトラフィックが増幅されてしまうリスクがあるため、SPFのルックアップ数は制限値をかなり低くする必要があるのだと説明されています。
参考:RFC7208「Sender Policy Framework (SPF) for Authorizing Use of Domains in Email, Version 1」>11.1 Processing Limits https://www.rfc-editor.org/rfc/rfc7208#section-11.1
SPFのルックアップ回数制限を超過するリスク
SPFのDNS参照回数が10回を超えていても、送信先や条件によっては「⼀⾒問題なく届いているように⾒える」ケースがあります。しかし、実際には認証エラーが断続的に発⽣しており、放置すれば到達率や信頼性の低下につながりかねない状態です。
SPFで参照回数を超過し、ルックアップエラー(PermError)が発生すると、受信側で認証失敗と判断されるため、迷惑メール扱いや拒否の原因になります。また、認証に失敗するとGmailなど⼀部の環境では「なりすましの可能性あり」といった警告が出るケースもあり、ブランドや信頼性にも影響を及ぼします。 メール送信環境の変更や、includeしている外部サービスの仕様変更などによって、ルックアップ回数上限をさらに超過すれば、ある日突然メール不達の影響範囲が拡大する恐れもあります。
DNSルックアップの上限を超えてしまうケース
攻撃や事故の防止という観点から設けられたSPFのルックアップ数制限ですが、クラウドサービスの利用が増えた現在では、制限値をオーバーしてしまうリスクが高まっています。
SPFルックアップエラーの発生率
株式会社リンクがベアメールユーザを対象に行った調査では、ルックアップ回数が10回以上のドメインが16%、9回のドメインが9%と、約25%のドメインでルックアップエラーが起こり得る状態であることがわかりました。

上限を超えてしまう要因
SPFのDNSルックアップ回数が嵩んでしまう理由として、「include」の利用増が挙げられます。
外部のメール配信サービスや、何らかのメール送信機能が備わっているクラウドサービスを利用する場合、外部のメールサーバーからメールが送信されることになります。そのような場合、サービスが指定するSPFレコードを「include」で参照することが求められます。
例えばGoogle Workspaceを利用する場合には、SPFレコードには「include」を使用して以下のように記載します。
v=spf1 include:_spf.google.com ~all
ここで注意したいのが、includeを使うことによってincludeした先のレコードの確認も行われることです。「_spf.google.com」のレコードの内容を調べると、さらに3つのincludeが含まれていることがわかります。したがって、_spf.google.comを追加すると、それだけで合計4回のDNSルックアップが発生するということになります。
このように、メール配信に関わるサービスを複数利用している場合、多くのドメインをincludeで参照することになり、知らないうちに10回の制限を超えてしまうケースがあります。include先のSPFレコードで何回DNSルックアップが発生するかはコントロールできないため、定期的に確認する必要があります。
SPFレコードのDNSルックアップ回数を確認する方法
登録しているSPFレコードのDNSルックアップ回数を確認するには、ツールを利用するのが便利でおすすめです。
様々なツールがありますが、たとえばDmarcianの「SPF Surveyor」はSPFレコードを確認したいドメイン名を入力すると、DNSルックアップの回数がわかりやすく可視化されます。
Dmarcian「SPF Surveyor」https://dmarcian.com/spf-survey/

例では「10/10」と表示されている箇所がルックアップ回数になります。10を超えている場合、警告が表示されます。
スクロールすると、SPFレコードの詳細が表示されます。includeの参照先の内容も確認することができるため、どの参照先でルックアップ回数が嵩んでしまっているのかまで把握することができます。
SPFのDNSルックアップ回数制限への対処方法
では、SPFのDNSルックアップの回数制限を超えないためには、どのような対処方法があるのでしょうか。
不要なSPFレコードを削除する
まずは登録されているSPFレコードを確認し、不要なものを削除しましょう。たとえば以前利用していたものの、現在は利用していないサービスなどのSPFを消し忘れていることがあるかもしれません。新たなサービスを導入する際に、既存のSPFレコードを見直すことがおすすめです。
サブドメインを分ける
利用するサービスごとにサブドメインを分け、それぞれSPFレコードを登録する方法です。例えば「example.com」のドメインを使用している場合、「mail.example.com」という新たなサブドメインを作成して利用します。
SPFフラット化を行う
SPFのフラット化とは、「a」「mx」「include」などのDNSルックアップが発生するメカニズムについて、IPアドレスだけで構成された平坦(フラット)なSPFレコードに置き換えることです。
参照先のIPアドレスをすべて取得してリスト化したら、SPFレコードに直接IPアドレスを列記します。
SPFレコード例 ルックアップ回数 フラット化前 v=spf1 include:_spf.google.com include: spf1.example.com include:spf2.example.com ~all 8回 フラット化後 v=spf1 ip4:192.0.2.10 ip4:192.0.2.11 ip4:192.0.2.12 ip4:198.51.100.20 ip4:198.51.100.21 ip4:203.0.113.30 ip4:203.0.113.31 ~all 0回
注意点として、フラット化後のレコードがあまりにも長大になってしまう場合、TXTレコードの文字数制限をオーバーしてしまう恐れがあります。以下のTXTレコードに関する制限を超えないよう、分割や調整を行う必要があります。
- TXTレコードは、最大255文字(バイト)まで
- DNSのクエリに対する応答は全体で512バイトまで
また、サービスの提供事業者は利用するIPアドレスを変更・追加する可能性があるため、定期的なinclude先の確認と、変更された場合の更新作業が必要になる点に注意が必要です。
SPFフラット化についてはこちらの記事で詳しく解説しています。
SPFフラット化とは? DNS参照回数の上限超過を回避する方法とリスク・代替策を解説 | ベアメールブログ
SPF自動フラット化サービスを利用する
ここまで紹介したようにDNSルックアップの回数制限へ対処する方法はいくつかありますが、管理が煩雑化したり、設定ミスによって業務に影響を及ぼしたりする可能性もあります。そうした課題を解消するために登場したのが、SPFの自動フラット化サービスです。
SPFフラット化サービスは、設定されているSPFレコードをフラット化(flattening)することで、参照回数の制限やTXTレコードの文字数制限を回避します。
手動のフラット化ではinclude先の管理と更新が課題となっていましたが、SPFフラット化サービスは定期的に参照先を監視し、IPアドレスに変更があれば自動で更新が行われます。
サービスの利用料はかかりますが、SPFの認証エラーを手軽に解消することができます。
SPFのルックアップ制限を回避する「SPFホスティング」
ベアメールが提供する国産のSPFフラット化サービスが「SPFホスティング」です。
SPFホスティングに利用したいドメインを登録すると、設定されているSPFレコードの内容を自動的に読み込み、最適化した新しいSPFレコードを発行します。この専用レコードを既存のSPFレコードと差し替えるだけで、対応が完了します。
SPFホスティング利用後は、SPFレコードの更新もベアメールの管理画面から行えるようになります。送信環境の追加や変更の度にDNSレコードを修正・更新する手間も省けるため、SPFに関する対応負荷の軽減にもつながります。

SPFのルックアップ回数制限にお悩みの方は、お気軽にお問い合わせくださいませ。
まとめ
SPFは送信したメールを確実に届けるために必須の対策です。しかしSPFのDNSルックアップ回数には制限があり、10回を超えるとエラーになってしまうため、注意が必要です。SPFレコードの設定に不安がある、どのようにすれば良いのかわからないといった場合には、安定したメール配信を実現するために専門家へ相談することも検討してみてください。