複数のSPFレコードを持つことはできますか?

by

最終更新日:
9 読了時間:約9分
複数のSPFレコードを持つことはできますか?

主なポイント

  1. 複数のSPFレコードを持つことは、メール配信の問題を引き起こし、SPF PermErrorを引き起こす可能性があります。
  2. SPF認証時の混乱を避けるため、ドメインはSPFレコードを1つだけ持つべきである。
  3. 複数のSPFインクルードを1つのレコードにまとめることは、SPFを適切に設定するために不可欠である。
  4. 効果的な電子メール認証を維持するためには、SPFレコードを定期的にチェックし、最適化する必要がある。
  5. 以下の メール認証方法を、例えば DKIMやDMARCなどの追加のメール認証方法

簡単な答え: いいえ、1つのドメインに複数のSPFレコードを設定することはできません。複数のSPFレコードを設定すると、SPF PermErrorが発生し、メール認証が機能しなくなるため、配信エラーにつながります。

1つのドメインに複数のSPFレコードを設定しても問題ないのでしょうか?メールの配信率を維持するために知っておくべきことをご紹介します。 SPFレコードはメール認証に不可欠ですが、複数設定すると、かえって配信率を低下させる可能性があります。

複数のSPFレコードを持つことは、ドメイン所有者が遭遇する最も一般的なSPFエラーの1つです。これはSPFを完全に無効にし、SPF PermErrorを引き起こす可能性があります。なぜこのようなことが起こるのかを理解するためには、SPFがどのように機能し、なぜ複数のSPFレコードを持つことで認証に問題が生じるのかを知る必要があります。 

*プロのアドバイス: ドメインレコードのチェックを ドメインレコードチェック して、SPFレコードの設定に誤りがないか確認しましょう。

なぜPowerDMARCなのか?

  • PermErrorを回避するためのSPFの自動フラット化
  • エンタープライズセキュリティにおいてSOC2およびISO 27001の認証を取得
  • 世界有数のブランドから信頼されています
  • 24時間365日体制の専門サポート

SPFレコードの機能

センダー・ポリシー・フレームワーク SPFは、ドメインに代わってメールを送信することが許可されているすべての送信元をリストアップすることで機能する、一般的なメール認証プロトコルです。

ある SPFチェックの際、受信側のMTAはDNSクエリ(DNSルックアップ)を実行し、SPFレコードに記載されたIPアドレスのリストと照合することで、メールのReturn-pathアドレスを検証します。一致するものがあればメールはSPFを通過し、一致しなければSPFに失敗します。

したがって、SPFの設定とは、単に 「v=spf1」で始まる構文の を公開するだけです。

PowerDMARCでSPFレコードを簡素化!

複数のSPFレコードの神話

SPFレコードを別々に追加することを勧めるサービスもあるかもしれませんが、実際にはドメインが持つことができるSPFレコードは1つだけです。これは、SPF標準(RFC 4408)は複数持つことを固く禁じているからである。

SPFチェック中、複数のレコードに遭遇すると "PermError "が発生し、受信サーバーを混乱させる。

受信側のMTAが電子メールのSPF認証を開始すると、「v=spf1」で始まるすべてのDNS TXTレコードを取得します。送信ドメインに対してSPFが設定されておらず、 DNS内にSPFレコードが見つからない場合 「None」という結果が返されます。逆に、同じドメインに対して「v=spf1」で始まる複数のSPFレコードが存在することが判明した場合、 SPF PermError という結果が返されます。 

複数のSPFレコードの問題点 

SPFレコードを複数使用したり、単に1つのドメインに複数のSPFレコードを持つことは、次のような深刻な結果をもたらす可能性があります:

  • 迷惑メールフォルダにメールが届く
  • メールが完全に拒否される

これは非常によくある問題だ。いくつかの ドメイン分析レポートPowerDMARCのいくつかのドメイン分析レポートによると、ドメイン所有者が犯す最も一般的な間違いの一つは、ドメインごとに1つ以上のSPFレコードを持っていることです。この間違いは、誤ったSPF設定をする主な原因の一つとなっています。

複数のSPFレコードの例

以下は、同じドメインに対して複数の別々のSPFレコードを発行した例である。 

避けるべきSPFレコードのよくある間違い:

レコードの種類ドメイン名レコード価値TTL
TXTexampledomain.comv=spf1 include:_spf.zoho.com -allデフォルト
TXTexampledomain.comv=spf1 include:_spf.google.com -allデフォルト

この例では、ドメイン「exampledomain.com」に対して、2つの別々のSPF DNS TXTレコードがドメインのDNSに公開されています。この場合、 SPF認証は失敗し し、ドメインに対して恒久的なエラー結果が返されます。これらの各レコードは個別のレコードとして扱われるため、同一ドメイン上に複数のSPFレコードが存在することになります。

SPFレコードを正しく組み合わせる方法:

レコードの種類ドメイン名レコード価値TTL
TXTexampledomain.comv=spf1 include:_spf.zoho.com include:_spf.google.com -allデフォルト

