DNS 検索制限(SPF)
SPF の DNS 検索制限は1回の評価で最大10回までです。超過すると permerror になる仕組み、原因、制限内に収める実践的な方法を解説します。
DNS 検索制限(SPF)とは何ですか?
SPF における DNS 検索制限とは、1回の SPF 評価で実行できる DNS 照会を伴うメカニズムと修飾子が最大10個までとするルールを指します。この上限は、メール配信を遅らせたり悪用のリスクを生んだりしかねない、過剰または再帰的な DNS ルックアップを防ぐために存在します。SPF ポリシーが10回を超えるルックアップを必要とする場合、SPF の処理は permerror の結果で失敗し、受信サーバーは通常そのメッセージを SPF に失敗したものとして扱います。
この制約は、v=spf1 レコードの組み立て方に影響します。一部のメカニズムは DNS 照会を引き起こしますが、そうでないものもあります。慎重に計画することで、レコードを制限内に保ち、メールボックスプロバイダー全体で信頼できる認証結果を確保できます。
DNS 検索制限の仕組み
SPF の評価中、受信サーバーは v=spf1 ポリシーを展開します。展開のたびに外部への DNS 照会が必要になると、それが10回の制限にカウントされます。カウントはトップレベルだけでなく、include や redirect をまたいで累積されます。
DNS ルックアップを引き起こすメカニズムと修飾子は次のとおりです。
- a
- mx
- ptr
- exists
- include
- redirect
DNS ルックアップを引き起こさないメカニズムは次のとおりです。
- all
- ip4
- ip6
- exp
ボイドルックアップには別途制限があります。DNS 照会を伴うメカニズムが2個以上、データなしまたは NXDOMAIN を返した場合、評価は permerror で停止することがあります。これは、高コストな、または悪用的なポリシーから受信サーバーを守るためのものです。
制限を超えるおそれのあるポリシーの例です。
v=spf1 include:_spf.vendor1.com include:_spf.vendor2.com include:_spf.vendor3.com include:_spf.vendor4.com include:_spf.vendor5.com mx a ~allトップレベルでは10回未満のルックアップに見えても、各 include 自体がさらに include、a、mx などのメカニズムを含んでいることがあります。展開されたツリー全体の合計は、10以下に収めなければなりません。
この制限が到達性とセキュリティにとって重要な理由
SPF ポリシーが10回のルックアップ制限を超えると、受信サーバーは permerror を返し、SPF が失敗したかのようにメッセージを扱うことがあります。DMARC ポリシーとアライメントによっては、その失敗が受信トレイへの配置を下げたり、保護対象ドメインの完全な拒否につながったりする可能性があります。
制限に達した場合の運用上のリスクは次のとおりです。
- ベンダーが include を変更した際の断続的な SPF 失敗
- 受信サーバーごとに異なる、診断が難しい配信の問題
- SPF のアライメント不整合による予期せぬ DMARC 失敗
- 新しい送信サービスを追加する際の脆弱性の増大
ポリシーを制限内に保つことで、安定した認証結果が確保され、サポートの負担が減り、ドメインのレピュテーションが維持されます。また、攻撃者が受信側に高コストなリゾルバー処理を強いるポリシーを仕込むのも防ぎます。
制限内に収めるための実践的な方法
正確さを損なうことなく DNS ルックアップを最小限に抑えるように SPF ポリシーを設計しましょう。効果的な手法は次のとおりです。
- 可能な場合は ip4 と ip6 を優先し、既知の範囲を直接記述する
- 重複するベンダーの include を統合し、使用していないサービスを削除する
- ptr は避け、a と mx は必要な場合にのみ使用する
- 複数のブランド固有の include を連鎖させるのではなく、可能な場合はベンダー提供の集約された include を使用する
- 範囲が安定している場合は include を IP に解決してフラット化するが、慎重に行い、ベンダーの変更時に再確認するプロセスを設ける
- 複数の階層的な redirect ではなく、クリーンな継承のために redirect を一度だけ使用する
- ボイドルックアップを監視し、タイプミスや廃止されたホスト名を修正する
制限を守った、簡潔な例です。
v=spf1 ip4:203.0.113.0/24 include:_spf.mailhost.com ip6:2001:db8:abcd::/48 -allDNS 検索制限と DMARCeye
DMARCeye は、SPF ポリシーを完全に展開して評価し、DNS ルックアップの総数を見積もり、制限に近づいている、または超えているポリシーを明らかにします。このプラットフォームは、どのメカニズムがカウントに最も寄与しているかを追跡し、リスクのある include や redirect の連鎖を洗い出します。
DMARCeye はまた、ボイドルックアップ、非推奨の ptr の使用、そしてベンダーの更新後にレコードを閾値を超えさせかねない設定ミスにフラグを立てます。明確な推奨事項と変更の追跡により、チームは SPF ポリシーを簡素化し、10回のルックアップルールを守り、一貫した DMARC 合格率を維持できます。
ご自身のSPFレコードを確認しましょう:
DMARCeyeの無料トライアルに登録して、メールドメインを保護しましょう。
DMARCおよび関連用語について詳しくは、DMARCeye用語集をご覧ください。