|
||
|
キャッシュサーバを構成する(DNSSEC非対応)DNSSEC非対応のキャッシュサーバを構成します。上位DNSに、ルータやFWなどDNSプロキシー機能をもつ機器を指定する場合、こちらの構成が多いでしょう。 これらのNW機器のDNS機能は、DNSSECに対応していない可能性が高いからです。 プロバイダのDNSを指定する場合は、DNSSEC対応とすると良いでしょう。 「キャッシュサーバを構成する(DNSSEC対応)」を参照してください。 1.DNSのインストール #yum install bind-chroot bind bind本体とbind-chroot環境をインストールします。 過去のバージョンではbind-chrootだけでbindが動作したものですが。 ここではbinr-chroot 9.9.4が入りました。 2.IPv6の問い合わせを無効にする。 環境によりますが、もしネットワーク内にIPv4クライアントしかなく、IPv4のネットワークしか使わない予定なら、DNSのIPv6問い合わせを無効にすることで、解決速度を高めることができます。 #vi /etc/sysconfig/named (追加) OPTIONS="-4" 3.起動 以下のコマンドで起動します。 #systemctl start named 正常に起動すると、/etc/rndc.keyというファイルが生成されます。 これはBINDの管理ツール rndc に必要なファイルです。 ※ちなみに正常に起動しない場合、なんらかの理由でrndc.keyファイルが生成されないためです。 その場合、messagesにrndc,confもしくはrndc.keyが存在しないというエラーメッセージが出力されます。 rndc.keyを手作業で生成したい場合は以下の手順で行います。 #rndc-confgen -a #chmod 640 /etc/rndc.key #chgrp named /etc/rndc.key 再度namedを起動してみます。 正常に起動できたら #rndc status で動作確認します。 4.コンフィグの調整 /etc/named.confを調整します。 コンフィグはバージョンによって動作が微妙に変わってくるのがクセものです。 これはBIND9.9.4(CentOS)ですから。 デフォルトのコンフィグに、赤色で追記します。 options { //DNSサービスを提供する自IPアドレスを追加 listen-on port 53 { 127.0.0.1; 192.168.1.10; }; //IPv6問い合わせを無効jにしたいので、コメントアウト //listen-on-v6 port 53 { ::1; }; directory "/var/named"; dump-file "/var/named/data/cache_dump.db"; statistics-file "/var/named/data/named_stats.txt"; memstatistics-file "/var/named/data/named_mem_stats.txt"; allow-query { localhost; }; //オープンリゾルバを意図的に禁止します //recursion yes; //「recursion yes」の代わりに名前解決を受け付けるクライアント範囲を指定 allow-recursion { 10.0.0.0/8; 192.168.1.0/24; }; //名前問い合わせに使用する上位DNSサーバ //forwardersが指定されていなければルートDNSを使用します forwarders { 10.1.1.10; 10.1.1.11; ] ; //上位DNSへの問い合わせ挙動を指定します forward only; //「forwarders only」 forwardersで指定した上位DNSが回答してくれなければ諦めます //「forwarders first」 forwardersで指定した上位DNSが回答してくれなければ // ルートDNSへ問い合わせます //DNSSECを無効にするため、noとします。 dnssec-enable no; // DNSSECを無効にするためnoとします。yesは正常動作しません。 dnssec-validation no; /* Path to ISC DLV key */ bindkeys-file "/etc/named.iscdlv.key"; managed-keys-directory "/var/named/dynamic"; pid-file "/run/named/named.pid"; session-keyfile "/run/named/session.key"; }; logging { channel default_debug { file "data/named.run" versions 10 size 10M; //10世代10MBまでログを保存 severity dynamic; print-time yes; //ログに時刻を出力 print-query yes; //名前解決を求めたクライアントアドレスを出力 }; category lame-servers { null; }; //名前解決エラーのログは出力しない //category queries { "default_debug"; }; クエリログを取得する場合はこちらを使用 }; zone "." IN { type hint; file "named.ca"; }; include "/etc/named.rfc1912.zones"; include "/etc/named.root.key"; 4.サービスの再起動 #rndc stop #systemctl start named パラメータの説明 dnssec-validation no dnssec-enableをnoとして、dnssec-validationをyesとすると、DNSSECの検証を行おうとするので、正常に動作しません。 かならず揃えてnoとします。 allow-query DNSのゾーンを有してないので、指定する必要はありません。 allow-recursion 誰からのDNS要求にも回答をするオープンリゾルバとならないよう、通常はクライアントのセグメントを制限します。 forwarders 問い合わせを転送する上位DNSサーバを指定します。 複数指定できます。 forward only | first onlyは、上位DNSサーバへ転送するだけです。そこで名前解決に失敗すると、問い合わせを諦めます。 DNSサーバが直接インターネットに通信できない場合は、onlyを指定します。 firstは、上位DNSサーバへ問い合わせを転送しますが、そこで名前解決に失敗すると今度はルートDNSサーバへ問い合わせを試みます。 より確実に問い合わせが成功しますが、存在しないドメイン名などを問い合わせた場合は、問い合わせ失敗までの時間が長くなります。 なにも指定しないと、firstが指定されたものとされます。 |
|