2022年8月、ホームページを全面リニューアルしました! 情報を分かりやすくお伝えできるサイト作りを目指してまいります。

間違いやすいBINDの逆引き設定!

DNSの設定は、かなり奥が深い。正引きの設定は意外に問題なく設定できる。さらに、ほとんどの場合、正引き設定がうまく設定できていれば、BINDはエラーがでても、何もなかったように動いている(logを見れば解るが・・・・)。但し、BIND9では設定間違いの場合は起動しない。しかし、世の中のDNSサーバの設定を見ると逆引き設定が間違っている場合が多い。


1.ローカルアドレスでの逆引き設定

BINDの設定を公開している個人サイトは多いが、そのほとんどがローカルアドレス(192.168.0.0)のようなネットワークを想定して、設定方法を公開している。さらに、BINDに関する書籍に関しても、ほとんどがローカルアドレスのネットワークでBINDの設定の紹介をしている。これが、案外逆引き設定の混乱を招いている。逆引きとは、ご存じの通り、IPアドレスからホスト名を引く仕組みである。
さて、以下はローカルアドレスによるBIND8の”named.conf”の内容を以下に示す。

省略

zone “0.168.192.in-addr.arpa”{
type master;
file “named.rev”;
};

省略

こんな感じで、書く。
この意味は本来、これはマスターで192.168.0.0のゾーンが記述してある逆引きファイルは”named.rev”です。と表している。ローカルアドレスの場合、ネットワークアドレスが、192.168.0.0でブロードキャストアドレスが192.168.0.255であるから、それ以外のアドレスは自由に使える。
したがって、この場合の”named.rev”ファイルの内容は、以下のようになる。

;0.168.192.in-addr.arpa.
$TTL 86400
@ IN SOA michi.kozupon.com. root.michi.kozupon.com. (
                    2001062306 ; serial
                        28800 ; refresh
                        14400 ; retry
                       3600000 ; expire
                        86400 ; default_ttl
                        )
;
; Subnet
; Name Server
;
          IN    NS    michi.kozupon.com.

; Server Group

6         IN    PTR    michi.kozupon.com.
10       IN    PTR    hiro.kozupon.com.

このような感じになる。これは、クラスCのアドレス、192.168.0.0をネットワークアドレスとする192.168.0.255のブロードキャストアドレスまで256のIPアドレスを考えている。つまり、0と255が使えないので事実上254個のIPアドレスをホストアドレスとして割り当てることができる。と言うことは、逆引きゾーンが0.168.192.in-addr.arpaで、この設定ファイルの中ではホストが6と10が定義されている。
したがって、6.0.168.192.in-addr.arpa10.0.168.192.in-addr.arpaの2つゾーンの逆引きホストが定義されたわけである。

192.168.0.6はホストmichi.kozupon.comですよ!
192.168.0.10はホストhiro.kozupon.comですよ!

てな具合に逆引き設定された。これは、ごく当たり前に設定できる。

さて、ローカルアドレスの場合はこれで良いが、プロバイダが提供するグローバルアドレス場合はそう簡単にはいかない。


2.グローバルアドレスでの逆引き設定

プロバイダから、グローバルIPアドレスを例えば5個支給されたとしよう(5個という事はまず無いので例えである)。例えば、203.141.xxx.4~203.141.xxx.8迄支給された場合、”named.conf”は次のようになる。

省略

zone “4.xxx.141.203.in-addr.arpa”{
type master;
file “named.rev”;
};

省略

こんな感じで書く。
さらに、”named.rev”ファイルの設定は以下のようになる。

;4.xxx.141.203.in-addr.arpa.
$TTL 86400
@ IN SOA michi.kozupon.com. root.michi.kozupon.com. (
                    2001062306 ; serial
                        28800 ; refresh
                        14400 ; retry
                       3600000 ; expire
                        86400 ; default_ttl
                        )
