逆引きの設定方法とは

松浦孝康(JPRS)
2003/9/10

 逆引きを設定する前に、DNSツリーにおける逆引きというゾーンがどのような位置にあるのかを知っておく必要があります。

 IPアドレスの表記は 202.11.16.1 のように、1オクテットごとに「.」(ピリオド)で区切られています。そこで逆引きでは、この1オクテットをDNSにおける1つのサブドメイン名とし、IPアドレスとは反対の順番に並べ(1.16.11.202)、先頭に逆引きのゾーンを表すサブドメイン名(in-addr.arpa)を付けて表記します。

リスト1:DNSにおける逆引きの表記とDNSツリー
IPアドレス 逆引きにおける表記
202.11.16.1 1.16.11.202.in-addr.arpa.


     

  このように逆引きは、見た目は反対に並べているように見えますが、DNSツリー的には上から順番にたどっていくことで、正引きと同じように名前解決をすることが可能になります。

 では実際にBINDにおける逆引きの設定方法について説明します。ここではプロバイダから202.11.16.0/24(202.11.16.0〜202.11.16.255)というIPアドレスが割り当てられたとします(*1)。named.conf にこのIPアドレスブロックを逆引き表記したゾーンを記述します。

*1) これよりも小さい(256個未満)IPアドレスブロックの逆引きの設定方法については別途説明します。

リスト2:DNSにおける逆引きの表記とDNSツリー
        :
zone "16.11.202.in-addr.arpa" ←逆引きの表記方法に従ったゾーンを記述する
          type master;
          file "202.11.16.rev";
←ゾーンファイル名を指定する
};
        :

 次に実際に逆引きを記述するゾーンファイルを作成します。ゾーンファイルの記述方法については、DNS Tips「登録したドメイン名を管理するネームサーバの作り方とは」の正引きのゾーンファイルと基本的に同じです。実際に設定した例は次のようになります。

リスト3:DNSにおける逆引きの表記とDNSツリー
$ORIGIN 16.11.202.in-addr.arpa.
; default TTL, see RFC2308
$TTL         3600   ; Default TTL
;
; @ entry, SOA, NS are here
;
@            IN       SOA      ns1.jprs.co.jp. postmaster.jprs.co.jp. (
              2003081900      ; Serial, YYYYMMDDVV (VV: version)
              3600            ; Refresh
              900             ; Retry
              604800          ; Expire
              86400           ; Negative cache TTL
)

              IN       NS      ns1.jprs.co.jp. ←逆引きの委任を受けたネームサーバ名を記述
              IN       NS      ns2.jprs.co.jp. ←逆引きの委任を受けたネームサーバ名を記述
;
1             IN       PTR      server1.jprs.co.jp.
2             IN       PTR      server2.jprs.co.jp.
: : : :

IPアドレスの
4オクテット目
クラス リソースレコード ホスト名
1 IN PTR server1.jprs.co.jp.

 ホスト名の部分で最後のピリオドを付けるのを忘れないでください。ピリオドを付け忘れると、$ORIGIN が付け加えられ、

server1.jprs.co.jp.16.11.202.in-addr.arpa.

 と設定されてしまいます。

 設定ファイルの準備が完了したらnamedを再起動させるか、rndcコマンドで設定ファイルの再読み込みを行います。無事namedが起動できたら確認をしましょう。

 digコマンドを使って逆引きを調べるときは、-x オプションを付けます。

リスト4:実行結果
        % dig @ns1.jprs.co.jp -x 202.11.16.1

; <<>> DiG 9.2.1 <<>> @ns1.jprs.co.jp -x 202.11.16.1
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 23823
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2


;; QUESTION SECTION:
;1.16.11.202.in-addr.arpa.      IN           PTR


;; ANSWER SECTION:
1.16.11.202.in-addr.arpa. 86400 IN      PTR server1.jprs.co.jp.


;; AUTHORITY SECTION:
16.11.202.in-addr.arpa.    86400      IN      NS ns1.jprs.co.jp.
16.11.202.in-addr.arpa.    86400      IN      NS ns2.jprs.co.jp.


;; ADDITIONAL SECTION:
ns1.jprs.co.jp. 86400      IN      A      61.120.151.70
ns2.jprs.co.jp. 86400      IN      A      61.120.151.71


;; Query time: 6 msec
;; SERVER: 61.120.151.70#53(ns1.jprs.co.jp)
;; WHEN: Tue Aug 19 10:29:14 2003
;; MSG SIZE rcvd: 14

 なお、-x を付けずに逆引きを調べるには query-type に ptr を指定し、IPアドレスを逆引きの表記方法にしたものを指定します。

リスト5:実行結果
        % dig @ns1.jprs.co.jp ptr 1.16.11.202.in-addr.arpa.

; <<>> DiG 9.2.1 <<>> @ns1.jprs.co.jp ptr 1.16.11.202.in-addr.arpa.
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 22635
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2


;; QUESTION SECTION:
;1.16.11.202.in-addr.arpa.       IN       PTR


;; ANSWER SECTION:
1.16.11.202.in-addr.arpa. 86400  IN      PTR server1.jprs.co.jp.


;; AUTHORITY SECTION:
16.11.202.in-addr.arpa.  86400    IN   NS ns2.jprs.co.jp.
16.11.202.in-addr.arpa.  86400    IN   NS ns1.jprs.co.jp.


;; ADDITIONAL SECTION:
ns1.jprs.co.jp.       86400       IN      A 61.120.151.70
ns2.jprs.co.jp.       86400       IN      A 61.120.151.71


;; Query time: 3 msec
;; SERVER: 61.120.151.70#53(ns1.jprs.co.jp)
;; WHEN: Tue Aug 19 10:29:35 2003
;; MSG SIZE rcvd: 142

DNS Tips Index

「Master of IP Network総合インデックス」


Master of IP Network フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Master of IP Network 記事ランキング

本日 月間