ITインフラ技術の実験室ITインフラ技術の実験室Linuxを中心に、仮想化やネットワーク、Windowsまで、ITインフラ技術に関するノウハウを幅広く紹介します。rndc.key→bind9の設定ファイルは/etc/bindにあります。(当サイトで使用しているサーバ)では/dev/randomだと長時間かかるため/dev/urandomで代替します。rndc.conf→/etc/rndc.confが作成されました。rndc.conf→rndcはrootで動作するため権限を修正します。named.conf→コメントアウトされている部分の#を削除してnamed.confにコピーします。"/etc/bind/named.conf.local";→ピンク色の部分を追加しました。bind9の再起動を実施します。(当サイトで使用しているサーバ)の場合はここでbinaryファイル(/usr/sbin/named)の入れ替えが必要となります。その方法についてはOpenblocks600用bind9のbinary入れ替えにまとめていますので参考にしてみて下さい。ここでは起動に成功したものとして先に進みます。ピンク色の部分を追加して横線部分をrndc.keyファイルに切り出します。"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA";};→named.confからkey部分を切り出しました。次に、このファイルの権限を修正します。rndc.confはrndcコマンドが使用するため、rootのみが読める必要があります。bindしているため、ユーザbindにて動作します。running→動作確認OKここまでで、rndc.confの作成、named.confからrndc.keyの切り出し、起動確認まで終了しました。内部LANの端末は本サーバをDNSサーバとして設定するため、内部端末からのqueryに対して外部DNSに再帰問い合わせできるようにする必要があります。内部端末がwww.abc.jpのwebサイトを閲覧する際、1のwww.abc.jpの正引きのqueryに対して2~7の再帰問い合わせが実施されることになります。この動きを実現するためには以下の作業が必要になります。上記、2,3については別途zoneファイルの項で説明するので、まずはdb.rootの作成を行い、その後、常にdb.rootを最新状態に保つためのcron用のスクリプトを作成します。digのインストールルートゾーンファイルを作成する際に使用するdigをインストールします。found→digが入っていません(digはdnsutilsのパッケージに含まれています。/etc/bind/db.root→ルートゾーンファイルが作成されました。ルートゾーン自動更新cronの作成こちらを参考にさせて頂きました。@198.41.0.4の実施結果が異なった場合はroot宛に差分のメールを送信し、bind9をrestartします。/var/mail/user001→差分がメールで飛んでいることを確認JPのネームサーバとセカンダリDNSの設定JPのネームサーバについて外部から本サイトへたどり着くためには、本サイトの上位のJPのネームサーバにて、本サイトのドメイン(example.jp)を管理するネームサーバのIPアドレス(本サイトの場合はWAN側グローバルIPアドレス)が登録されている必要があります。外部端末がwww.example.jpのwebサイトを閲覧する際、1~6の再帰問い合わせが実施されることになります。これを実現するには以下の2つの設定が必要となります。上記、2については後述します。上記、1については、ご自身のドメインを取得された事業者のwebサイトにて設定可能だと思われますので、設定して下さい。DNSサーバ障害時においても外部から名前解決が可能になります。DNSサーバとWWWサーバが同じ場合には効果が小さいので注意が必要です。Zone転送のためには以下が必要となります。上記、2については忘れがちなのでご注意下さい。上記3,4については後述します。上記1について、無料のセカンダリDNSサービスを紹介します。本サイトでも使用しています。前置きが長くなりましたが、ここからが本番です。これから解説していく設定の前提条件であるネットワーク構成を図示します。パターン1パターン1は内向け、外向けDNSサーバを一台で兼ねる構成です。パターン2パターン2は外部サーバ(DMZに設置)と内部サーバ(LAN内部に設置)に機能を分ける構成です。こちらについては複雑なため、内向けDNSサーバと外向けDNSサーバに役割を分割する設定に別途まとめています。named.confとnamed.conf.localの設定パターン1の図の通り、以下の条件で設定していきます。wanの設定に従って処理します。match-clientsにて送信元のアドレスを指定することでlanとwanを見分けています。anyにてその他のアドレスからの通信をマッチさせます。"lan"に関してはnamed.conf.localという別ファイルにまとめ、named.confからincludeします。"wan"に関してはnamed.confにそのまま定義しています。再帰的な問い合わせを受け付けるホストを指定する。ダンプファイル(現在のDBとキャッシュの内容)の出力先パスを指定する。dumpdbにて出力される。statsにて出力される。"/var/run/bind/run/named.pid";};rndcコマンドによる各種調査を実施した際のログ保存先を指定します。dump/→dumpや統計情報を保存するためのディレクトリを作成します。ステートメントが有効となることから、起動時のログはデフォルトの宛先に送られているためです。db.local※db.0とdb.255は0と255から始まるアドレスの逆引き設定で、ファイルには特に何も設定が無いため意味は無いですが、デフォルトのままのこしておくことにします。※マルチドメインの場合、二つ目のドメイン(example2.jp)については逆引き設定しないことにします(逆引きはローカルで使用しているだけなので問題ありません。querylog→querylogをonにします。running→ロギングがonになりました。デバッグレベル→デバッグレベルには0~99の整数を指定します。デバッグレベルが大きい(高い)ほど、表示されるメッセージが詳細になります。デバッグレベルを付加せずにtraceとだけすると、デバッグレベルが1段上がります。"default_debug"で指定したファイル名で出力されます。当サイトの設定の場合は「/var/cache/bind/named.run」になります。querylogのファイルの中身を確認してみます。1を投入して内部LANからnslookupしたところ、IPv6のエラーらしき結果が出ていました。named.conf.optionsでIPv6を無効にしているはずですが、効いていないように思われます。namedの起動スクリプトの中でオプションに-4を付けてみたところ回復しました。stats→/dump/named.statsに利用状況を表示します。cronで定期実行してmrtgなどでグラフ化すると有効です。dumpdb→/dump/namedにキャッシュされているメモリ内のデータを出力します。コメントをキャンセルメールアドレスが公開されることはありません。