広告
広告
https://www.7key.jp/nw/technology/protocol/dns_rv.html#what
逆問合せとも呼ばれます。IPアドレスからドメイン名を調べることを指します。これとは逆にドメイン名からIPアドレスを調べることを正引き(標準問合せ)と言います。逆引きでは、ドメイン名空間の中で正引きとは違うスペースが使われることとなっていて、TLDがarpa、SLDがin-addrのドメインが逆引き用ドメインとして使われます(IPv4の場合)。以下はIPアドレス192.168.0.1を逆引きする際に使われるドメイン名スペースを表しています。
上図から解るように、逆引きで用いられるドメイン名はIPアドレスをオクテットごとに逆に配置されたものが使われます。
1.0.168.192.in-addr.arpa
つまり、逆引き用のネームサーバでは下記のようなリソースレコードを用いることとなります。
Owner | Type | Class | RData |
---|---|---|---|
1.0.168.192.in-addr.arpa | PTR | IN | www.7key.jp |
逆引きを行う場合、クライアントのリゾルバは質問に使うIPアドレスをDNSメッセージの回答部分に置き、質問部分は空の状態で問合せを行います。ネームサーバはこの問合せに対して未実装エラーを示すエラー応答か、質問部分にネームサーバの知っているドメイン名を記述した応答を返すこととなります。
https://www.7key.jp/nw/technology/protocol/dns_rv.html#classless
逆引きとはで説明をしました逆引き用ドメイン名スペースをを使った方法では、IPアドレスの各オクテットを分割することができません。192.168.0.0/24ゾーンにあるホストの逆引きはそのゾーンのオーソリティを持つネームサーバがサポートすることができますが、192.168.0.0/29ゾーンにあるホストのオーソリティは192.168.0.0/24ゾーンにあるネームサーバが持つこととなるからです。この問題を避けるための方法がRFC2317で紹介されています。
例えば、組織Aに対して192.168.0.0/25、組織Bに対して192.168.0.128/26、組織Cに対して192.168.0.192/26のIPアドレス空間を割り当てているとします。従来の方法では以下のように単一ゾーンを使用することとなり、権限が委譲されているとは言えません。
$ORIGIN 0.168.192.in-addr.arpa. ; 1 PTR host1.A.domain. 2 PTR host2.A.domain. 3 PTR host3.A.domain. ; 129 PTR host1.B.domain. 130 PTR host2.B.domain. 131 PTR host3.B.domain. ; 193 PTR host1.C.domain. 194 PTR host2.C.domain. 195 PTR host3.C.domain.
そのため、下記のようにサブドメインとCNAMEリソースレコードを使用して、見かけ上の権限委譲を行うこととなっています。
$ORIGIN 0.168.192.in-addr.arpa. @ IN SOA my-ns.my.domain. hostmaster.my.domain. (...) ; 0/25 NS ns.A.domain. 0/25 NS some.other.name.server. ; 1 CNAME 1.0/25.2.0.192.in-addr.arpa. 2 CNAME 2.0/25.2.0.192.in-addr.arpa. 3 CNAME 3.0/25.2.0.192.in-addr.arpa. ; 128/26 NS ns.B.domain. 128/26 NS some.other.name.server.too. ; 129 CNAME 129.128/26.2.0.192.in-addr.arpa. 130 CNAME 130.128/26.2.0.192.in-addr.arpa. 131 CNAME 131.128/26.2.0.192.in-addr.arpa. ; 192/26 NS ns.C.domain. 192/26 NS some.other.third.name.server. ; 193 CNAME 193.192/26.2.0.192.in-addr.arpa. 194 CNAME 194.192/26.2.0.192.in-addr.arpa. 195 CNAME 195.192/26.2.0.192.in-addr.arpa.
$ORIGIN 0/25.0.168.192.in-addr.arpa. @ IN SOA ns.A.domain. hostmaster.A.domain. (...) @ NS ns.A.domain. @ NS some.other.name.server. ; 1 PTR host1.A.domain. 2 PTR host2.A.domain. 3 PTR host3.A.domain.
この方法は、親ゾーンに対して256個のCNAMEリソースレコードを追加する必要があります。
RFC内で「ホスト名に使う文字列には、"/"の代わりにハイフンなどの控えめな文字を用いた方が好ましい」(We advise you not to be so pedantic, and to not precisely copy the above examples, e.g. substitute a more conservative character, such as hyphen, for "/".
)と記載されています。
https://www.7key.jp/nw/technology/protocol/dns_rv.html#supplement
ネームサーバは必ずしも逆引きをサポートする必要はありません。
広告