|
|
自宅内DNSサーバーの構築
|
DNSサーバーの構築hostsファイルの設定BINDについて(〜9.3.x)BINDについて(9.7.x〜)named.confの設定(〜9.3.x)named.confの設定(9.7.x〜)ゾーンファイルの書式ゾーンファイルの省略方法既存のゾーンファイル(〜9.3.x)既存のゾーンファイル(9.7.x〜)正引きゾーンファイルの作成逆引きゾーンファイルの作成設定ファイルの書式チェックnamedの起動とコントロールnamedの動作確認ルーターとホストの設定DNSSECについて |
既存のゾーンファイルの内容(〜9.3.x)では、現在構築の サーバー システム用のゾーンファイルの記述の前に、 WBEL や CentOS の BIND で予め準備されている デフォルト のゾーンファイルの説明をしましょう。 ファイルは、 "/var/named/(WBEL3,CentOS3)" 、 "/var/named/chroot/var/named/(WBEL4,CentOS4,CentOS5)" にありますが、一般の ユーザーアカウント ではこれらを見ることができません。 root アカウントで ログイン してからご覧ください。 デフォルトのゾーンファイルはほぼ完全に省略された記述ですので、省略形に慣れていないと内容を読み取るのは難しいかもしれません。
もちろん、
また、これからご覧頂くデフォルトのゾーンファイルは、基本的に設定内容を変更する必要はありません。 ところがどういうわけかWBEL3,CentOS3,WBEL4,CentOS4では一部のゾーンファイルに「明らかな記述間違い」があります。 その間違いは些細なものですので、そのまま使用しても大きな問題はないと考えられますが、やはりきちんと修正して使用すべきですので、面倒でもご一読ください。 以下のパートのタイトル番号は、ブートファイル "/etc/named.conf" の該当する記述部分と同じにしていますので、照合して参照してください。 3."named.ca"〜ルートサーバーの設定
ルートサーバー
に問い合わせを行うためのゾーンファイルです。対応するブートファイルの記述は
デフォルト の内容は以下のとおりです。
デフォルトの"named.ca" 内容の詳細な説明は割愛しますが、このゾーンファイルの中身は要するにルートサーバーの所在地の一覧で、 named はこの一覧を元に適宜ルートサーバーへの問い合わせを行うわけです。 ルートサーバーは現在13台が利用可能ですが、namedはその中から接続可能な(つまり込み合っていない)ルートサーバーに接続し、任意の ドメイン名 の「権威ある DNS 情報」を持った DNSサーバー の所在地情報を得ることになります。 |
||||||||
| ルートサーバーの所在地については、それによって世の中のDNSサーバーがただちに影響をうけてしまうような大幅な変更が行われることはあり得ません。常識的に考えて。 |
named.caの内容は稀に変更になることがありますから、その場合は最新の内容に書き換えることになりますが、 「一刻も早く」 あるいは 「何が何でも」 書き換えなければならないということはありません。 先に説明したとおり、namedはnamed.caのリストの中から接続可能なルートサーバーを選んで接続しますから、一つや二つ接続できないルートサーバーがあっても大した問題にはならない、というのがその理由です。 DNSサーバーの解説書の中には、「時々named.caの最新情報を確認して、適宜修正すること。」のような記述が見られることがありますが。それはまず必要のない作業です。
なぜかというと、
構築中のLinuxサーバー
は、
WBEL
や
CentOS
の
アプリケーション
を
yum
ちなみに、named.caの最新情報は、named.caの中のコメント( 太字 で示す部分)にあるとおり、 4."localhost.zone"〜ローカルホスト(一般名)の設定 |
||||||||
対応するブートファイルの記述は
です。
|
「自分自身を示す普遍的な ホスト名 である"localhost"に対する IPアドレス は、 ループバックアドレス である"127.0.0.1"」 という 名前解決 を担うゾーンファイルです。
デフォルトの"localhost.zone" |
||||||||
|
|
また、ブートファイル上でのゾーン名は"localhost"
更に、NSレコード以下のゾーン名はすべて省略されていますが省略のルール
また、メールアドレスを記述すべきところで、末尾に
".(ピリオド)"
がないものは、後ろに".localhost."が補われます。
従って、このゾーンファイルの省略部分を補うと次のようになります。
省略部を補ったデフォルトの"localhost.zone" つまり、 1.ゾーン"localhost"に由来する FQDN は、 DNSサーバー "localhost"によって権威ある名前解決を受け、その管理者のメールアドレスは"root@localhost"である、というレポートを発信する SOAレコード 。 2.ゾーン"localhost"に由来するFQDNは、DNSサーバー"localhost"によって権威ある名前解決を受ける、という NSレコード 。 3.ホスト名"localhost"は、IPアドレス"127.0.0.1"へ名前解決される、という Aレコード 。
4.ホスト名"localhost"は、IPv6
の四つのレコードから構成されています。 通常"localhost"に対する正引きの名前解決は hostsファイル で行われますし、このゾーンファイルはあくまで「自分自身のためのもの」ですから、手を加える必要は特にありません。 |
||||||||
|
AAAAは"quad A「クワッドエー」"と読みます。
"::1"は、IPv6のループバックアドレスを示す"0:0:0:0:0:0:0:1"の省略形です。 |
詳細は割愛しますが、IPv6の場合はIPアドレスへの名前解決レコードとして、 AAAAレコード を宣言して設定します。 実際にはIPv6はまだ使用しませんのでこの部分の設定は当面必要はありませんが、わざわざ削除する必要はありませんのでそのまま残しておきましょう。 4'."localdomain.zone"〜ローカルホスト(DNS名)の設定 |
||||||||
対応するブートファイルの記述は
です。
|
「自分自身を示す DNS 名としての ホスト名 である"localhost.localdomain"に対する IPアドレス は、 ループバックアドレス である"127.0.0.1"」 という 名前解決 を担うゾーンファイルです。
デフォルトの"localdomain.zone"
このゾーンファイル中のTTLは、"$TTL"の値によりすべて86400秒(一日)が設定されていることになります
また、ブートファイル上でのゾーン名は"localdamain"
更に、NSレコードのゾーン名は省略されていますが、省略のルール
また、
FQDN
やメールアドレスを記述すべきところで、末尾に
".(ピリオド)"
がないものは、後ろに".localdamain."が補われます。
|
||||||||
|
|
従って、このゾーンファイルの省略部分を補うと次のようになります。
省略部を補ったデフォルトの"localdomain.zone" つまり、 1.ゾーン"localdomain"に由来する FQDN は、 DNSサーバー "localhost.localdomain"によって権威ある名前解決を受け、その管理者のメールアドレスは"root@localhost.localdomain"である、というレポートを発信する SOAレコード 。 2.ゾーン"localdomain"に由来するFQDNは、DNSサーバー"localhost.localdomain"によって権威ある名前解決を受ける、という NSレコード 。 3.ホスト名"localhost.localdomain"は、IPアドレス"127.0.0.1"へ名前解決される、という Aレコード 。 の三つのレコードから構成されています。 通常"localhost.localdomain"に対する正引きの名前解決は hostsファイル で行われますし、このゾーンファイルはあくまで「自分自身のためのもの」ですから、手を加える必要は特にありません。 5."named.local"〜ループバックアドレスの逆引きゾーンファイルの設定 |
||||||||
対応するブートファイルの記述は
です。
|
「自分自身を示す ループバックアドレス "127.0.0.1"の ホスト名 は"localhost"である、という逆引きの 名前解決 を担うゾーンファイルです。 |
||||||||
|
SOAレコードの各時間のパラメータの表記方法が「秒」になっていますが、別に深い意味があってそうなっているわけではなく、これを記述した人がたまたまそうしただけです。
UNIX 系の OS では珍しくない現象です。考えすぎないようにしましょう。 |
デフォルトの"named.local"
このゾーンファイル中のTTLは、"$TTL"の値によりすべて86400秒(一日)が設定されていることになります
また、ブートファイル上でのゾーン名は"0.0.127.in-addr.arpa"
更に、NSレコードのゾーン名は省略されていますが、省略のルール
また、IPアドレスを記述すべきところで、末尾に
".(ピリオド)"
がないものは、後ろに".0.0.127.in-addr.arpa."が補われます。
従って、このゾーンファイルの省略部分を補うと次のようになります。
省略部を補ったデフォルトの"named.local" つまり、 1.ゾーン"0.0.127.in-addr.arpa"、すなわち"127.0.0.0/24"の サブネット は、 DNSサーバー "localhost"によって権威ある名前解決を受け、その管理者のメールアドレスは"root@localhost"である、というレポートを発信する SOAレコード 。 2."127.0.0.0/24"の サブネット は、DNSサーバー"localhost"によって権威ある名前解決を受ける、という NSレコード 。 3.IPアドレス"127.0.0.1"は、ホスト名"localhost"へ名前解決される、という Aレコード 。 の三つのレコードから構成されています。 6."named.ip6.local"〜IPv6用ループバックアドレスの逆引きゾーンファイルの設定 |
||||||||
対応するブートファイルの記述は
です。
|
「自分自身を示すIPv6の ループバックアドレス "0:0:0:0:0:0:0:1"の ホスト名 は"localhost"である、という逆引きの 名前解決 を担うゾーンファイルです。
デフォルトの"named.ip6.local" 実は、このゾーンファイルの内容は、上の 5. で説明したループバックアドレスの逆引きゾーンファイルである "named.local" と 全く同じ です。 |
||||||||
|
|
ただ、ブートファイル上でのゾーン名が"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa"
更に、NSレコードのゾーン名は省略されていますが、省略のルール
また、IPアドレスを記述すべきところで、末尾に
".(ピリオド)"
がないものは、後ろに".0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa."が補われます。
IPv6の場合は、現在使われているIPv4のように、 ネットワーク部 と ホスト部 の境界が可変ではなく、 ネットワーククラス は一種類で、全128 ビット のうち上位64ビットがネットワーク部、下位64ビットがホスト部になっています。 しかしながらこのゾーンファイルでは124ビットまでがネットワーク部であるかのような設定がなされています。 これは現在の BIND に付加されているIPv6への対応が、まだ暫定的であるための措置ですが、事実上ただひとつのループバックアドレスに対して設定が行われているだけですから、実用上は何の問題もありません。 7.7'."named.zero""named.broadcast"〜誤った逆引きに対処するゾーンファイルの設定 |
||||||||
対応するブートファイルの記述は
です。
|
すべての IPアドレス の先頭である "0.0.0.0" と、末尾である "255.255.255.255" に対して、あり得ない逆引きの 名前解決 を named が自分自身でエラー処理し、外部への問い合わせを発生させないようにするゾーンファイルの設定となります。 "named.zero"と"named.broadcast"は全く同じ内容です。 以下に WBEL3 、 CentOS3 、WBEL4、CentOS4の "named.zero"と"named.broadcast"を示します。
デフォルトの"named.zero"と"named.broadcast"
このゾーンファイル中のTTLは、"$TTL"の値によりすべて86400秒(一日)が設定されていることになります
また、ブートファイル上でのゾーン名は、それぞれ"0.in-addr.arpa"と"255.in-addr.arpa"ですから
更に、NSレコードのゾーン名は省略されていますが、省略のルール
さて、このゾーンファイルには 明らかな誤りがある ことがお解かりでしょうか。 もしも、このゾーンファイルの省略部分をルール通り補うと、"named.zero"の場合は次のようになります。
省略部を補ったデフォルトままの"named.zero" もうお解かりの通り、"0.localhost(255.localhost)"などという DNSサーバー などあり得ませんから、このままではこれらのゾーンファイルは全く機能しません。
そこで、
nano
エディタで
"/var/named/named.zero"
と
"/var/named/named.broadcast"
を、いずれも次のように書き換えて保存してください。
↓
修正した"named.zero"と"named.broadcast" |
||||||||
| これらの「誤った逆引きに対するnamedでの処理」は後から「できればあったほうがいい設定」という形で付け加えられたものですから、結構安易に作られてしまったのかもしれません。 |
想像ですが、これは"named.zero"と"named.broadcast"を最初に記述した担当者が、本来は ループバックアドレス に対する逆引きのゾーンファイル "named.local" からPTRレコードを削除して作製すべきところを、間違って正引きのゾーンファイルである "localdomain.zone" からAレコードを削除して作成してしまったものだと思われます。 |
||||||||
|
DNSサーバーの構築に、
とても役に立った一冊です ↓ |
さて、これらのゾーンファイルには、肝心のPTRレコードが一つもありませんから、逆引きの名前解決の対象となる"0.in-addr.arpa"と"255.in-addr.arpa"の二つのゾーンについては 構築中のLinuxサーバー が自分自身のnamedでエラー処理を行い、他のDNSサーバーへの問い合わせを行いません。 あまりスマートは方法ではないかもしれませんし、ネットワーク負荷の軽減に対する貢献度は微々たるものかもしれませんが、これらはマナーとしてきちんと設定しておきましょう。 なお、CentOS5の BIND では"named.zero""named.broadcast"ともきちんと設定されていますので修正の必要はありません。
関連セクション・
固定IPでDNSサーバー構築
関連ページ・
名前解決とネームサーバー
|
|
|
ゾーンファイルの省略方法
<<Previous
|
Next>>
正引きゾーンファイルの作成
|
| このサイトは既に更新を終了していますが、今のところ店じまいの予定はありません。 リンクフリー ですので、趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。 |
| ”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。 |