ASHでは、技術評論社のSoftwareDesign誌の2001年7月号に、DNSの技術解説ページを執筆しましたが、内容に一部訂正と追加があります。
クラスC未満の逆引きに関しては、自ネットワークのDNSサーバには112h.241.18.211.in-addr.arpaのような非32ビットのアドレスを含むゾーンを定義し、241.18.211.in-addr.arpaゾーンを管理しているDNSサーバ(本文記事中の環境ではプロバイダ側のDNSサーバとなります)にて32ビットのアドレスの問い合わせを非32ビットに変換して名前解決を行っています。
この方法では、ルータやネットワークの障害などでプロバイダ側のDNSサーバにアクセスできない場合に、自ネットワーク内の名前解決が行えず、ネットワークのレスポンスが著しく低下する場合があります。
これを回避するには、クラスCの逆引きゾーンのゾーン転送をプロバイダに許可してもらうのがベストですが、セキュリティ上許可されない場合もあります。以下に、それぞれの場合における設定例を紹介します。
クラスCのゾーンのゾーン転送が可能な場合は、named.confにクラスCのゾーンのセカンダリ設定を行います。
# ash.jp(32bit rev) zone "241.18.211.in-addr.arpa" { |
本文記事中では、セカンダリ設定について詳しく触れられていませんでしたので、ここで説明します。
セカンダリ設定を行うには、zoneステートメント内でtypeを'slave'に設定し、mastersサブコマンドでそのゾーンのプライマリサーバのIPアドレスを指定します。
クラスCのゾーンのゾーン転送が不可能な場合は、named.confにクラスCのゾーンのプライマリ設定を行い、問い合わせ元を自ネットワーク内からのみに制限します。
本文記事中では、211.241.18.112.in-addr.arpaゾーンに対して$ORIGINで241.18.112.in-addr.arpaを指定していますが、これは誤りです。
(本文記事中のような設定を行うと、syslogにエラーが出力されそのレコードが無視されます)
# ash.jp(32bit rev) zone "241.18.211.in-addr.arpa" { |
ゾーンファイルでは、クラスCのネットワークに含まれる全てのホストに対して定義を行います。自ネットワーク以外のホストについては、ダミーのレコードを記述します。
そのゾーン内に正引きと逆引きのマッチングをチェックしているサイトにはアクセスできなくなりますが、そのようなサイトは非常に稀ですし、ネットワーク障害時に自ネットワークの名前解決が行えなくなるという事態を回避することを優先したいので、このように設定します。
;241.18.211.rev $ORIGIN 241.18.211.in-addr.arpa. $TTL 86400 @ IN SOA ns01.ash.jp. root.ash.jp. ( 2001050101 ; Serial 10800 ; Refresh after 3 hours 3600 ; Retry after 1 hour 604800 ; Expire after 1 week 86400 ) ; Minimum TTL of 1 day IN NS ns01.ash.jp. IN PTR ash.jp. ; 112h IN NS ns01.ash.jp. ; 113 IN CNAME 113.112h.241.18.211.in-addr.arpa. ・・・ 127 IN CNAME 127.112h.241.18.211.in-addr.arpa. ; 1 IN PTR dummy1.hoge.jp. ・・・ 111 IN PTR dummy111.hoge.jp. ; 128 IN PTR dummy128.hoge.jp. ・・・ 255 IN PTR dummy255.hoge.jp. |