DNSの逆引きとは、IPアドレスからホスト名を調べる仕組みです。
通常のDNS検索は、ドメイン名からIPアドレスを調べる「正引き」ですが、逆引きはその反対で、IPアドレスに対応するホスト名を返すために使われます。
逆引きでは主に PTRレコード を使用します。
IPv4では in-addr.arpa、IPv6では ip6.arpa という逆引き専用の領域で管理されます。
たとえば、IPアドレスが 203.0.113.10 で、対応するホスト名を mail.example.com にしたい場合、逆引きではこのIPアドレスに対して PTRレコード を設定します。
このときの関係は次のようになります。
mail.example.com → 203.0.113.10203.0.113.10 → mail.example.comIPv4の逆引きでは、IPアドレスを逆順にして in-addr.arpa を付けた名前空間で管理します。
そのため、203.0.113.10 の逆引きは、概念上 10.113.0.203.in-addr.arpa に対して設定することになります。
逆引きDNSは、通常のドメインDNS管理とは少し異なります。
AレコードやCNAMEのように、単純にドメイン側のDNS設定画面へ追加すればよいわけではありません。
重要なのは、そのIPアドレスの逆引きゾーンを管理している側がPTRレコードを設定するという点です。
そのため、設定方法は利用している環境によって変わります。
自社でIPアドレスブロックの逆引き委任を受けている場合は、自分で逆引きゾーンを作成し、その中にPTRレコードを設定します。
VPS、クラウド、レンタルサーバーなどで固定IPを使っている場合は、契約先の事業者が逆引き設定を管理していることが一般的です。
この場合は、事業者の管理画面やAPIからPTRを設定します。
つまり、正しい逆引きゾーンの管理権限がないまま、自分の通常のDNSゾーンにPTRを書いても、公開インターネット上の逆引きとしては機能しません。
逆引きを設定する前に、次の項目を確認しておくことが重要です。
逆引きDNSは、通常は固定IPに対して設定します。
特にメールサーバーの運用では、固定IPであることが前提になることが多いです。
PTRレコードには、mail.example.com のような完全修飾ドメイン名(FQDN)を指定します。
PTRで返すホスト名には、通常、その名前に対応する正引きのAレコードまたはAAAAレコードを用意します。
たとえば、
mail.example.com → 203.0.113.10という正引きが設定されていて、さらに
203.0.113.10 → mail.example.comという逆引きが設定されている状態が理想です。
DNSの仕様上、PTRの参照先に必ずAレコードがなければならないとまでは言えませんが、運用上は正引きもセットで整備するのが基本です。
特にメール用途では、正引きと逆引きの整合性が非常に重視されます。
逆引きDNSの設定は、環境が違っても大まかな流れは共通しています。
まず、PTRで返したいホスト名を決めます。
例
mail.example.comserver1.example.comPTRで返すホスト名に対して、AレコードまたはAAAAレコードを作成します。
例
mail.example.com → 203.0.113.10そのIPアドレスの逆引きゾーンを管理している側で、PTRレコードを登録します。
例
203.0.113.10 → mail.example.com設定後は、逆引きと正引きの両方を確認します。
この両方が一致していると、設定として分かりやすく、運用上も安定しやすくなります。
IPアドレスブロックの逆引き委任を受けている場合は、自分のDNSサーバーやDNSサービス上で逆引きゾーンを作成し、その中にPTRレコードを設定できます。
ここで注意したいのは、逆引きゾーンの委任管理と個別IPのPTR設定は別の話だという点です。
たとえば、自社があるIPv4ブロックの逆引き委任を受けていれば、その範囲の個別IPごとにPTRを設定できます。
AWSでは、通常 Elastic IP に対して逆引きを設定します。
対象のElastic IPに対して、管理画面から reverse DNS を設定できます。
一般的な流れは次の通りです。
mail.example.com などのAレコードをElastic IPへ向けるGoogle Cloudでは、Compute EngineのVMに対して公開PTRレコードを設定できます。
公開IPの逆引きは、主にVMやネットワーク設定側から行います。
なお、Google Cloud DNS には reverse lookup zone の機能もありますが、これは内部利用やプライベートDNSの逆引き文脈で使われるケースがあり、公開インターネット向けのPTR設定とは分けて考えるほうが分かりやすいです。
203.0.113.10mail.example.com → 203.0.113.10203.0.113.10 → mail.example.comこのように、正引きと逆引きが対応している構成は、メールサーバーでよく使われます。
社内ネットワークやVPC内では、公開DNSではなく、内部DNSで逆引きを管理することがあります。
この場合のホスト名は、組織の内部命名ルールに従って設計します。
公開DNSと内部DNSは役割が異なるため、社内用の逆引き設定と公開向けの逆引き設定は分けて考えることが大切です。
PTRレコードだけを設定しても、運用上は不十分になることがあります。
PTRで返すホスト名が正しくAレコードまたはAAAAレコードで解決できる状態にしておくことが重要です。
逆引きは、正しい逆引きゾーンで管理される必要があります。
通常のドメインDNS設定画面にPTRを書いても、対象IPの逆引きゾーンを管理していなければ、期待どおりには機能しません。
PTRレコードに設定するのはIPアドレスではなく、ホスト名です。
技術的に完全に不可能とは限りませんが、実務上は避けたほうが無難です。
特にメール用途では、1つのIPに対して1つの明確なホスト名を設定するほうが安定しやすいです。
設定後は、nslookup や dig で確認します。
nslookup 203.0.113.10
または
dig -x 203.0.113.10
nslookup mail.example.com
または
dig mail.example.com
期待する状態は次のとおりです。
dig -x 203.0.113.10 で mail.example.com が返るdig mail.example.com で 203.0.113.10 が返るこのように、逆引きと正引きの両方が整合していることを確認します。
IPv6の逆引きでは ip6.arpa を使用します。
IPv4より構造が複雑で、逆引き名も長くなりやすいため、手作業で扱うとミスが起きやすいです。
そのため、IPv6では特に、クラウドの管理画面やDNSサービスの逆引き機能を使って設定するほうが安全です。
また、IPv6でも考え方は同じで、PTRで返すホスト名と正引きの整合性を取ることが重要です。
逆引きDNSは、メールサーバー運用で特に重要です。
送信元IPに逆引きが設定されていなかったり、逆引きのホスト名と正引きが食い違っていたりすると、受信側の評価に影響することがあります。
ただし、逆引きDNSだけでメール到達性が保証されるわけではありません。
実際には、次のような設定もあわせて重要になります。
そのため、メール用途では逆引きDNSは重要な要素の一つとして考えるのが適切です。
DNSの逆引き設定では、次のポイントを押さえることが大切です。
逆引きDNSの設定方法は、自社で逆引きゾーンを管理しているのか、それともクラウドやVPS事業者の管理画面から設定するのかによって変わります。
以上、DNSの逆引きの設定方法についてでした。
最後までお読みいただき、ありがとうございました。