SPFのDNSルックアップ回数制限とは? 確認方法や対策を解説

最終更新日:2026年10月09日 公開日:2023年09月12日
SPFのDNSルックアップ回数制限とは? 確認方法や対策を解説

「SPFを正しく設定しているはずなのに、エラーになる」といった経験はないでしょうか。SPFでは、認証時のDNSルックアップ回数が10回までに制限されています。10回を超えるとSPFの評価結果がPermErrorとなり、メールの到達に影響する可能性があるため、原因に応じて設定を適切に見直すことが重要です。

本記事では、SPFのDNSルックアップ回数制限の仕組みや確認方法、回数が増える主な原因、10回を超えた場合の対処法について解説します。

お役立ち資料のダウンロードページへ移動(『SPFルックアップエラーとは』:SPFルックアップエラーの原因、確認・改善方法を解説)

SPFのDNSルックアップ回数制限とは

SPFには、認証時にDNS参照を伴うメカニズム・修飾子の評価回数を合計10回までに制限するルールがあります。一般に「DNSルックアップ回数制限」と呼ばれるもので、includeやa、mxなどが対象です。この制限は、SPFの評価によってDNSに過度な負荷がかかることや、DoS攻撃(※)に悪用されることを防ぐために設けられています。

ここでは、DNSルックアップとしてカウントされるメカニズム・修飾子を紹介し、上限を超えた場合の影響について解説します。

※DoS攻撃:大量の通信や処理を発生させることで、サーバーやネットワークに過度な負荷をかけ、サービスを利用しにくくする攻撃。

参考: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(2026/9/30確認)

DNSルックアップとしてカウントされるSPFのメカニズム・修飾子

SPFレコードの中で、DNSルックアップ回数の制限対象となるメカニズム・修飾子は以下の通りです。

メカニズム・修飾子 指定する内容
a 指定したドメイン名のA/AAAAレコードを参照する
mx 指定したドメイン名のMXレコードを参照し、メールサーバーのA/AAAAレコードを確認する
include 指定したドメイン名のSPFレコードを参照する
ptr 送信元IPアドレスの逆引き結果をもとに確認する ※現在は非推奨
exists 指定したドメイン名のAレコードが存在するかを確認する
redirect 指定したドメイン名のSPFレコードに評価を委譲する

これらの評価回数は、SPFの評価全体で合計10回までに制限されています。一方、ip4やip6はDNSルックアップを必要としないため、この制限にはカウントされません。

SPFレコードの構成要素とincludeの仕組みについては、以下の記事でそれぞれ詳しく解説しています。
SPFレコードとは? 書き方・設定手順・確認方法まで完全ガイド|ベアメールブログ
SPF includeとは? 役割・設定方法・DNSルックアップ上限超過の解消法を解説|ベアメールブログ

DNSルックアップ回数が10回を超えるとどうなる?

SPFのDNSルックアップ回数が10回を超えると、SPFの評価はPermErrorとなります。PermErrorは、SPFレコードの設定に恒久的な問題があり、正常に評価を完了できなかったことを示すエラーです。

PermErrorが発生したメールをどのように扱うかは受信側のメールサービスによって異なりますが、迷惑メールフォルダへの振り分けや受信拒否など、メールの到達に影響するおそれがあります。

また、DKIMなど他の認証結果や受信側の判定によってはメールが届く場合もあるため、DNSルックアップ回数の超過に気づきにくいケースもあります。現在は問題なく送信できているように見えても、外部サービスの追加・変更などをきっかけに影響が表面化する可能性があるため、上限を超えている場合は早めに設定を見直すことが重要です。

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

SPFレコードのDNSルックアップ回数を確認するには、専用のツールを利用するのが便利です。

さまざまなツールがありますが、例えばdmarcianの「SPF Surveyor」では、確認したいドメイン名を入力するだけで、SPFレコードのDNSルックアップの回数や参照関係が可視化されます。

dmarcian「SPF Surveyor」https://dmarcian.com/spf-survey/

SPF surveyorの診断結果のスクリーンショット

上記の例で「10/10」と表示されている箇所がルックアップ回数です。上限の10回を超えている場合は、警告が表示されます。

さらに画面をスクロールすると、SPFレコードの詳細を確認できます。includeの参照先も展開して確認できるため、どの参照先で多くのDNSルックアップ回数が発生しているのかを把握し、設定を見直す際の参考にできます。

DNSルックアップ回数が増える主な原因

SPFのDNSルックアップ回数が上限に近づいたり、超過したりするケースは珍しくありません。実際にベアメールが2025年7月に利用者のドメイン643件を対象に実施した調査では、約25%でDNSルックアップ回数が9回以上となっていることがわかりました。

ベアメールによるSPFルックアップエラーの発生率の調査結果のグラフ

DNSルックアップ回数が増える背景には、複数の外部サービスの利用や、includeの参照先でさらに別のSPFレコードを参照していることなど、いくつかの要因があります。

ここでは、DNSルックアップ回数が増える主な原因について解説します。

複数の外部サービスを利用している

メール配信サービスやクラウドサービスなど、複数の外部サービスでエンベロープFrom(MAIL FROM)に同じドメインを使用している場合、各サービスをSPFで認証するためにincludeの記述が増え、DNSルックアップ回数が多くなることがあります。

includeの参照先にさらにincludeが含まれている

