2026年5月24日
2026年5月24日
リバースDNS(PTRレコード)の設定方法|VPS・クラウド・自前ゾーン別の手順と確認
リバースDNS(逆引き)は、IPアドレスからホスト名を引くための仕組みで、PTRレコードで設定します。最初に押さえておきたいのは、PTRレコードを設定できるのは「ドメインの管理者」ではなく「IPアドレスの管理者」だという点です。VPSやクラウドならその事業者の管理画面かAPI、自社でIPブロックを持っているならそのDNSサーバーで設定します。この記事では、どこで設定するかの見分け方、環境別の手順、メールサーバーで求められる正引きとの一致、設定後の確認方法までを説明します。
PTRレコードの仕組み
正引きでは mail.example.com から 203.0.113.25 を引きますが、逆引きではその反対を行います。IPv4の場合、IPアドレスのオクテットを逆順に並べ、末尾に in-addr.arpa を付けた名前にPTRレコードを置きます。
25.113.0.203.in-addr.arpa. 3600 IN PTR mail.example.com.
IPv6では ip6.arpa の下に、アドレスを16進数1桁ずつ逆順に並べた名前を使います。
この in-addr.arpa のゾーンは、IPアドレスの割り当て経路に沿って委任されています。地域インターネットレジストリから事業者へ、事業者から利用者へ、という流れです。そのため、自分のドメインのDNS(お名前.com や Cloudflare などのDNS設定画面)にPTRレコードを書いても、逆引きには反映されません。ここが最もつまずきやすい点です。
逆引きが必要になる場面
- メールの送信:受信側の多くは、接続元IPに逆引きがあるか、そのホスト名を正引きすると同じIPに戻るかを確認します。Gmail の送信者向けガイドラインでも、送信元IPに有効な正引きと逆引きがあることが求められています。逆引きが無いと、拒否や迷惑メール扱いの原因になります。
- ログや監視の読みやすさ:traceroute やログに意味のあるホスト名が出るようになります。
- 一部のサービスの接続条件:接続元の逆引きを確認する運用のサービスもあります。
一般的なWebサイトの公開だけなら、逆引きが無くても通常は困りません。主な用途はメールサーバーです。
設定前に確認すること
現在の逆引きを調べる
dig -x 203.0.113.25 +short
# または
host 203.0.113.25
事業者が自動で付けたホスト名(IPを含む長い名前など)が返ることが多いはずです。何も返らなければ未設定です。
正引きを先に用意する
逆引きに設定するホスト名は、先に正引き(Aレコード、IPv6ならAAAAレコード)で同じIPを指すようにしておきます。事業者によっては、正引きが一致しないと逆引きの設定を受け付けません。
dig +short mail.example.com A
# 203.0.113.25 が返ることを確認
逆引きの権限がどこにあるか調べる
自分で設定できる場所が分からないときは、逆引きゾーンのNSを調べます。
dig +short NS 113.0.203.in-addr.arpa
事業者のネームサーバーが返れば、その事業者の管理画面やサポートで設定します。自社のネームサーバーが返れば、自分で設定できる状態です。
環境別の設定方法
VPS・レンタルサーバー
多くのVPSでは、管理画面のサーバー詳細やネットワーク設定に「逆引きホスト名」などの項目があり、そこにホスト名を入力して保存します。項目の名前や場所は事業者やプランで異なり、画面も変更されることがあります(2026年10月現在)。管理画面に項目が無い場合は、サポートへの申請で設定するサービスもあります。共有型のレンタルサーバーでは、IPを複数の利用者で共有しているため、利用者が逆引きを変更することは通常できません。
AWS(EC2 の Elastic IP)
AWS では、Elastic IP に逆引きを設定できます。コンソールの Elastic IP の画面から設定するほか、AWS CLI でも操作できます。
# Elastic IP にリバースDNSを設定する例
aws ec2 modify-address-attribute \
--allocation-id eipalloc-0123456789abcdef0 \
--domain-name mail.example.com
# 設定状況の確認
aws ec2 describe-addresses-attribute \
--allocation-ids eipalloc-0123456789abcdef0 \
--attribute domain-name
正引きのAレコードが、その Elastic IP を指していることが前提です。また、EC2 では外向きの25番ポートに既定で制限がかかっており、メールを直接送る場合は別途解除の申請が必要です。手順や条件は変わることがあるため、AWS の公式ドキュメントで確認してください。Google Cloud や Azure でも、それぞれ外部IPに逆引きを設定する方法が用意されていますが、操作方法や外向き25番ポートの扱いは事業者ごとに異なります。
自社でIPブロックを持っている場合
/24 単位で逆引きゾーンが委任されていれば、BIND などで通常のゾーンと同じように逆引きゾーンを作ります。
; /etc/bind/db.203.0.113 の例
$TTL 3600
@ IN SOA ns1.example.com. hostmaster.example.com. (
2026101801 ; serial
3600 ; refresh
900 ; retry
1209600 ; expire
3600 ) ; minimum
IN NS ns1.example.com.
IN NS ns2.example.com.
25 IN PTR mail.example.com.
26 IN PTR www.example.com.
// named.conf 側の定義例
zone "113.0.203.in-addr.arpa" {
type master;
file "/etc/bind/db.203.0.113";
};
設定を変える前にゾーンファイルをバックアップし、named-checkzone 113.0.203.in-addr.arpa /etc/bind/db.203.0.113 で文法を確認してから読み込み直します。変更のたびにSOAのシリアル番号を増やすことも忘れないでください。セカンダリが更新を取りに来なくなります。
/24 より小さい範囲(例えば /28)しか割り当てられていない場合は、RFC 2317 の方式(CNAME を使ったクラスレス委任)を事業者と調整して使います。この形は事業者側の設定が前提なので、自分だけでは完結しません。
メールサーバーで合わせておく設定
逆引きを設定したら、メールサーバーが名乗る名前も揃えます。受信側は「接続元IPの逆引き」「その名前の正引き」「HELO(EHLO)で名乗ったホスト名」を見比べることがあります。
Postfix なら、/etc/postfix/main.cf の myhostname を逆引きのホスト名に合わせます。
myhostname = mail.example.com
sudo postfix check
sudo systemctl reload postfix
1台のサーバーで複数のドメインのメールを送る場合でも、逆引きは1つのIPにつき1つのホスト名にするのが一般的です。送信ドメインごとの正当性は、逆引きではなく SPF・DKIM・DMARC で示します。
設定後の確認
反映を確かめるときは、キャッシュの影響を避けるため、逆引きゾーンの権威サーバーに直接問い合わせると確実性が増します。
# 権威サーバーに直接問い合わせる
dig -x 203.0.113.25 @ns1.example.com +short
# 正引きと逆引きが一致しているか(FCrDNS)を確認
name=$(dig -x 203.0.113.25 +short)
dig +short "$name" A
2つ目の結果が元のIPと一致すれば、正引きと逆引きが揃った状態です。権威サーバーでは正しいのに一般のリゾルバーで古い値が返る場合は、以前のTTLが切れるのを待ちます。事業者の管理画面で設定した場合も、反映まで時間がかかることがあります。
うまくいかないときは、次の順に確認します。
- 設定した場所が、逆引きゾーンの委任先と一致しているか(自分のドメインのDNSに書いていないか)
- ホスト名の正引きが同じIPを指しているか
- 自前ゾーンなら、シリアル番号を上げて読み込み直したか、
named-checkzoneでエラーが無いか - 事業者の画面で、IPv4とIPv6を取り違えていないか
まとめ
- PTRレコードはIPアドレスの管理者が設定するもので、自分のドメインのDNSに書いても逆引きには効かない
- 設定前に正引きを用意し、
dig +short NSで逆引きゾーンの委任先を確かめる - VPSやクラウドは管理画面かAPI、自社ブロックはBINDなどの逆引きゾーンで設定する
- メールサーバーでは逆引き・正引き・HELO名を揃え、ドメインの正当性は SPF・DKIM・DMARC で示す
- 反映確認は権威サーバーへの直接問い合わせと、正引きとの一致チェックで行う