;
; Subnet
; Name Server
;
          IN    NS    michi.kozupon.com.
          IN    NS    sec.hogehoge.com.

; Server Group

           IN    PTR    michi.kozupon.com.
6         IN    PTR    hiro.kozupon.com.
7         IN    PTR    server.kozupon.com.

このようになるが、ちょっとここで気になるのがこの場合の逆引きゾーンである。1項での設定を参照するとこの場合、ホストhiro.kozupon.com6.4.xxx.141.203.in-addr.arpaのようになり40ビットアドレスになってしまう。ありゃーこりゃおかしいぞ(笑)!
しかし、冷静に考えるとこう言うことである。先ほどプロバイダの場合、同じ203.141.xxxのゾーンでも「IPアドレスを切り売りしている。」と話した。したがって、ユーザーは支給されたのIPアドレスに対してのゾーン設定を行わなければならない。仮にxxx.141.203.in-addr.arpaでゾーン設定を行ってしまうとnamedが”out of zone(範囲外)”のエラーをはいてしまう(これは、切り売りされた他人のゾーンをおかしてしまうので危険だぞ!と言う意味)
実はこの場合、203.141.xxx.4はネットワークアドレスで203.141.xxx..8はブロードキャストアドレスなので使えるのは5~7までの3個のIPアドレスと言うことになる。つまり、6.5.xxx.141.203.in-addr.arpaの40ビットアドレスになったとしても、プロバイダ側ではちゃんと6.xxx.141.203.in-addr.arpaの32ビットアドレスに変換してくれる(^_^)。だから問題にならないのである。だから、このように、

203.141.xxx.5はホストmichi.kozupon.comですよ!
203.141.xxx.6はホストhiro.kozupon.comですよ!
203.141.xxx.7はホストserver.kozupon.comですよ!

とちゃんと逆引きされる。


3.自鯖野郎御用達フレッツ的IPアドレスの逆引き設定

さて、今度はもっとシビアな個人レベルでサーバが立てられるフレッツ的逆引き設定について考えてみよう!
ダイナミックDNS等は別にして、現在一部のプロバイダでは固定IPを1個割り当ててくれるところがある。この1個のグローバルIPアドレスを使った逆引き設定を紹介する。基本的には、プロバイダがIPを切り売りしているので2項と同じである。以下に、”named.conf”の内容を示す(IP一個の場合は、ネットワークアドレス、ブロードキャストアドレスも全てこの1個のIPで用を済ましてしまう)。

省略

zone “180.144.141.203.in-addr.arpa”{
type master;
file “named.rev”;
};

省略

となり、唯一のIPアドレスが逆引きゾーンとなる。さらに”named.rev”の設定を以下に示す。

;180.144.141.203.in-addr.arpa.
$TTL 86400
@ IN SOA michi.kozupon.com. root.michi.kozupon.com. (
                    2001062306 ; serial
                        28800 ; refresh
                        14400 ; retry
                       3600000 ; expire
                        86400 ; default_ttl
                        )
;
; Subnet
; Name Server
;
          IN    NS    sub2.kozupon.com.
          IN    NS    sec.hogehoge.com.

; Server Group

          IN    PTR    sub2.kozupon.com.

となり、180.144.141.203.in-addr.arpaで唯一のゾーンであるためこのような指定になる。
また、sub2.kozupon.comのDNSサーバのホストアドレスでもあるのでIN    PTR    sub2.kozupon.comとなる。

203.141.144.180はホストsub2.kozupon.comですよ!

と言うわけである。正引きの場合は、CNAME(alias)もそうですし、複数のホストに同じIPアドレスを割り当てられますが、逆引きの場合は、IPアドレス1個につき一つのホストしか割り当てられないことを理解しておくこと!

最後になるが、BINDのnamedはシンタックスエラー以外は何事もないように動作する。設定後、namedを再起動したときは、/var/log/messagesをチェックしてエラーがないか確認することが大切である。

以上

コメント