SPFでは、includeで指定した参照先のSPFレコードも評価されます。その参照先にさらにincludeなどDNS参照を伴う記述が含まれている場合、それらもDNSルックアップ回数としてカウントされます。

そのため、SPFレコード上ではincludeの記述が少なく見えても、実際のルックアップ回数が多くなり、上限の10回を超えることがあります。

利用していないサービスのincludeが残っている

過去に利用していたメール配信サービスやクラウドサービスのincludeが、SPFレコードに残ったままになっているケースもあります。

現在は使用していないサービスであっても、SPFの評価時にそのincludeが参照されればDNSルックアップ回数としてカウントされるため、不要な記述が積み重なることで上限に近づく原因になります。

DNSルックアップ回数が10回を超えた場合の対処法

DNSルックアップ回数が10回を超えている場合は、原因を確認したうえでSPFレコードの設定やメール送信環境を見直す必要があります。

ここでは、DNSルックアップ回数を減らすための主な対処法を紹介します。

不要なincludeを削除する

現在利用していないメール配信サービスやクラウドサービスのincludeがSPFレコードに残っている場合は、不要な記述を削除します。不要なincludeを減らすことで、DNSルックアップ回数を削減できます。

利用する送信サービスを整理する

複数のメール配信サービスやクラウドサービスを利用している場合は、現在の運用に必要かを改めて見直しましょう。利用するサービスを整理することで、SPFレコードに追加するincludeを減らし、DNSルックアップ回数を抑えることができます。

送信元ドメインを分ける

利用するサービスごとに送信元ドメインを分け、それぞれにSPFレコードを設定する方法です。例えば「example.com」を使用している場合、「mail.example.com」などのサブドメインを作成し、エンベロープFrom(MAIL FROM)のドメインとして利用します。

サービスごとにSPFの評価対象となるドメインを分けることで、一つのSPFレコードに多数のincludeを記述する必要がなくなり、DNSルックアップ回数を分散できます。

ただし、この方法を利用するには、送信サービスがエンベロープFromのドメイン変更に対応している必要があります。また、ドメインを分ける際は、DMARCのアライメントなどに影響がないか確認することも重要です。

SPFフラット化を行う

SPFフラット化とは、includeなどで参照しているSPFレコードを展開し、取得したIPアドレスをip4やip6として直接SPFレコードに記述する方法です。ip4やip6はDNS参照を行わないため、DNSルックアップ回数を削減できます。

例えば、以下のようにincludeで外部のSPFレコードを参照している場合、参照先のIPアドレスを展開して置き換えます。

フラット化前
v=spf1 include:spf.example.com ~all
↓
フラット化後
v=spf1 ip4:192.0.2.10 ip4:192.0.2.11 ~all

ただし、フラット化には注意点もあります。外部サービス側で送信元IPアドレスが変更・追加されても、自社のSPFレコードには自動で反映されないため、参照先を継続的に確認し、SPFレコードを更新する必要があります。また、多数のIPアドレスを直接記述するとSPFレコードが長大化し、DNS応答のサイズが大きくなることで、SPFレコードを正常に取得できなくなるおそれがあります。

なお、SPFマクロなどが使用されている場合、参照先の内容によっては、単純にIPアドレスへ置き換えることが難しいケースもあります。

SPFフラット化の仕組みや実施手順、リスクについては、以下の記事で詳しく解説しています。
SPFフラット化(フラットニング)とは? 仕組み・手順・リスクを解説|ベアメールブログ

SPF自動フラット化サービスを利用する

手動でのフラット化に伴う管理負担やリスクを軽減するには、SPF自動フラット化サービスを利用する方法も有効です。

SPF自動フラット化サービスは、includeなどの参照先を自動で展開し、IPアドレスに置き換えるサービスです。参照先の変更を継続的に確認してSPFレコードへ反映し、フラット化した状態を維持できます。

DNSルックアップ回数制限の対策なら「SPFホスティング」

ベアメールでは、SPFのDNSルックアップ回数制限への対策として、SPF自動フラット化サービス「SPFホスティング」を提供しています。

SPFホスティングに対象のドメインを登録すると、既存のSPFレコードを自動的に読み込み、フラット化した専用のSPFレコードが発行されます。発行されたレコードを既存のSPFレコードと差し替えるだけで、DNSルックアップ回数を削減することが可能です。

また、導入後も参照先の情報を定期的に確認し、IPアドレスやホスト名の変更に自動で対応します。これにより、DNSルックアップ回数の上限超過を回避しながら、SPFの管理・更新にかかる負担を軽減できます。

ベアメールのSPFホスティングの利用イメージ図

ベアメールのSPFホスティングについて、詳しくは以下のページをご覧ください。
SPFルックアップエラーを効率よく解消するならSPFホスティング|ベアメール

お役立ち資料のダウンロードページへ移動(『SPFホスティング 紹介資料』:機能詳細・料金プラン)

まとめ

SPFのDNSルックアップ回数は最大10回までに制限されており、上限を超えるとPermErrorが発生し、メールの到達に影響するおそれがあります。

上限を超えている場合は、不要なincludeの削除や送信サービスの整理、SPFフラット化など、原因に応じた対策が必要です。特に、継続的な管理の負担を抑えたい場合は、IPアドレスの変更にも自動で対応できるSPFホスティング(SPF自動フラット化サービス)の活用も検討するとよいでしょう。