MXレコードとは?SMTPとの関係

MXレコードとは?SMTPとの関係

MXレコードとSMTPの関係を理解してメール配送の仕組みを学ぼう

メールサーバを構築する際に必ず登場するDNSレコードがMXレコードです。

SMTPサーバはメールを配送する際にDNSへ問い合わせを行い、配送先ドメインのMXレコードを取得します。

そのためMXレコードが正しく設定されていないと、メールが届かなかったり配送遅延が発生したりする可能性があります。

メール配送の仕組みを理解するためには、SMTPとMXレコードの関係を理解することが重要です。

本記事ではMXレコードの役割や設定方法、SMTPとの関係について解説します。

MXレコードとは

MX(Mail Exchange)レコードとは、メールを受信するメールサーバを示すDNSレコードです。

メール配送時にSMTPサーバが参照する重要な情報になります。

DNSには様々なレコードがありますが、メール配送において最も重要なのがMXレコードです。

MXの意味

MXはMail Exchangeの略です。

直訳すると「メール交換サーバ」となります。

実際には「このドメイン宛のメールを受信するSMTPサーバ」を意味します。

なぜMXレコードが必要なのか

Webサーバの場合はAレコードを参照して接続できます。

しかしメールサーバではどのサーバがメールを受信するかを明示する必要があります。

そのためMXレコードが利用されます。

メール配送の流れ

SMTPサーバはメール配送時に以下の処理を行います。

user@example.com
      ↓
example.comを取得
      ↓
MXレコード問い合わせ
      ↓
メールサーバ取得
      ↓
SMTP接続
      ↓
メール配送

配送先サーバを特定するためにMXレコードが利用されます。

実際のMXレコード例

example.comのMXレコード例です。

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

この設定はmail.example.comがメール受信サーバであることを意味します。

MXレコードの構成

MXレコードは主に2つの要素で構成されます。

example.com. IN MX 10 mail.example.com.
項目意味
10優先度
mail.example.comメールサーバ名

優先度が小さいほど優先的に利用されます。

優先度(Preference)とは

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

数値が小さいほど優先度が高くなります。

例えば次のような設定です。

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

通常はmail1が利用されます。

冗長化構成とは

メールサーバ障害に備えて複数のMXレコードを登録できます。

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

mail1が停止した場合はmail2へ配送されます。

企業環境でよく利用される構成です。

SMTPサーバはどのようにMXを利用するのか

例えば以下のメールを送信するとします。

user@gmail.com

送信側SMTPサーバはgmail.comのMXレコードを検索します。

取得したメールサーバへSMTP接続を行います。

digコマンドで確認する

LinuxではdigコマンドでMXレコードを確認できます。

$ dig MX example.com

最もよく利用される確認方法です。

実行例

$ dig MX gmail.com

gmail.com. 300 IN MX 5 gmail-smtp-in.l.google.com.
gmail.com. 300 IN MX 10 alt1.gmail-smtp-in.l.google.com.

Gmailの受信メールサーバ一覧が表示されます。

nslookupで確認する

Windows環境ではnslookupも利用できます。

> nslookup -type=MX example.com

Windowsサーバ運用でよく利用されます。

hostコマンドで確認する

Linuxではhostコマンドも利用できます。

$ host -t MX example.com

簡単にMXレコードを確認できます。

MXレコードとAレコードの関係

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

そのため対応するAレコードが必要です。

例えば以下です。

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

mail.example.com. IN A 192.168.60.101

両方の設定が必要になります。

MXレコードへIPアドレスは指定できるか

MXレコードにはIPアドレスを直接指定できません。

必ずホスト名を指定します。

誤った例です。

example.com. IN MX 10 192.168.60.101

これは正しくありません。

MXレコードがない場合はどうなるか

RFCではMXレコードが存在しない場合、Aレコードを参照する仕組みがあります。

例えば以下です。

example.com. IN A 192.168.60.101

ただし実務ではMXレコードを設定することが推奨されています。

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

SMTPサーバは複数回DNS問い合わせを行います。

MX問い合わせ
      ↓
Aレコード問い合わせ
      ↓
SMTP接続

DNSとSMTPは密接に連携しています。

Google WorkspaceのMXレコード例

Google Workspaceでは複数のMXレコードを設定します。

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

冗長化された構成になっています。

Microsoft 365のMXレコード例

Microsoft 365でも専用のMXレコードを利用します。

example-com.mail.protection.outlook.com

Microsoftが提供するメールサーバへ配送されます。

よくある設定ミス

MXレコード設定では次のミスが発生しやすくなります。

  • Aレコード未設定
  • ホスト名間違い
  • 優先度設定ミス
  • 古いサーバ情報が残っている
  • DNS反映待ち

メールが届かない原因としてよく発生します。

メールが届かない時の確認項目

まず以下を確認しましょう。

$ dig MX example.com

次にメールサーバへ接続できるか確認します。
$ telnet mail.example.com 25

SMTP接続できれば設定は概ね正常です。

逆引きDNSとの関係

メール配送ではMXだけでなくPTRレコードも重要です。

逆引きDNSが設定されていない場合、迷惑メール判定されることがあります。

企業メールサーバでは設定が推奨されています。

実務でのメールサーバ構築例

一般的な構成例です。

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

mail.example.com. IN A 203.0.113.10

小規模なメールサーバではこの構成が基本となります。

まとめ

MXレコードはメールを受信するSMTPサーバを示すDNSレコードです。

SMTPサーバはメール配送時にMXレコードを参照し、配送先メールサーバを決定します。

メールシステムではAレコードやPTRレコードと合わせて重要な役割を担っています。

メールサーバ構築や障害調査を行う上で、MXレコードの仕組みは必ず理解しておきたい知識です。