too many DNS lookups — SPFの参照が10回を超えている
最終更新: 2026-09-09
SPFの検証中に発生するDNS参照は10回までと決まっています(RFC 7208)。超えると permerror になり、SPFを設定していないのと同じ扱いになります。
- 自分のレコードが短く見えても超える理由(
includeの中のincludeも数える) - 何が「1回」に数えられ、何が数えられないか
- 効果の大きい減らし方の順番
どこに出る文字列か
spf=permerror (google.com: permanent error in processing during lookup of
yourdomain.com: too many DNS lookups)
この文字列が出ていなくても、permerror の多くはこれが原因です。
何が1回に数えられるか
| 数える | 数えない |
|---|---|
include:/a/mx/exists:/ptr/redirect= | ip4:/ip6:/all/exp= |
やっかいなのは、include の先が持っているレコードの中身も数えることです。include:_spf.google.com は、それ自体で1回、さらにその中の include でも消費します。自分のレコードに include が3つしか無くても、合計で10回を超えることがあります。
減らし方 — 効果の大きい順
1. 使っていないサービスの include を消す(効果:大)
いちばん多い原因は、解約したサービスの設定が残っていることです。「以前使っていた配信サービス」「試しただけのツール」が、参照回数だけを消費し続けています。無料診断は、参照先が消えている include と、同じ参照先を2度たどっている include を指摘します。
2. 配信専用のサブドメインに分ける(効果:大)
配信サービスの分を mail.yourdomain.com のようなサブドメインに移すと、本体ドメインの10回とは別枠になります。配信サービスがCNAME方式を案内している場合は、これがそのまま解決になります(→SPF徹底解説)。
3. ip4: に置き換える(効果:中・条件つき)
include をやめて、送信元IPを直接書けば参照は0回です。ただし相手のIPが変わったときに気づけません。自社サーバーのように自分でIPを管理しているものだけにしてください。他社の配信サービスには使わないでください。
やってはいけない回避策
- SPFレコードを2本に分ける … RFC違反で両方とも無効になります(→permerror)
- 他社サービスの include を ip4 に展開して固定する … 相手がサーバーを増減した瞬間に、届かなくなります
?allにして逃げる … 判定に使われなくなるだけで、宣言していないのと変わりません
いま何回使っているか
無料診断にドメイン名を入れてください。include を再帰的にたどって合計の参照回数と、その内訳を出します。「どのサービスが何回使っているか」が分かるので、どれを削るかを判断できます。
仕組みの詳しい解説はSPFの10回制限とはにあります。