BINDマスターDNS+α設定方法
1.今回の設定の概要
今回はspispi.comというドメイン名を作り、IPアドレスとして192.168.4.140、192.168.4.141、192.168.4.143を用意し、それぞれに
192.168.4.140 ⇔ dns.spispi.com
192.168.4.141 ⇔ www.spispi.com
192.168.4.143 ⇔ ftp.spispi.com
という名前解決をする。ネットワークはクライアント機を一台含め、計4台の閉じられたネットワークとする。そのネットワーク構成を図1として載せる。
図1 ネットワーク構成
実際にBINDで名前解決の設定をしても、この名前を使ってhttp://www.spispi.com/のようにアクセスするには、WEBサーバを立てる必要がある。しかし、名前解決ができているかどうかだけを調べるだけならnslookupやpingコマンドでも調べる事ができるため、ここではまずBINDの設定を完成させる。
2.BINDの初期設定
BINDがインストールされていれば、/etcディレクトリにnamed.confというファイルがある。ネットワーク管理者はこのファイルに、ドメイン名の設定とゾーンファイルの場所の指定を記述していく。次に挙げるのがnamed.confの中身である。
named.conf(初期設定) |
|
@
A
B |
// generated by
named-bootconf.pl controls { zone "." IN { zone "localhost" IN { zone
"0.0.127.in-addr.arpa" IN { include
"/etc/rndc.key"; |
@
inetで指定するIPアドレスを持つPCからリモート操作できるようにする。現在の設定ではローカルからしかアクセスできない。リモート操作ができてはまずいので、この記述がベスト。デフォルトではこの設定になるので書かなくてもよい。
A
allow-updateはこのファイルを書きかえられる権限を指定する。noneにすればローカル以外は書き換える事ができず、安全である。
B
ファイルの内容をここで展開させている。rndc.keyはランダムキーファイルである。
named.confによって指定のドメイン名、もしくはIPアドレスが来た時、指定のファイルに送る仕組みになっている。"localhost"を探すアクセスが来た時に飛ぶ先であるlocalhost.zoneファイルの中身は次の通りである。
localhost.zone(初期設定) |
|
$TTL 86400 @ 1D IN SOA @
root (
1D IN NS @ |
"127.0.0.XXX"のアクセスが来た時に飛ぶnamed.localファイルの中身は次の通りである。
named.local(初期設定) |
|
|
$TTL 86400 @ IN SOA localhost. root.localhost. ( 1997022700 ; Serial IN NS localhost. |
以上の設定は、最低限の安全な設定がされており、雛形である。ネットワーク管理者はこの雛形にzoneファイルの記述を書き加え、DNS設定を増やしていく事になる。設定を始める前に、このファイルのバックアップを取っておいて、万が一きちんと動かなくなった時でも復旧できるようにしておく。
3.BIND本設定
DNSの設定をnamed.confに書き加えていく。
・
ゾーンファイルのある場所を/etc/bindとする。
・
ヒントファイルをnamed.rootとする。
・
ループバックファイル名を127.0.0とする。これはlocalhostでアクセスする時に必要。
・
spispi.comドメインの正引きファイル名をspispi.comとする。
・
spispi.comドメインの逆引きファイル名を192.168.4とする。
■ファイルの中身
ルートファイルであるnamed.confの中身は次の通りである。
named.conf |
|
|
options { zone "." { |
@
zoneファイルを格納するディレクトリを指定
A
“.”は、全てのドメインを指している。下の行に記述しているドメインにヒットするものがなければここに来る事になる。
B
hintタイプのファイルである事を指定。
C
named.rootの中身については、世界共通の設定である。named.confの中に目的のドメイン名を見つけられなかった場合、comドメインやjpドメインなどの最上位のドメインを管理するDNSサーバに飛ぶ必要がある。そのための場所(IPアドレス)が書かれたファイルである。ごくたまに更新されるため時々更新日をチェックして、新しいもので上書きする。最新版はftp://rs.internic.net/domain/named.rootにある。
D
ループバックファイルのルートドメインを指定。IPアドレスを逆に書く部分に注意。127.0.0.xxx/8のセグメントの名前解決要請が来た時にここに飛んでくるという記述。
E
masterタイプは、プライマリタイプでありセカンダリ(スレーブ)ではないという事を表している。
F
ループバックファイル名を指定している。このように、そのままの名前を付けると分かりやすい。
G
spispi.comドメインを名前解決要請が来た時にここに来る設定。spispi.comドメインの正引きゾーン。
H
masterタイプ。
I
spispi.com正引きファイルを指定。
J
spispi.com逆引きゾーン。192.168.4/22セグメントの名前解決要請が来た時に、ここが選択される。
K
masterタイプ。
L
spispi.com逆引きファイルを指定。
spispi.comの正引きファイル
spispi.com |
|
@ |
$TTL 86400 |
@
TTLとはキャッシュした情報の生存時間。短すぎてはいけない。
A
ORIGINとはこのゾーンが属するDNSの階層の事である。ルートドメインがORIGINの事である(ここではspispi.com)$ORIGIN(スペース)に続けて書く事でORIGINを任意に指定できる。すでにORIGINは”spispi.com”であるため、実際はここで指定する必要はない。
B
@はORIGINが入る。つまり、この行は「spispi.com IN
SOA dns.spispi.com. root.spispi.com. (」と読み替えられる。SOA(Start Of
Authorityの略)の後にはホスト名と管理者のメールアドレスを書く。root.spispi.com.のように、メールアドレスではあるが、”@”を”.”と書く点に注意。
C
シリアル番号。管理者が自由につけてよい。通し番号や日付など、更新した順に付ける場合が多い。
D
セカンダリサーバが、ゾーンデータの更新チェックをする間隔(単位:秒)。
E
プライマリサーバが応答しないときに再度参照する間隔(単位:秒)。
F
セカンダリサーバが、ここで設定した時間になってもプライマリサーバにアクセスできないとき、元の情報を破棄するまでの時間(単位:秒)。
G
キャッシュした情報の生存時間(TTL)のデフォルト値(単位:秒)。
H
NSはName Serverの略。始めの空白は、Bで@を指定しているので省略できる。空白には@が入ると見なせばよい。spispi.comのネームサーバはdns.spispi.comである事を表している。ドメイン名をそのまま指定するときは最後にピリオドを打つ必要がある。
I
AはAddressの略で、ホスト名に対応したIPアドレスを設定する。spispi.comを192.168.4.140に変換する。
J
MXはMail eXchange の略。spispi.comのメールの転送先を指定。
K
英単語にピリオドが付いていない場合は、その後にORIGINを付け加えて解釈する。この場合、dns.spispi.comとなる。dns.spispi.comを192.168.4.140に変換する。
L
www.spispi.comを192.168.4.141に変換する。
M
ftp.spispi.comを192.168.4.143に変換する。
N
CNAME
はCanonical Name(基準名)の略で、ホストに対して別名を設定する。root.spispi.comはwww.spispi.comの別名である事を指定している。192.168.4.140に変換する。
spispi.comの逆引きファイル
192.168.4 |
|
|
$TTL 86400 |
@
@は4.168.192.in-addr.arpaである(named.confを参照)。
A
以下4行はこういう記述でもOK。(H=1時間、W=1週間、D=1日、M=1分)
B
192.168.4のセグメントのDNSサーバはdns.spispi.comである事を表す。
C
PTRはPointer(C言語のポインタ)の略で、IPアドレスに対応したホスト名を設定する。はじめの”140”はピリオドが付いていないのでORIGINが後ろに付く。つまり140.4.168.192.in-addr.arpa。192.168.4.140をdns.spispi.comに変換する。
D
192.168.4.141をwww.spispi.comに変換する。
E
192.168.4.143をftp.spispi.comに変換する。
ループバックファイル
127.0.0 |
|
|
$TTL 86400
IN NS dns.spispi.com. |
@
@は0.0.127.in-addr.arpaを指している。
A
0.0.127.in-addr.arpaのネームサーバはdns.spispi.comである事を表す。
B
127.0.0.1をlocalhostに変換する。
4.BINDの起動
BINDの起動はコマンド”service named start”によって行なわれる。サービスを止める時は”service
named stop”、サービスを再起動する時は”service named restart”コマンドを使用する。
5.リゾルバの設定
リゾルバとは、ブラウザやnslookupなどでホスト名を付けずにアクセスした時、自動的にホスト名を付けてアクセスする機能の事である。
/etc/resolv.confを編集する。
search localdomain |
などと書かれている行があるので「localdomain」を「yahoo.co.jp」に書き換えると、
# nslookup >www |
と指定しただけで、
>www |
と、www以下に「.yahoo.co.jp」を付けて検索してくれるようになる。
また、ブラウザで「http://www」でアクセスしてみてもよい。yahooのサイトに飛ぶ事が確認できるだろう。