2026年6月3日

2026年6月3日

DNSの逆引き(PTRレコード)を確認・設定する方法|dig・host・nslookup

DNSの逆引きは、IPアドレスからホスト名を調べる仕組みです。逆引きの情報はPTRレコードとして登録されています。メールサーバーを運用するときに、受信側が送信元IPの逆引きを確認するため、設定と確認の方法を知っておく必要があります。

この記事では、逆引きを調べるコマンド、結果の読み方、正引きとの一致の確かめ方、そして逆引きを設定する場所の見分け方を説明します。例のIPアドレスとドメインは、説明用に予約されている 203.0.113.0/24・2001:db8::/32・example.com を使います。

逆引きの仕組み

正引きは mail.example.com から 203.0.113.25 を引きますが、逆引きはその反対です。IPv4では、IPアドレスの4つの数字を逆順に並べ、末尾に in-addr.arpa を付けた名前にPTRレコードが置かれます。

203.0.113.25 の逆引き名
25.113.0.203.in-addr.arpa.  3600  IN  PTR  mail.example.com.

IPv6では、アドレスを省略せずに書いた16進数を1桁ずつ逆順に並べ、末尾に ip6.arpa を付けた名前を使います。

2001:db8::25 の逆引き名
5.2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa.

in-addr.arpa や ip6.arpa のゾーンは、IPアドレスの割り当てに沿って、地域インターネットレジストリから事業者へ、事業者から利用者へと委任されています。そのため、PTRレコードを設定できるのは、そのIPアドレスを管理している事業者(またはIPアドレスの割り当てを受けている組織)です。自分のドメインのDNS設定画面にPTRレコードを書いても、逆引きには反映されません。

自分のサーバーのIPアドレスを調べる

逆引きを確認したいサーバーのグローバルIPアドレスを調べます。

# IPv4
ip -4 addr show scope global

# IPv6
ip -6 addr show scope global

AWS の EC2 のように、サーバーにはプライベートIPだけが付いていて、外向きの通信は別のグローバルIP(Elastic IP など)で行う環境もあります。その場合は、事業者の管理画面で外向きのIPアドレスを確認します。メールで問題になるのは、相手から見える送信元のIPアドレスの逆引きです。

逆引きを調べるコマンド

dig

dig は -x を付けるとIPアドレスから逆引き名を組み立てて問い合わせます。Ubuntu・Debian では bind9-dnsutils(または dnsutils)、RHEL 系では bind-utils パッケージに含まれています。

# 結果のホスト名だけを表示
dig -x 203.0.113.25 +short

# IPv6
dig -x 2001:db8::25 +short

# 逆引き名を直接指定しても同じ
dig 25.113.0.203.in-addr.arpa PTR +short

+short を付けずに実行すると、応答の状態(status:)も見られます。

dig -x 203.0.113.25

host

host 203.0.113.25

逆引きが登録されていれば、次のように表示されます。

25.113.0.203.in-addr.arpa domain name pointer mail.example.com.

host にIPアドレスを渡すと自動で逆引きになります。host -t ptr 203.0.113.25.in-addr.arpa のように、IPアドレスを逆順にせずに in-addr.arpa を付けると別の名前を問い合わせることになり、正しい結果になりません。

nslookup(Windows・Linux)

nslookup 203.0.113.25

Windows の PowerShell では Resolve-DnsName も使えます。

Resolve-DnsName -Name 203.0.113.25 -Type PTR

結果の読み方

結果 意味
ホスト名が返る 逆引きが登録されている。事業者が自動で付けた、IPアドレスを含む長いホスト名のこともある
status: NXDOMAIN(host では「not found: 3(NXDOMAIN)」) その名前が存在しない。逆引きが未設定
status: NOERROR で回答が空 名前はあるがPTRレコードが無い。未設定とほぼ同じ扱い
status: SERVFAIL 逆引きゾーンの委任先のネームサーバーが応答しないなど、DNS側の問題。時間を置いて再確認し、続く場合は事業者に問い合わせる
ホスト名が複数返る 1つのIPに複数のPTRが登録されている。メールの送信元では1つにしておくのが一般的

