昔,自鯖のwebサーバ化 という記事でちらっと書いたが,改めて再インストールしたマシンに書こうとすると,書けなかったので,調べ直した.
named.conf
named.conf から include しているファイルの設定も含む.
記述箇所 | 項目 | tips とか |
---|---|---|
options | version |
named が返す version 情報を変更する場合に指定.教えたくない場合に書く. version 情報を調べ方は, # dig @localhost chaos txt version.bind localhost のトコは,調べたいサーバー名. |
allow-update | DNS の更新の許可をするか否か. 拒否したい場合は, ``allow-update {none;};`` |
|
zone | zone ファイルを指定. 順引きの場合 zone "domain.com" { type master; file "path"; // options に記述した directory からの相対 }; 逆引きの場合 zone "x.y.z.in-addr.arpa" { // リトルエンディアン的表記 type master; file "path"; }; |
zone ファイル (順引き)
記述箇所 | 項目 | tips とか |
---|---|---|
$ORIGIN | 記述対象のドメイン. 以降に,全く同じゾーン名を書く場合,@ と記述を略すことができる. また,ホスト名を記述する時に,host と記述した場合,host.$ORIGIN を意味する. $ORIGIN の末尾には . (ピリオド) を忘れないこと. |
|
$TTL | キャッシュの有効期限.このサーバーを参照する他のサーバーが,有効期限として活用する. DNS が死んでも,この時間くらいは保持してもらえるかも知れない. (後述の |
|
SOA レコード | (概略) | そのゾーンの記述のトップに書くレコード. 例はこんな感じ. @ IN SOA |
このゾーンのプライマリー DNS サーバ.A レコードで記述されたものを書くこと. | ||
責任者のメールアドレス.アドレスの @ は . (ピリオド) で記述すること.@ より前に . (ピリオド) を使っている場合,\ (バックスラッシュ) でエスケープすること. | ||
ゾーン記述のバージョンを示す通番.yyyymmddnn (nn は 01 からの通番) で書くのが一般的.前回更新より小さい数字だと,ちゃんと記述が伝播しない.間違えてデカすぎる数字を指定した場合は桁溢れさせてリセットするらしいが,その時に調べることにする. | ||
このサーバーを参照するサーバーが,この数値毎に更新確認に来る. |
||
前回更新が失敗した時に,リトライするまでの周期. |
||
更新が失敗し続けた時に,キャッシュを破棄するまでの期間.$TTL との値が違う時,どちらが優先されるかは不明. | ||
ネガティブキャッシュ (aaa.domain.com が定義されてなかった時,「aaa.domain.com は未定義」という情報のキャッシュ) を保持する期間. | ||
その他のレコード | (概略) | 記述は,
host IN <レコード種別> definition という感じ. |
zone ファイル (逆引き)
順引きで,AレコードがPTRになったと思えばOK.
チェック
named.conf の記述のチェックは,# named-checkconf [PATH]
で行なう.
zone ファイルの記述チェックは,# named-checkzone domain PATH
で行なう.
逆引きの場合,domain には x.y.z.in-addr.arpa を指定する.
resolv.conf への反映
resolv.conf の修正を忘れないこと.
ubuntu を新しいものにしたら,dhclient.conf の domain-name-servers とかをコメントアウトしても書き換えされてしまうようになった.
なので,/sbin/dhclient-script を書き換えることにした.
基本的には,resolv で出てくる行をコメントアウトするか,make_resolv_conf() を役立たずにすれば OK.
if 文の中に resolv の行しかないトコをコメントアウトする場合は,if 文ごとコメントアウトすること.
resolv.conf を普通のファイルにしたら,networking の restart でエラーを吐くようになったので,/etc/resolvconf/resolv.conf へのシンボリックリンクにした.元が何だったかは分からんが,まぁいいだろう.
オリジナルのresolv.confは,/run/resolvconf/resolv.confだった.
dhclient-script を書き換えると,空になってしまうので,やはり上の記事のように/etc/resolvconf/resolv.confを作るなどの対策が必要だ.
逆に,dhclient-scriptを書き換えなくても,リンクの貼り先を変えてしまえば,dhclient-scriptによるアップデートを無視できる.