Linux
bind、DNSサーバーについて(CentOS6) †
目次 †
トップレベルドメインリストの入手 †
ftp://ftp.rs.internic.net/domain/
から入手。
named.root
がそのファイル。
当サーバーではこのファイルを
named.ca
として名前を変更して使用する。
ドメイン名の登録確認 †
- IANA(Internet Assigned Numbers Authority) が管理している国名コード(ccTLD)のリストは、http://www.iana.org/domains/root/db で確認できる。
- whois domain-name でも検索できる(らしい)
(自分の環境ではだめだった。)
- whois 以外では、
dig ns domain-name
でもいけるようだ。
bind のバージョン確認 †
named -v
named.conf †
- ネームサーバーのワーキングディレクトリ設定
options {
directory "/var/named";
};
- root ヒントファイルの設定
zone "." in {
type hint;
file "named.ca";
};
- プライマリマスタネームサーバー
zone "foo.example" {
type master;
file "db.foo.example";
};
- スレーブネームサーバー
zone "foo.example" {
type slave;
masters { 192.168.0.1; };
file "bak.foo.example";
};
ゾーンデータの作成 †
- $TTL の指定(1日)
- 単位を省略して整数のみを記載すると秒の意味
$TTL 86400 ; 1 day
- 単位を指定する。
s(秒)、m(分)、h(時間)、d(日)、w(週)
1日の指定を単位を使って表すと
$TTL 1d ; 1 day
- 2つの単位の混合
$TTL 1d12h ; 1日半
- $TTL は、1時間から1日が一般的
SOA レコード †
- ゾーンのデータが変更されたかどうかを、スレーブネームサーバがどれくらいの頻度で確認するかなど、ゾーン全体に関わる情報を記述する。
- SOA レコードはドメイン名の記述から始まり、次にゾーンのクラスを指定(ほとんどの場合、Internet を示す IN を指定)して、SOA レコードのタイプを示す SOA を記述します。
- SOA レコードでは、タイプの後に7つの要素を記述します。
- MNAME フィールド
- このゾーンのプライマリマスタネームサーバのドメイン名を指定する。
- RNAME フィールド
- ゾーン管理者に到達性のあるメールアドレス。メールアドレスで使われる @ 記号は使えないため、 . (ドット)に変更して記述する。
- シリアル番号
- YYYYMMDDVV の形式が望ましい。
例) 2013121700
- リフレッシュ
- このゾーンのスレーブネームサーバが、どれくらいの頻度で、自分のマスタネームサーバに、ゾーンのシリアルが増加しているかどうか(変更があったか)について、問い合わせる時間を指定する。
- リトライ
- シリアルの確認時にエラーが出た時、次に問い合わせるまでの間隔を指定する。
- 期限切れ
- スレーブサーバーがマスターに到達できなくなった時、どれくらいの期間、反応を続けるかを指定する。通常、事故などに備え、数週間から1ヶ月程度の値を用いる
- ネガティブキャッシュTTL
- 他のネームサーバがゾーンに対する権威を持ったネームサーバからの否定応答をキャッシュしてもよい時間を設定する。この値は、15分から3時間程度のかなり短めに設定してもよい。
- 例)
$TTL 86400 ; 1 day
foo.example. IN SOA ns1.foo.example. root.foo.example. (
2002123041 ; serial
3600 ; refresh (1 hour)
900 ; retry (15 minutes)
604800 ; expire (1 week)
3600 ; minimum (1 hour)
)
NS ns1.foo.example.
NS ns2.foo.example.
slave 設定の /etc/named.conf †
zone "foo.net" IN {
type slave;
file "slaves/db.foo.example";
masters { 111.222.112.221; };
};
zone "112.222.111.in-addr.arpa" IN {
type slave;
file "slaves/db.111.222.112";
masters { 111.222.112.221; };
};
Log のカテゴリ †
- 参考外部サイト : BINDのロギング機能(Server Architecture for Linux)
カテゴリ名 | 内容 |
default | チャンネルが割り当てられていない全てのカテゴリ。 |
general | 以下のカテゴリに分類されない、その他全てのメッセージ |
database | named の内部データベースに関するメッセージ。 |
security | 要求の承認と拒否に関するメッセージ。 |
config | 設定ファイルの処理に関するメッセージ。 |
resolver | 名前解決に関するメッセージ。再帰的に問い合わせへの応答も含む。 |
xfer-in | 他サーバーから自ホストへのゾーン転送に関するメッセージ。 |
xfer-out | 自ホストから他サーバーへのゾーン転送に関するメッセージ。 |
notify | 非同期びゾーン更新通知に関するメッセージ。 |
client | クライアントからの要求に関するメッセージ。 |
unmatched | どのview にもマッチしなかったメッセージ。 |
network | ネットワークに関するメッセージ。 |
upadate | 動的更新に関するメッセージ。 |
queries | 問い合わせのログ。 |
dnssec | DNSSECとTSIGの処理に関するメッセージ。 |
lame-servers | 名前解決を試みようとして発見した、間違った設定のサーバーに関するメッセージ。 |
トラブルシューティング †
view internal: query failed (SERVFAIL) 対応 †
- jnl ファイルとの不整合らしい。
以下のコマンドでjnlファイルを適用すると解決!
rndc freeze
rndc thaw
Dynamic DNS, Unable to add forward map from 対応 †
- /var/named を含むこれ配下のアクセス権を確認する
- named 権限が必要
permission の設定をしていても(設定済みでも) jnl(ジャーナル)の作成に失敗する †
nsupdate †
sudo nsupdate
> server hogehoge.unyaunya.com
ubuntu, 18.04以降, DNS, cache, キャッシュ, nslookup, 削除 †
ipv6 †
参考サイト †