逆引きを設定した直後に古い結果が返る場合は、手元のリゾルバーが以前の結果を保存している可能性があります。逆引きゾーンの権威サーバーに直接問い合わせると、キャッシュの影響を受けません。

# 逆引きゾーンのネームサーバーを調べる(/24 単位で委任されている場合)
dig +short NS 113.0.203.in-addr.arpa

# そのネームサーバーに直接問い合わせる
dig -x 203.0.113.25 @ネームサーバー名 +short

正引きと一致しているか確かめる

メールの受信側の多くは、逆引きで得たホスト名を正引きしたときに、元のIPアドレスに戻るかも確認します。この「逆引き→正引き」が一致する状態は FCrDNS(Forward-Confirmed reverse DNS)と呼ばれます。

ip=203.0.113.25
name=$(dig -x "$ip" +short | head -n 1)
echo "逆引き: $name"
dig +short "$name" A

最後のコマンドの結果に元のIPアドレス(ここでは 203.0.113.25)が含まれていれば一致しています。IPv6の場合は A を AAAA に変えて確認します。

逆引きを設定する場所

逆引きはIPアドレスの管理者が設定するため、設定する場所は環境で決まります。

環境 設定する場所
VPS・クラウド 事業者の管理画面の「逆引き」「リバースDNS」などの項目、または API。項目が無い場合はサポートに申請する事業者もある
共用のレンタルサーバー IPアドレスを複数の利用者で共有しているため、利用者は通常変更できない
自社でIPアドレスの割り当てを受けている 委任された逆引きゾーンを、自社のDNSサーバー(BIND など)で管理する

どこに設定すればよいか分からない場合は、上の dig +short NS で逆引きゾーンのネームサーバーを調べます。事業者のネームサーバーが返れば、その事業者の管理画面かサポートで設定します。

設定する前に、逆引きに登録するホスト名の正引き(Aレコード、IPv6ならAAAAレコード)を、自分のドメインのDNSで同じIPアドレスに向けておきます。事業者によっては、正引きが一致しないと逆引きの設定を受け付けません。環境ごとの具体的な手順は リバースDNS(PTRレコード)の設定方法 で説明しています。

/etc/hosts では逆引きは設定できない

サーバーの /etc/hosts にIPアドレスとホスト名を書いても、そのサーバーの中での名前解決が変わるだけです。DNSのPTRレコードは変わらないため、外部のメールサーバーから見た逆引きには影響しません。dig や host はDNSに直接問い合わせるので、/etc/hosts の内容は結果に出ません。

メールサーバーで合わせておくこと

逆引きを設定したら、メールサーバーが接続時に名乗るホスト名(HELO / EHLO)も逆引きのホスト名に揃えます。Postfix の場合は /etc/postfix/main.cf の myhostname で指定します。

myhostname = mail.example.com
sudo postfix check
sudo systemctl reload postfix

逆引きは「そのIPアドレスが誰のサーバーか」を示すものです。送信ドメインが正当であることは、SPF・DKIM・DMARC で示します。設定状況の確認方法は SPF・DKIM・DMARCの確認方法 を参考にしてください。

まとめ

  • 逆引きは dig -x IPアドレス +short、host IPアドレス、nslookup IPアドレス で調べます。in-addr.arpa の名前を自分で書く場合は、IPアドレスを逆順に並べます。
  • 結果が NXDOMAIN や空なら未設定です。設定直後は権威サーバーに直接問い合わせて確認します。
  • メールサーバーでは、逆引きのホスト名を正引きすると元のIPに戻ること(FCrDNS)を確認します。
  • PTRレコードはIPアドレスの管理者が設定します。自分のドメインのDNSや /etc/hosts に書いても逆引きにはなりません。

お気軽にご相談ください

お見積りへ お問い合わせへ
▲