SOAレコード
$TTL 3600 e-garakuta.net. IN SOA ns1.e-garakuta.net. postmaster.e-garakuta.net. ( serial ;シリアル値 refresh ;リフレッシュ値 retry ;リトライ値 expire ;有効期限 minimumTTL) ;最小TTL
| 時間の設定 | 単位を省略すると時間は全て秒単位として設定される。単位(s,m,h,d,w)を設定することも可能。 | 
|---|---|
| $TTL | |
| serial | ゾーンのバージョン番号。順序をつけて保存する。ゾーン転送時に利用されるので厳密に管理する必要がある。一般にはYYYYMMDDNNという形式で記述することが多い。YYYYは西暦、MMは月、DDは日、NNはその日にゾーン情報を修正した回数。ゾーンを修正した場合は必ずこの値を増加させなければならない。 | 
| refresh | スレーブがゾーン情報の最新性を確認する時間 | 
| retry | refresh間隔でスレーブがマスタに接続できなかった場合(ゾーン更新に失敗した場合)にもう一度更新処理を行うまでの待ち時間 | 
| expire | スレーブがexpireで指定している時間を経過してもマスタに接続できない場合、スレーブはゾーン情報を無効にする。無効になったゾーン情報にクライアントがアクセスしても返答はない。refreshやretryよりも長く設定する。 | 
| minimumTTL | ネガティブキャッシュTTLのこと。 | 
ゾーンのデフォルトTTL設定方法がBIND 8.2で変更された。v8.2より古いBINDではSOAレコードの最後のフィールドでデフォルトTTLとネガティブキャッシュTTLを設定する。しかし、RFC2308でこのフィールドがネガティブキャッシュTTLのみに変更された。
v8.2以降のBINDでは$TTLステートメントを利用してデフォルトTTLを設定する。$TTLが設定されるとそれ以降のTTLが指定されていないレコードのTTL値が$TTLに設定される。
他のネームサーバーがTTLに設定された時間だけキャッシュできるようにするための値。
他のネームサーバがゾーンに関する否定応答をキャッシュしておく時間。否定応答とは、特定のドメイン名が存在しないや特定のドメイン名について検索された種類のデータが存在しないなどの応答のこと。
# wget ftp://ftp.isc.org/isc/bind9/9.3.1/bind-9.3.1.tar.gz # wget ftp://ftp.rs.internic.net/domain/named.root # tar -zxvf bind-9.3.1.tar.gz # cd bind-9.3.1 # ./configure # make # make install # cd ../ # groupadd named ←既に存在している場合あり # useradd -g named -d /var/named -s /bin/false named ←既に存在している場合あり # mkdir /var/named # mkdir /var/run/named # chown named.named /var/named /var/run/named # cp named.root /var/named/named.ca # /usr/local/sbin/named -u named &
設定ファイル
/etc/named.conf //はコメント行 /*〜*/までは複数コメント行 {};で1つのブロック aclはアクセス制御用ブロック 192.168.0.0/24; ←指定ネットワークからの問い合わせ許可 127.0.0.1; ←自身からの問い合わせ許可 optionsは各種設定をするブロック directory "/var/named"; pid-file "/var/run/named/named.pif"; sortlist { {192.168.0.0/24; 192.168.0.0/24;}; ←192.168.0.0/24からの問い合わせは 192.168.0.0/24のアドレスを優先して返す {192.168.10.0/24; 192.168.10.0/24;}; }; recursion yes; ←再帰問い合わせを有効にする max-ncache-ttl 300; ←ネガディブキャッシュの最大TTL max-cache-ttl 300; ←通常キャッシュの最大TTL lame-ttl 300; ←Lame情報の最大TTL loggingはロギング制御用ブロック channel "チャンネル名"{}; ←ログの出力方法 file "出力ファイル" versions 世代数 size サイズ; file syslog (facilityレベル); ←syslogに出力する severity デバッグレベル; ← print-time yes; ←ログに時刻を表示 print-severity yes; ←設定したレベルを表示 print-category yes; ←設定した種類を表示 category カテゴリ名 { "チャンネル名" }; ←出力ログの種類設定 zoneはゾーン指定用ブロック zone "<ゾーン名>" {};で記述する type master; file "<ゾーン名>.zone"; zone "." {};はキャッシュサーバ用ブロック type hint; file "named.ca";
ゾーンファイル名はnamed.confで指定した名称
ftp://ftp.rs.internic.net/domain/named.rootが本体なので ここから最新を取得する。たまに更新される。
/var/named/hogehoge.zone ←正引きゾーンファイル /var/named/hogehoge.rev ←逆引きゾーンファイル →これでもよい /var/named/0.168.192.in-addr.arpa /var/named/local.zone ←正引きローカルゾーン(必須) /var/named/local.rev ←逆引きローカルゾーン(必須) →これでもよい /var/named/0.0.127.in-addr-apra
$TTL 86400 ←必須
@            IN      SOA ns.hogehoge.jp. root.hogehoge.jp. (
                     2005072501 ; serial
                     3600       ; refresh
                     900        ; retry
                     604800     ; expire
                     86400      ; minimum
)
             IN      NS     ns.hogehoge.jp.
             IN      MX  10 ns  ←小さい方が優先度が高い
