ASH | サーバ | セキュリティ | Linux | FreeBSD | DB | Web | CGI | Perl | Java | XML | プログラム | ネットワーク | 標準 | Tips集

DNSサーバ構築

追加情報

 ASHでは、技術評論社SoftwareDesign誌の2001年7月号に、DNSの技術解説ページを執筆しましたが、内容に一部訂正と追加があります。

クラスC未満の逆引きについて

 クラスC未満の逆引きに関しては、自ネットワークのDNSサーバには112h.241.18.211.in-addr.arpaのような非32ビットのアドレスを含むゾーンを定義し、241.18.211.in-addr.arpaゾーンを管理しているDNSサーバ(本文記事中の環境ではプロバイダ側のDNSサーバとなります)にて32ビットのアドレスの問い合わせを非32ビットに変換して名前解決を行っています。
 この方法では、ルータやネットワークの障害などでプロバイダ側のDNSサーバにアクセスできない場合に、自ネットワーク内の名前解決が行えず、ネットワークのレスポンスが著しく低下する場合があります。

 これを回避するには、クラスCの逆引きゾーンのゾーン転送をプロバイダに許可してもらうのがベストですが、セキュリティ上許可されない場合もあります。以下に、それぞれの場合における設定例を紹介します。

クラスCのゾーンのゾーン転送が可能な場合

 クラスCのゾーンのゾーン転送が可能な場合は、named.confにクラスCのゾーンのセカンダリ設定を行います。

named.conf追加内容
# ash.jp(32bit rev)
zone "241.18.211.in-addr.arpa" {
    type slave;
    file "bak/241.18.211.rev";
    masters {
        プロバイダ側のDNSサーバのアドレスを指定;
    };
    allow-transfer {
        127.0.0.1;
        192.168.0/24;
        211.18.241.112/28;
    };
};

セカンダリ設定について

 本文記事中では、セカンダリ設定について詳しく触れられていませんでしたので、ここで説明します。

 セカンダリ設定を行うには、zoneステートメント内でtypeを'slave'に設定し、mastersサブコマンドでそのゾーンのプライマリサーバのIPアドレスを指定します。

クラスCのゾーンのゾーン転送が不可能な場合

 クラスCのゾーンのゾーン転送が不可能な場合は、named.confにクラスCのゾーンのプライマリ設定を行い、問い合わせ元を自ネットワーク内からのみに制限します。
 本文記事中では、211.241.18.112.in-addr.arpaゾーンに対して$ORIGINで241.18.112.in-addr.arpaを指定していますが、これは誤りです。
 (本文記事中のような設定を行うと、syslogにエラーが出力されそのレコードが無視されます)

named.conf追加内容
# ash.jp(32bit rev)
zone "241.18.211.in-addr.arpa" {
    type master;
    file "241.18.211.rev";
    allow-query {
        127.0.0.1;
        192.168.0/24;
        211.18.241.112/28;
    };
    allow-transfer {
        127.0.0.1;
        192.168.0/24;
        211.18.241.112/28;
    };
};

 ゾーンファイルでは、クラスCのネットワークに含まれる全てのホストに対して定義を行います。自ネットワーク以外のホストについては、ダミーのレコードを記述します。
 
 そのゾーン内に正引きと逆引きのマッチングをチェックしているサイトにはアクセスできなくなりますが、そのようなサイトは非常に稀ですし、ネットワーク障害時に自ネットワークの名前解決が行えなくなるという事態を回避することを優先したいので、このように設定します。

クラス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.


Copyright (C)1995-2002 ASH multimedia lab.
mail : info@ash.jp