Spfレコードの上限10回の対応に関して

初めて質問させて頂きます。弊社のドメインでは複数のメール送信プラットフォームを利用しているため、DNSルックアップ回数がすでに10回に到達していて、新たなメール送信サービスが追加できない状況です。具体的には下記の様なSPFレコードになっています(一部マスク)

v=spf1 a mx +ip4:22.◯.◯.◯.2/27 +ip4:21.◯.◯.◯.1/27 include:smp.ne.jp include:amazonses.com include:spf.tricorn.net include:_spf.salesforce.com include:_spf.google.com include:spf-bma.mpme.jp ~all

このような場合の回避策があれば教えてください。

ご質問ありがとうございます。SPFのDNSルックアップ10回制限に関する問題ですね。 この制限は多くの企業様が直面する非常にポピュラーな課題ですので、ここで共有いただけることを嬉しく思います。

お送りいただいたSPFレコードを拝見したところ、即座にルックアップ数を削減できる箇所が2点ございます。

1. 「a」および「mx」メカニズムの置換

現在、レコードの冒頭に amx が記述されていますが、これらで計2回分のルックアップを消費しています。 これらを削除し、実際に解決される IPアドレス(ip4 または ip6)での記述に変更することを推奨します。

  • 理由: amx は、メールを送るたびにDNSへ「このドメインのIPは何ですか?」と問い合わせを発生させます。しかし、自社サーバーのIPアドレスは通常固定されているため、都度問い合わせる必要はありません。

  • 方法: dig コマンドや nslookup で現在の amx のIPアドレスを確認し、それを ip4:xxx.xxx.xxx.xxx の形式で直接記述してください。

2. 今後の拡張を見据えたアドバイス

上記の修正でルックアップ数は 10回から8回 に減り、新しいサービスの追加が可能になります。しかし、今後さらにサービスが増える場合は、以下の検討も必要になるかもしれません。

  • サブドメインの活用: サービスごとに news.example.comsupport.example.com のようにサブドメインを分け、それぞれのサブドメインでSPFレコードを管理する。

  • 不要な記述の整理: include している各サービスが、現在も本当に利用されているか定期的に棚卸しを行う。

運用上の注意点

IPアドレスを直接記述(ハードコーディング)する場合、自社サーバーのIPアドレスが変更になった際にSPFレコードも手動で更新する必要があります。その点だけ運用フローに含めておくと安心です。

最後に

dmarcianではSPF Surveyorというフリーのオンランツールをご用意しています。ルックアップ数を視覚化して複雑なIncludeなどをビジュアル化することができるので、どのIncludeが何回のルックアップを消費しているか詳細に確認できます。ぜひご活用ください。

この修正で無事に新しいサービスが追加できることを願っております!