ns           IN      A      192.168.0.1
www          IN      CNAME  ns
change  3600 IN      A      192.168.0.20 ←これだけTTLが1時間
.rev
$TTL 86400
@            IN      SOA   ns.hogehoge.jp. root.hogehoge.jp.  (
                     2005072501 ; serial
                     3600       ; refresh
                     900        ; retry
                     604800     ; expire
                     3600       ; minimum
)
             IN      NS    ns.hogehoge.jp.
1            IN      PTR   ns.hogehoge.jp.
10           IN      PTR   mail.hogehoge.jp.
local.zone
ループバック用なので一度設定すれば以降変更する事はない。
$TTL 86400
@            IN      SOA localhost. root.localhost. (
                     2005072501 ; serial
                     28800      ; refresh
                     14400      ; retry
                     604800     ; expire
                     86400      ; minimum
)
             IN      NS   localhost.
             IN      A    127.0.0.1
local.rev
ループバック用なので一度設定すれば以降変更する事はない。
$TTL 86400
@            IN      SOA localhost. root.localhost. (
                     2005072501 ; serial
                     28800      ; refresh
                     14400      ; retry
                     604800     ; expire
                     86400      ; minimum
)
             IN      NS   localhost.
             IN      PTR  localhost.
ホスト名の最後に「.」を付け忘れない事
連番を発生させたい場合は$GENERATEと置き換える
 $GENERATE 20-100 $.0.168.192.in-addr.apra.とすると
 $の部分が連番に展開される
稼動プロセスが書き込まれる
ホストのDNSサーバ指定 domain <ドメイン名> nameserver 127.0.0.1
/usr/local/bin/dig @ <レコード> 正引き /usr/local/bin/dig @ -x 逆引き /usr/local/bin/dig @<マスタDNSサーバアドレス> <ドメイン名>axfr ゾーン転送
rndc はTCPで遠隔地のBINDサーバを管理するためのツール
# /usr/local/sbin/rndc-confgen > /etc/rndc.conf rndc.conf 後半のfollowing in named.conf から末尾までを named.confの先頭付近にコピーする コピー後コメントアウトを外してnamedデーモンを再起動する # /usr/local/sbin/rndc reload ←ゾーン再読み込みreloadを行う場合は時刻を正確にしておく事
DNSキャッシュの削除
DNS情報を変更してもTTLの関係でキャッシュが更新されない事がある
そんな時のflush君。
rndc flushただしこれ、参照元の大元DNS君から実施していかないとダメなのでよろしくネ。
named-checkconfはBINDの設定ファイル記述内容を確認するためのツール
named-checkconf named.conf ←named.confの確認 named-checkconf ドメイン名 ゾーンファイル名 ←ゾーンファイルの確認