MXレコードの仕組みを理解する|メール配送先が決まる流れを詳しく解説

MXレコードの仕組み

MXレコードの仕組みを理解する

メールシステムを運用する上で必ず理解しておきたいDNSレコードがMXレコードです。

WebサーバではAレコードが重要ですが、メールシステムではMXレコードが配送先を決定する重要な役割を担っています。

メールが届かない、メールサーバを移行した、Google WorkspaceやMicrosoft 365を導入したなどの場面では、必ずMXレコードが関係します。

本記事ではMXレコードの基本からメール配送の流れ、実務での設定例やトラブル事例まで解説します。

MXレコードとは

MX(Mail Exchange)レコードは、メール配送先サーバを指定するDNSレコードです。

送信サーバはメールを送る際にMXレコードを参照し、どのメールサーバへ配送するかを決定します。

例えば次のようなメールアドレスがあったとします。


user@example.com

送信サーバはexample.comのMXレコードを確認します。

メール配送の流れ

メール送信時の流れは次のようになります。


user@example.com
↓
example.com の MX確認
↓
mail.example.com
↓
Aレコード確認
↓
203.0.113.10
↓
SMTP接続
↓
メール配送

DNSが正常に動作しなければメール配送はできません。

MXレコードの基本書式

BINDのゾーンファイルでは次のように記述します。

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

各項目の意味は以下の通りです。

項目意味
example.com.対象ドメイン
MXメール交換レコード
10優先順位
mail.example.com.配送先メールサーバ

優先順位とは

MXレコードには優先順位があります。

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

example.com. IN MX 10 mail1.example.com.
example.com. IN MX 20 mail2.example.com.

通常はmail1へ配送されます。

mail1が停止している場合のみmail2が利用されます。

なぜ優先順位が必要なのか

メールシステムの冗長化のためです。


Primary Mail Server
↓
障害発生
↓
Secondary Mail Server

障害時でもメール受信を継続できます。

MXレコードだけでは動作しない

MXレコードにはホスト名しか登録されていません。

mail.example.com.

そのため送信サーバはさらにAレコードを参照します。

mail.example.com. IN A 203.0.113.10

IPアドレスを取得してSMTP接続します。

MXレコード確認方法

digコマンドで確認できます。

$ dig example.com MX

結果例です。
example.com. 3600 IN MX 10 mail.example.com.

nslookupで確認する

nslookup -type=mx example.com

Windows環境でも確認可能です。

MXレコードが無い場合

メール配送できなくなる場合があります。


ANSWER: 0

と表示されることがあります。

ただしRFC上はAレコードへ配送を試みる場合もあります。

メールサーバ移行時の流れ

例えばPostfixサーバからGoogle Workspaceへ移行するとします。

変更前です。
MX 10 mail.example.com.

変更後です。
MX 1 ASPMX.L.GOOGLE.COM.
MX 5 ALT1.ASPMX.L.GOOGLE.COM.

送信サーバはGoogleへ配送するようになります。

Google Workspaceで利用されるMX

代表的な設定です。


ASPMX.L.GOOGLE.COM.
ALT1.ASPMX.L.GOOGLE.COM.
ALT2.ASPMX.L.GOOGLE.COM.

Google公式が指定する値を利用します。

Microsoft 365の場合

Microsoftが指定するMXレコードを登録します。

テナントごとに異なる値になります。

よくある設定ミス① Aレコード未設定

MXレコードは存在しています。

MX 10 mail.example.com.

しかしmail.example.comのAレコードがありません。

メール配送は失敗します。

よくある設定ミス② IPアドレス指定

誤った設定です。

MX 10 203.0.113.10

MXレコードにはホスト名を指定します。

よくある設定ミス③ CNAME利用

RFC上推奨されません。

mail.example.com CNAME server.example.net.

MX先はAレコードまたはAAAAレコードを利用するのが基本です。

よくある設定ミス④ 優先順位逆転

MX 20 primary.example.com.
MX 10 backup.example.com.

意図しないサーバへ配送される場合があります。

TTLとの関係

MXレコードもTTLの影響を受けます。


example.com. 86400 IN MX

86400秒は24時間です。

変更後もしばらく旧メールサーバへ配送されることがあります。

メール障害時の確認手順


dig example.com MX
↓
dig mail.example.com A
↓
SMTP接続確認
↓
ログ確認

この順番で調査すると効率的です。

SMTP接続確認

$ telnet mail.example.com 25

または

$nc -zv mail.example.com 25

で確認できます。

実務で覚えておきたいポイント

  • MXレコードは配送先メールサーバを指定する
  • 数字が小さい方が優先される
  • MX先にはAレコードが必要
  • メールサーバ移行時はTTLに注意する
  • Google WorkspaceやMicrosoft 365でもMX設定が必要
  • メール障害時はまずMXレコードを確認する

まとめ

MXレコードはメール配送を支える最も重要なDNSレコードの一つです。

送信サーバはMXレコードを参照して配送先メールサーバを決定しており、設定ミスがあるとメールの送受信に大きな影響を与えます。

特にAレコードとの関係や優先順位、TTLの仕組みを理解しておくことが重要です。

メール障害が発生した際は、まずMXレコードを確認する習慣を身につけることで迅速な原因特定につながります。