この例では、ドメインexampledomain.comは、複数のSPFレコードの代わりに単一のSPF DNS TXTレコードだけを持ちます。これはSPFの複数のインクルードメカニズムを一つのレコードに追加することで実現している。このレコードは有効であり、SPFはこの場合PermErrorの結果を返しません。

シナリオDNSレコード期待される成果
誤り:複数のSPFレコードv=spf1 を含む 2 つの別々の TXT レコードSPF PermError - 認証に失敗しました
正解:SPFレコードが1つ1つのTXTレコードに複数のインクルードを指定するSPF Pass - 認証に成功しました

*プロのアドバイス: その方法を学ぶ SPFレコードの最適化に関するベストプラクティス を正しく学び、将来的なSPFレコードのエラーを回避しましょう。

DNS内の複数のSPFレコードを特定する方法

複数のSPFレコードを設定する前に、まずご自身のドメインにこの問題があるかどうかを確認する必要があります。複数のSPFレコードがあるかどうかを確認する方法は以下の通りです:

オンラインSPFチェッカーの利用

最も簡単な方法は、PowerDMARCの無料SPFチェッカーツールを利用することです。ドメイン名を入力するだけで、複数のSPFレコードが存在するかどうかを即座に確認できます。

コマンドラインからのDNSクエリ

技術に詳しいユーザーの方は、コマンドラインツールをご利用いただけます:

  • Windows: nslookup -type=TXT yourdomain.com
  • Linux/Mac: dig TXT yourdomain.com

DNS管理コンソール

ご利用のDNSプロバイダー(Cloudflare、GoDaddy、Namecheapなど)にログインし、TXTレコードのセクションを確認してください。「v=spf1」で始まるエントリが複数あるか確認してください。

複数のSPFレコードの問題を解決するには? 

PowerDMARC を使用すると、複数の SPF レコードエラーを簡単に修正できます!以下の手順に従って、あなたのドメインに複数のSPFレコードを正しく設定してください: 

トラブルシューティングのチェックリスト:

  • DNSの反映を確認してください(24~48時間かかる場合があります)
  • 複数のDNSチェッカーで変更内容をテストする
  • 変更後48時間はメールの配信状況を監視する
  • 今後の参考のために、すべての変更点を記録しておく

ステップ1:SPF複数レコードエラーの確認 

最初のステップはSPF複数レコードのチェックです。PowerDMARCに無料でサインアップし、SPFレコードジェネレーターツールを使用して、このエラーの存在を確認してください。

 

または、DNSでレコードを手動で検索することもできます。Cloudflare、CloudDNS、DNS Made Easy、NamecheapなどのDNSホスティングプロバイダを使用している場合、プロセスは各プロバイダで同じではありません。しかし、通常の一般的な手順は、DNS管理コンソールに入り、DNSゾーンエディタにアクセスし、ドメインの管理をクリックします。ドメインのDNSゾーンでSPFのDNSレコードを見つけることができます。 

ステップ2:単一ドメインの複数のSPFレコードを削除する

ドメインに複数のSPFレコードがある場合は、DNSレコードを編集し、1つを除くすべてのレコードを削除してください。ドメインごとにSPFレコードが1つになるようにしてください。

ステップ3:SPFレコードを組み合わせる 

最後に、残りの1つのSPFレコードを編集して、複数のインクルードを結合する。これは、エラーを修正すると同時に、複数のSPFレコードを1つのレコードに含めることができる簡単な方法です。 

  1. DNS管理コンソールに入る 
  2. SPFレコードを編集する 
  3. 構文では、SPFの "include "メカニズムを使用して、認証したい複数のドメインを含める。以下は、SPFレコードを1つにまとめる例である:

同じSPFレコードにさらに「include」を追加して、すべてのサードパーティ・サービスを認証することができます。完了したら、DNSにレコードを保存してください。 

注: 施行ポリシー(-all)の代わりに(~all)を設定することで、SPF失敗時により寛大で柔軟なアプローチをとることができる。 

1つのSPFレコードで複数のメール送信者を適切に認証する方法

1つのドメインに対して複数のメールプロバイダーを利用する場合、複数のSPFレコードを個別に設定するのは SPFを設定する 設定する上での誤った方法です。代わりに、次のように設定してください:

1.PowerDMARC は、あなたのドメインに複数の SPF レコードを簡単に追加することができます。SPF レコード生成ツールを使用して、無料でレコードを作成してください。

 

2. 「このドメインに代わってメールを送信するドメインまたはサードパーティサービスを承認する」というラベルの付いたフィールドに、承認したいすべてのサードパーティベンダーを入力してください。これは、 SPFレコードを統合するための重要な手順です。

3.生成されたSPFレコードをコピーし、DNSに貼り付けます。レコードを保存します。 

複数のSPFインクルードの使用に伴う制限とリスク

SPF SPF include を複数回含めることは、必ずしも適切なアプローチとは限りません。このようにSPFレコードを結合することで「SPFレコードが複数存在します」というエラーは解消できますが、他のエラーを引き起こす可能性があります。すべてのメールサービスプロバイダーは、SPF認証の際にDNSルックアップを追加します。SPFレコードに複数のincludeが含まれていると、それだけ多くのルックアップが発生することになります。しかし、RFCではSPFの最大ルックアップ制限を10回と規定しています。 

