ゾーンデータファイルのチェックツール
named-checkzone
- チェックしたいゾーンのドメイン名とゾーンデータファイルの名称を指定
$ /usr/local/sbin/named-checkzone example.com. /var/named/example.com.zone
NSLINT
- ローカルにあるBIMDのゾーンデータファイルをチェックするツール
- ftp://ftp.ee.lbl.gov/ からnslint.tar.gzを入手
- インストール後nslintと入力すると/etc/named.confファイルから各ゾーンデータファイルの情報を取得し、それらの内容をチェックする
- BIMDが動作している必要はない
# nslint
***dnswalk
- 指定したゾーンデータをゾーン転送によって取得し、その内容をチェックするツール
http://sourceforge.net/projects/dnswalk/ から入手
$ ./dnswalk -Fl example.com.
ゾーンデータファイルの例
$TTLステートメントでデフォルトのTTLを指定し、起点ドメイン名(ownerに@を指定)に対してSOAレコードとNSレコードを指定する
起点ドメイン名に対して、MXレコードやAレコードは記述することができる
起点ドメイン名に対して、CNAMEレコードは記述できない
$TTL 86400 @ IN SOA ns1.example.com. admin.example.com. ( 2011011400 ;シリアル番号 28800 ;リフレッシュ間隔(秒) 7200 ;リトライ間隔(秒) 604800 ;ゾーンの有効期間(秒) 3600 ;ネガティブキャッシュの有効期間(秒) ) IN NS ns1 ;このゾーンのプライマリマスタ IN NS ns2 ;このゾーンのセカンダリマスタ IN MX 10 mx1 ;プライマリメールサーバ IN MX 20 mx2 ;セカンダリメールサーバ IN A 192.168.1.30 ;Webサーバのアドレス ns1 IN A 192.168.1.30 ns2 IN A 192.168.1.10 mx1 IN A 192.168.1.30 mx2 IN A 192.168.1.10 www IN CNAME example.com. ;Webサーバの別名
起点ドメイン名のAレコードとして、Webサーバのアドレス(192.168.1.30)をしていし、wwwを起点ドメイン名(example.com)の別名として指定している。
このようにしておくと、http://www.ecample.com/とhttp://example.com/のどちらでもWebサーバに接続することができる
リソースレコードを指定するときのチェックポイント
1.NSレコードで指定するネームサーバとMXレコードで指定するメールサーバの名称は別名ではなく正規名で指定する
【間違った設定】
@ IN NS ns1 ;ns1はseikimeiの別名 ns1 IN CNAME seikimei seikimei IN A 192.168.1.30
【正しい設定】
@ IN NS seikimei ;正規名であるseikimeiを指定 seikimei IN A 192.168.1.30
2.CNAMEレコードを連鎖させない
【間違った設定】
www IN CNAME foo ;fooはseikimeiの別名 foo IN CNAME seikimei seikimei IN A 192.168.1.30
【正しい設定】
www IN CNAME seikimei ;正規名であるseikimeiを指定 foo IN CNAME seikimei ;正規名であるseikimeiを指定 seikimei IN A 192.168.1.30
3.同じownerに対して、CNAMEレコードと他のリソースレコードを重複して記述しない
【間違った設定】
$ORIGIN example.com. @ IN NS ns1 IN CNAME www ;ownerがNSレコードと同じ www IN A 192.168.1.30
【正しい設定】
$ORIGIN example.com. @ IN NS ns1 www IN A 192.168.1.30 www IN CNAME exmple.com.
4.同一ドメインに対する親ゾーンと子ゾーンのNSレコードの内容を一致させる
サブドメインの管理をNSレコードによって他のいくつかのネームサーバに委任している場合は、子ゾーンでも、それらのネームサーバがそのゾーンを管理していることをNSレコードによって指定しなければならない。
これをしないと、親ゾーンから管理を委任されているネームサーバが、そのゾーンに対して権威を持っていない状態になってしまい、不要なトラフィックが生じたり、名前解決に失敗したりすることがある。
【親ゾーン(comゾーン)】
$ORIGIN com. example IN NS ns1.example.com. IN NS ns2.example.com. ;子ゾーンとNSレコードの内容が同じ
【子ゾーン(example.comゾーン)】
$ORIGIN example.com. @ IN NS ns1.example.com. IN NS ns2.example.com. ;親ゾーンとNSレコードの内容が同じ
5.FQDNで記述する場合は、最後に.(ピリオド)をつけることを忘れないようにする
- これを忘れるとwww.example.com.となるべきところが、www.example.com.example.com.のようになってしまう
代表的なリソースレコードの書式
SOAレコード
SOAレコードの書式
[owner] [ttl] [class] SOA [source-dname] [mbox] ( [serial] [refresh] [retry] [expire] [minimum] )
- owner
- ゾーンのドメイン名を指定
- 通常は@を指定、起点名が設定される
- source-dname
- ゾーンの権威を持っているプライマリマスタサーバのホスト名
- mbox
- ゾーンの管理者のメールアドレス
- メールアドレスの@を.(ピリオド)に変更する
- @の前に.がある場合には、\(バックスラッシュ)に変更する
admin@exmaple.comはadmin.example.comになる no001.admin@example.comはno001\.admin.example.comになる
- serial
- ゾーンデータのシリアル番号
- シリアル番号の形式はYYYYMMDDNN (YYYYは年、MMは月、DDは日、NNはその日のリビジョン番号)
- refresh
- プライマリマスタサーバのゾーンデータのシリアル番号をセカンダリマスタサーバがチェックする間隔
- retry
- セカンダリマスタサーバがゾーンデータのチェックに失敗した場合のリトライ間隔を秒単位で指定
- expire
- ゾーンデータの有効期間を秒単位で指定
- セカンダリマスタサーバがプライマリマスタサーバにこの期間アクセスできない場合は、ゾーンデータを無効にしなければならない
- minimum
- ネガティブキャッシュの有効期間を秒単位で指定
Aレコード
A(Address)レコードはホスト名に対応するIPアドレスを指定
CNAMEレコード
NSレコード
NSレコードの書式
[owner] [ttl] [class] NS [name-server-dname]
- owner
- ドメイン名
- name-server-dname
foo.example.com. IN NS ns.foo.example.com. ns.foo.example.com. IN A 192.168.10.10
リソースレコード
リソースレコードの基本的な形式
[owner] [ttl] [class] [type] [rdata]
- owner
- リソースレコードに関するホスト名などを指定
- 行の先頭にタブやスペースなどがあると、ownerを省略したことになり、直前のリソースレコードで指定したownerが設定される
- class
- ネットワーククラスを指定
- インターネットではIN
- 実際にはIN以外には使用されていない
- 省略した場合には、自動的にINが設定される
- type
- リソースレコードのタイプを指定する