SMTPサーバ構築時に必要なDNS設定まとめ

SMTPサーバ構築時に必要なDNS設定

SMTPサーバ構築時に必要なDNS設定をまとめて解説

SMTPサーバを構築する際、多くの管理者はPostfixやEximなどのメールサーバソフトウェアの設定に注目します。

しかし実際にはDNS設定が正しく行われていなければ、メール送受信に様々な問題が発生します。

メールが届かない、迷惑メール扱いされる、受信拒否されるといった問題の多くはDNS設定が関係しています。

現在のメールシステムではSMTPとDNSは密接に連携しています。

本記事ではSMTPサーバ構築時に必要となるDNS設定をまとめて解説します。

なぜDNS設定が重要なのか

メール配送ではSMTPサーバだけでは動作しません。

送信先メールサーバの特定や送信元サーバの信頼性確認など、多くの場面でDNSが利用されています。

そのためDNS設定はメールサーバ構築の重要な要素です。

メール配送とDNSの関係

メール送信時には複数のDNS問い合わせが発生します。

メール送信
    ↓
MX問い合わせ
    ↓
Aレコード問い合わせ
    ↓
SMTP接続
    ↓
SPF確認
    ↓
DKIM確認

DNSが正しく設定されていないと配送に失敗する場合があります。

SMTPサーバ構築で必要なDNSレコード

代表的なDNSレコードは以下の通りです。

レコード用途
Aホスト名からIP取得
MXメールサーバ指定
PTR逆引きDNS
TXT(SPF)送信元認証
TXT(DKIM)公開鍵登録
TXT(DMARC)認証ポリシー

現在のメール運用ではこれらの設定が推奨されています。

Aレコード

まずメールサーバのホスト名を登録します。

例です。

mail.example.com.  IN A 203.0.113.10

SMTPサーバのIPアドレスを登録します。

Aレコードが必要な理由

MXレコードはホスト名を指定するため、対応するAレコードが必要です。

例えば以下です。

example.com.  IN MX 10 mail.example.com.

mail.example.comを解決するためAレコードが利用されます。

MXレコード

メール受信サーバを指定します。

最も重要なDNSレコードの一つです。

example.com.  IN MX 10 mail.example.com

メール配送時にSMTPサーバが参照します。

MXレコードの優先度

複数のメールサーバを設定できます。

example.com.  IN MX 10 mail1.example.com.

example.com.  IN MX 20 mail2.example.com.

数値が小さい方が優先されます。

PTRレコード

逆引きDNSを設定します。

メールサーバの信頼性確認に利用されます。

203.0.113.10
      ↓
mail.example.com

GmailやMicrosoft 365でも重要視されています。

PTRレコードの設定例

10 IN PTR mail.example.com.

逆引きゾーンへ登録します。

正引きと逆引きが一致することが重要です。

FCrDNSを成立させる

推奨される構成です。

mail.example.com
      ↓
203.0.113.10

正引きです。

203.0.113.10
      ↓
mail.example.com

逆引きです。

両方が一致する状態を維持します。

SPFレコード

送信元SMTPサーバを認証するための設定です。

TXTレコードとして登録します。

v=spf1 ip4:203.0.113.10 -all

なりすまし対策として重要です。

Google Workspace利用時の例

v=spf1 include:_spf.google.com ~all

GoogleのSMTPサーバを許可します。

Microsoft 365利用時の例

v=spf1 include:spf.protection.outlook.com -all

Microsoftの送信サーバを許可します。

DKIM公開鍵

メールへ電子署名を付与するための公開鍵です。

DNSのTXTレコードへ登録します。

mail._domainkey.example.com.

専用のホスト名を利用します。

DKIM登録例

mail._domainkey  IN TXT  "v=DKIM1;  k=rsa;  p=MIGfMA..."

受信側メールサーバが公開鍵を取得します。

DMARCレコード

SPFやDKIMの認証失敗時の動作を定義します。

TXTレコードとして登録します。

_dmarc.example.com

専用のホスト名を利用します。

DMARC設定例

v=DMARC1;  p=reject;  rua=mailto:dmarc@example.com

認証失敗メールを拒否する設定です。

メール配送時のDNS問い合わせ

実際には複数の問い合わせが行われます。

MX問い合わせ
      ↓
Aレコード問い合わせ
      ↓
SMTP接続
      ↓
PTR確認
      ↓
SPF確認
      ↓
DKIM確認
      ↓
DMARC判定

DNSがメール配送を支えていることが分かります。

確認コマンド一覧

MXレコード確認です。
$ dig MX example.com

Aレコード確認です。
$ dig A mail.example.com

逆引き確認です。
$ dig -x 203.0.113.10

SPF確認です。
$ dig TXT example.com

DKIM確認です。
$ dig TXT mail._domainkey.example.com

DMARC確認です。
$ dig TXT _dmarc.example.com

よくある設定ミス

  • MXレコード未設定
  • Aレコード未設定
  • PTRレコード未設定
  • SPF設定漏れ
  • DKIM公開鍵未登録
  • DMARC未設定

メールが届かない原因として非常に多く見られます。

メールサーバ構築後の確認項目

以下をチェックしましょう。

  • MX解決できるか
  • Aレコード解決できるか
  • 逆引きできるか
  • SPF認証成功するか
  • DKIM署名されるか
  • DMARC設定が存在するか

運用開始前の確認が重要です。

Gmail対策として重要な項目

Gmailへ確実に届けるためには以下が特に重要です。

  • PTRレコード
  • SPF
  • DKIM
  • DMARC

未設定の場合は到達率低下の原因になります。

実務で推奨される構成

mail.example.com
↓
Aレコード

example.com
↓
MXレコード

203.0.113.10
↓
PTRレコード

example.com
↓
SPF

mail._domainkey
↓
DKIM

_dmarc
↓
DMARC

現在の標準的なメールサーバ構成です。

まとめ

SMTPサーバ構築ではAレコード、MXレコード、PTRレコード、SPF、DKIM、DMARCの設定が重要です。

これらはメール配送や送信元認証、サーバ信頼性確認に利用されます。

DNS設定に不備があるとメールが届かない、迷惑メール扱いになるなどの問題が発生します。

メールサーバ構築時にはDNS設定を総合的に確認し、安全で信頼性の高いメール環境を構築しましょう。