逆引きの設定方法とはDNS Tips

逆引きにおけるゾーンがどのように構成されているかを説明した上で、逆引きの設定方法を紹介する。

» 2015年01月06日 18時00分 公開

 この記事では逆引きの設定方法を紹介するが、まずその前に、逆引きにおけるゾーンがどのように構成されているかを知っておく必要がある。なお、本説明ではIPv4のみを扱うものとする。

逆引きにおけるゾーンの構成

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

図1 DNSにおける逆引きの表記とDNSツリーの関係

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

BIND 9における逆引きの設定方法

 では実際に、BINDにおける逆引きの設定方法について説明する。ここではプロバイダーから「192.0.2.0/24(192.0.2.0〜192.0.2.255)」というIPアドレスブロックが割り当てられ、逆引きのゾーンを委任されたと仮定する(注1)。named.confファイルに、このIPアドレスブロックを逆引き表記したゾーンを記述する(リスト1)。

注1:これよりも小さいIPアドレスブロック(256個未満)の逆引きの設定方法については、DNS Tips「/24よりも小さいアドレスブロックの逆引きはどう設定するのですか?」で説明する。


zone "2.0.192.in-addr.arpa" { ←逆引きの表記方法に従ったゾーンを記述する

      type master;

      file "192.0.2.rev";     ←ゾーンファイル名を指定する

};

リスト1 named.confファイルの記述

 次に、実際に逆引きを記述するゾーンファイルを作成する。ゾーンファイルの記述方法については、他のDNS Tips「権威DNSサーバーの作り方を教えてください」(今後公開予定)で示される正引きのゾーンファイルと基本的に同じである。設定例をリスト2に示す。

$ORIGIN 2.0.192.in-addr.arpa.

; default TTL, see RFC 2308

$TTL         3600   ;  Default TTL

;

; @ entry, SOA, NS are here

;

@             IN       SOA    ns1.example.jp. postmaster.example.jp. (

              2014121001      ; Serial, YYYYMMDDVV (VV: version)

              3600            ; Refresh

              900             ; Retry

              3600000         ; Expire

              3600            ; Negative cache TTL

)

              IN       NS     ns1.example.jp. ←逆引きの委任を受けた権威DNSサーバーのホスト名を記述

              IN       NS     ns2.example.jp. ←逆引きの委任を受けた権威DNSサーバーのホスト名を記述

              IN       NS     ns3.example.jp. ←逆引きの委任を受けた権威DNSサーバーのホスト名を記述

;

100           IN       PTR    host1.example.jp.

リスト2 ゾーンファイルの記述例
レコードの内容 IPアドレスの4オクテット目 クラス リソースレコードの種類 ホスト名
100 IN PTR host1.example.jp.
表1 PTRレコード

 ホスト名の部分で、最後のピリオドを付けるのを忘れないこと。ピリオドを付け忘れると、$ORIGINで指定した内容が付け加えられ、以下のように設定されてしまう。

host1.example.jp.2.0.192.in-addr.arpa.

 named.confファイルとゾーンファイルの準備が完了したら、namedを再起動させるか、rndcコマンドで設定ファイルの再読み込みを行う。無事namedが起動できたら、digコマンドやdrillコマンドで確認を行う。

 digコマンドを使って権威DNSサーバーを直接調べるときは、“+norec”と“-x”オプションを付ける。“+norec”は非再帰検索(注2)を実行し、“-x”は、逆引き検索でIPアドレスを直接指定できるようにするためのオプションである(注3)

注2:キャッシュDNSサーバーが権威DNSサーバーに問い合わせるときに用いる。

注3:以降の例では権威DNSサーバーのホスト名として“localhost”を指定しているが、実際に使う場合には適切なものに変更すること。


dig +norec @localhost -x 192.0.2.100

 drillコマンドを使って逆引きを調べるときは、“-o rd”と“-x”オプションを付ける。

drill -o rd @localhost -x 192.0.2.100

 digコマンドを使った場合は、リスト3に示すような結果が得られる。

% dig +norec @localhost -x 192.0.2.100

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> +norec @localhost -x 192.0.2.100

; (2 servers found)

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54363

;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 0

;; QUESTION SECTION:

;100.2.0.192.in-addr.arpa.      IN      PTR

;; ANSWER SECTION:

100.2.0.192.in-addr.arpa. 3600  IN      PTR     host1.example.jp.

;; AUTHORITY SECTION:

2.0.192.in-addr.arpa.   3600    IN      NS      ns1.example.jp.

2.0.192.in-addr.arpa.   3600    IN      NS      ns2.example.jp.

2.0.192.in-addr.arpa.   3600    IN      NS      ns3.example.jp.

;; Query time: 0 msec

;; SERVER: ::1#53(::1)

;; WHEN: Wed Dec 10 21:37:25 2014

;; MSG SIZE rcvd: 126

リスト3 digコマンドの実行例

 digコマンド、drillコマンドで“-x”オプションを付けずに逆引きを調べるには、query-typeに“ptr”を指定し、IPアドレスを逆引きの表記方法にしたものを指定する。

% dig +norec @localhost ptr 100.2.0.192.in-addr.arpa.

; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.30.rc1.el6 <<>> +norec @localhost ptr 100.2.0.192.in-addr.arpa.

; (2 servers found)

;; global options: +cmd

;; Got answer:

;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10222

;; flags: qr aa; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 0

;; QUESTION SECTION:

;100.2.0.192.in-addr.arpa.      IN      PTR

;; ANSWER SECTION:

100.2.0.192.in-addr.arpa. 3600  IN      PTR     host1.example.jp.

;; AUTHORITY SECTION:

2.0.192.in-addr.arpa.   3600    IN      NS      ns3.example.jp.

2.0.192.in-addr.arpa.   3600    IN      NS      ns2.example.jp.

2.0.192.in-addr.arpa.   3600    IN      NS      ns1.example.jp.

;; Query time: 1 msec

;; SERVER: ::1#53(::1)

;; WHEN: Wed Dec 10 21:40:02 2014

;; MSG SIZE  rcvd: 126

リスト4 digコマンドの実行例

春名 光一(はるな こういち)

所属:株式会社日本レジストリサービス(JPRS) システム部

学生時代に、学内ネットワークの管理のサポートなどを行う。2006年にJPRS入社。データベースを中心にレジストリシステムや社内ネットワークの構築、運用に従事。

著書・執筆:2009年〜2010年「月刊ASCII.technologies」(アスキーメディアワークス)の連載記事「正しく学ぶDNS」の一部執筆を担当。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。