BLOG ベアメールブログ
2023.09.12 (火)
メール用語解説SPFのDNSルックアップの回数制限とは? 確認方法や対策を解説
Last Updated on 2024.08.1
SPFを設定することは、送信したメールが迷惑メールとして判定されないために有効な対策です。しかし、SPFを正しく設定したはずなのにエラーが発生してしまったという経験はないでしょうか。SPFのDNSルックアップには回数制限があり、これが原因となっている場合があります。
本記事では、SPFのDNSルックアップの回数制限について詳しく解説し、対処方法についても紹介しますので、ぜひ参考にしてください。
目次
SPFとは
SPF(Sender Policy Framework)とは、メール送信元のドメイン認証技術の一つで、メールが正当な送信元から送信されているかどうかを確認するための仕組みです。迷惑メールは送信者のドメインを偽装して送信されることが多いため、SPFを設定することでメールの信頼性を高めることができます。
SPFの仕組み
SPFは、送信に使用するドメインのDNSサーバーにSPFレコードを登録することで導入できます。SPFレコードとは、そのドメインを送信元としたメールを送信する、正当なメールサーバーの情報(IPアドレスなど)を記載したDNSレコードのことです。
メールの受信側は、受け取ったメールの送信元ドメインのDNSサーバーに問い合わせ、SPFレコードを確認します。SPFレコードに記載されている情報と、送られてきたメールの送信元IPアドレスを照合し、正当な送信元と確認できれば受信します。認証が失敗した場合は送信ドメインの詐称が行われたと判断し、受信拒否などの処理を行います。この仕組みによってSPFは送信元ドメインの信頼性を担保しています。
SPFのDNSルックアップ回数制限
DNSルックアップとは、DNSを使用して必要な情報を検索することを指します。
調べたいドメインを管理する権威DNSサーバーへ問い合わせを行い、ドメイン名やホスト名からIPアドレスを調べること(正引き、フォワードルックアップ)や、反対にIPアドレスから対応するドメイン名やホスト名を調べること(逆引き、リバースルックアップ)は、いずれもDNSルックアップにあたります。
SPFのDNSルックアップは上限10回
SPFレコードでは、以下のようなメカニズムを使用して送信元を指定します。SPFの認証時も、これらのメカニズムに従って指定された送信元を調べる際にDNSルックアップが行われるのです。
メカニズム 指定する内容 ip4 IPv4のIPアドレス範囲を指定 ip6 IPv6のIPアドレス範囲を指定 a 指定したドメイン名のAレコードに設定されているIPアドレスを参照 mx 指定したドメイン名のMXレコードに設定されているIPアドレスを参照 include 指定したドメイン名のSPFレコードを参照 redirect リダイレクト先のSPFレコードを参照
SPFレコードの構文について詳しくは、こちらの記事をご参照ください。
SPFレコードの書き方とは? 記述例を総まとめ | ベアメールブログ
SPFには、認証時に実行できるDNSルックアップは10回までという回数制限が設けられており、「a」「mx」「include」「redirect」はこの制限の対象になります。「ip4」「ip6」についてはDNSルックアップを必要としないため、この制限にはカウントされません。
もし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ルックアップの回数が制限されている理由
この制限が設けられている理由は、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
DNSルックアップの上限を超えてしまうケース
攻撃や事故の防止という観点から設けられたSPFのルックアップ数制限ですが、クラウドサービスの利用が増えた現在では、制限値をオーバーしてしまうリスクが高まっています。
外部のメール配信サービスや、何らかのメール送信機能が備わっているクラウドサービスを利用する場合、自社のメールサーバーとは異なるメールサーバーからメールが送信されることになります。そのような場合、サービスが指定するSPFレコードを設定することが必ず求められます。
例えば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ルックアップ回数を確認するには、ツールを利用するのが便利でおすすめです。さまざまなツールがありますが、たとえばMxToolBoxはSPFレコードを確認したいドメイン名を入力すると、DNSルックアップの回数やSPFの構文が正しいかなどのチェックができます。
MxToolBox「SPF Record Check – Lookup SPF Records」https://mxtoolbox.com/spf.aspx
DNSルックアップ回数制限への対処方法
では、DNSルックアップの回数制限を超えないためには、どのような対処方法があるのでしょうか。
不要なSPFレコードを削除する
まずは登録されているSPFレコードを確認し、不要なものを削除しましょう。たとえば以前利用していたものの、現在は利用していないサービスなどのSPFを消し忘れていることがあるかもしれません。新たなサービスを導入する際に、既存のSPFレコードを見直すことがおすすめです。
利用できる場合、ip4やip6のメカニズムを利用する
SPFレコードのip4やip6のメカニズムはDNSルックアップが発生しないため、利用可能な場合は有効な手段となるでしょう。ただし、IPアドレスが変更になった場合にはメンテナンスが必要になるため、注意が必要です。
サブドメインを分ける
利用するサービスごとにサブドメインを分け、それぞれSPFレコードを登録する方法です。たとえば「◯◯◯.com」のドメインを使用している場合、「△△.◯◯◯.com」という新たなサブドメインを作成して利用します。
専門家に相談する
ここまで紹介したようにDNSルックアップの回数制限へ対処する方法はいくつかありますが、管理が煩雑化したり、設定ミスによって業務に影響を及ぼしたりする可能性もあります。自社に最適な方法を選択するためには、安全なメール配信のノウハウを持つ専門家・専門業者に相談して解決策を仰ぐことも有効な手段です。
まとめ
SPFは送信したメールを確実に届けるために必須の対策です。しかしSPFのDNSルックアップ回数には制限があり、10回を超えるとエラーになってしまうため、注意が必要です。SPFレコードの設定に不安がある、どのようにすれば良いのかわからないといった場合には、安定したメール配信を実現するために専門家へ相談することも検討してみてください。
「ベアメール」は、メール到達率の改善を支援するサービスです。高いIPレピュテーションの環境からメールを高速配信できる「メールリレーサービス」と、メールが届かない原因を分析して改善策を提示する「迷惑メールスコアリングサービス」を提供しています。 メール配信に課題をお持ちの方は、ぜひベアメールへお気軽にご相談ください。