また、SPF10ルックアップの制限を超えると、SPF PermErrorが返され、SPFが破損することがあります。

SPFのDNSルックアップ制限を10回以下に抑える: 

  1. SPFレコードを手動で平坦化することができます。しかし、インクルードメカニズムの背後にあるすべてのIPアドレスを手動で平坦化すると、レコードが長くなり、SPFの文字列制限を超える可能性があります。 
  2. または SPFマクロ.マクロは、ルックアップと文字数の制限を守るのに役立ちます。

複数のSPFレコードやその他のよくあるエラーを防ぐために、PowerDMARCの ホスト型SPF ソリューションをご利用ください。SPFレコードにマクロを組み込むことで、最適化され、常に最新の状態に保たれた、エラーのないSPF環境を確実に提供します。 

さらに、当社の DMARCアナライザー設定 設定を行う DMARC は、フィッシング攻撃、なりすまし、および ドメインの不正利用から保護するのに役立ちます。 

SPFレコードの管理に関するベストプラクティス

効果的なSPFレコードの管理を維持するために、以下の実践的なベストプラクティスに従ってください:

  • 定期的な監査: SPFレコードが最新の状態であることを確認するため、四半期ごとに確認してください
  • DNS 照会の監視: DNS 照会回数を把握し、10回という制限を超えないようにしてください
  • 変更履歴: SPFレコードの変更履歴を、日付と理由とともに記録する
  • 導入前のテスト: 本番環境へ移行する前に、必ずオンラインチェッカーを使用してSPFレコードの検証を行ってください
  • ネストしたインクルードは避ける: ルックアップ制限を超える可能性のある複雑なインクルードの連鎖を最小限に抑えてください
  • 自動化を活用する: 複雑な環境では、SPF管理の自動化ツールの導入を検討してください

よくある落とし穴とその避け方

メール認証に失敗する原因となる、よくあるSPFの設定ミスを避けましょう:

SPFに関するよくあるエラーと解決策

  • DNS ルックアップが 10 回を超えた場合: SPFのフラット化またはマクロを使用して、ルックアップ回数を減らす
  • 複数のTXTレコードの使用: すべてのSPFインクルードを1つのレコードに統合する
  • 構文エラー: 必ず「v=spf1」で始め、「all」メカニズムで終わるようにしてください
  • 文字数制限を超えています: SPFレコードは1行あたり255文字以内に収めてください
  • メール配信業者の選定: すべての正規のメール配信サービスを含める
  • 非推奨のレコードタイプの使用: SPFレコードタイプではなく、常にTXTレコードを使用してください

概要と今後の手順

メールの配信率を最適化するには、適切に設定されたSPFレコードを1つ用意することが不可欠です。本ガイドでは、エラーのないSPF設定を実現するために、複数のSPFレコードを1つに統合する方法について解説しました。SPFは優れた第一歩ですが、さらに強力な保護を実現するためには、DKIMやDMARCといった他のメール認証手法も検討することをお勧めします。 

メールインフラのセキュリティ対策を強化する準備はできましたか? 次にすべきことは以下の通りです:

「PowerDMARCの自動化ツールのおかげで、SPFの問題をたった1日で解決できました。」――FinTech Corp. ITディレクター

メールのセキュリティ管理を簡素化する、このようなドメインセキュリティソリューションについてさらに詳しく知りたい方は―― ぜひ

よくあるご質問

1つのドメインに複数のSPFレコードを設定することはできますか?

いいえ、1つのドメインに複数のSPFレコードを設定することはできません。複数のSPFレコードを設定すると、SPF PermErrorが発生し、メール認証が機能しなくなります。その代わりに、複数のincludeメカニズムを使用して、すべての承認済み送信者を1つのSPFレコードに統合してください。

1つのドメインのDNSには、SPFレコードをいくつ登録できますか?

ドメインのDNSには、SPFレコードを1つだけ設定する必要があります。SPF規格(RFC 4408)では、複数のSPFレコードの設定が明示的に禁止されています。複数のレコードが検出された場合、受信サーバーはPermErrorを返し、そのメールを拒否します。

SPFレコードが複数ある場合はどうなりますか?

複数のSPFレコードが存在する場合、受信メールサーバーはSPF検証中にPermErrorが発生します。これにより、メールの認証に失敗し、受信サーバーによってスパムとしてマークされたり、完全に拒否されたりする可能性があります。

複数のメールサービスを1つのSPFレコードにまとめるにはどうすればよいですか?

「include:」メカニズムを使用すると、複数のメールサービスを1つのSPFレコードに統合できます。例:「v=spf1 include:_spf.google.com include:mailgun.org include:_spf.salesforce.com ~all」。これにより、1つのレコードでこれら3つのサービスすべてを認証できます。

SPFで許可されるDNSルックアップの最大数はいくつですか?

SPFで許可されるDNSルックアップの最大回数は10回です。各「include:」の指定は1回のルックアップとしてカウントされます。この制限を超えると、SPF PermErrorが発生します。この制限内に収めるには、SPFのフラット化またはマクロを使用してください。