- 追加された行はこの色です。
- 削除された行はこの色です。
#author("2018-04-06T21:17:43+09:00","default:dramsukohome","dramsukohome")
#author("2023-01-24T20:29:58+09:00","default:dramsukohome","dramsukohome")
[[Linux]]~
*bind、DNSサーバーについて(CentOS6) [#d9e77701]
*目次 [#gf209d77]
#contents
* トップレベルドメインリストの入手 [#n3d6b338]
ftp://ftp.rs.internic.net/domain/
から入手。
named.root
がそのファイル。~
当サーバーではこのファイルを~
named.ca
として名前を変更して使用する。
* ドメイン名の登録確認 [#w14b7b53]
+ IANA(Internet Assigned Numbers Authority) が管理している国名コード(ccTLD)のリストは、[[http://www.iana.org/domains/root/db:http://www.iana.org/domains/root/db]] で確認できる。
+ whois domain-name でも検索できる(らしい)~
(自分の環境ではだめだった。)
+ whois 以外では、
dig ns domain-name
でもいけるようだ。
* bind のバージョン確認 [#s2be5117]
named -v
* named.conf [#gff192e1]
+ ネームサーバーのワーキングディレクトリ設定
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";
};
* ゾーンデータの作成 [#if8c71b6]
+ $TTL の指定(1日)~
++ 単位を省略して整数のみを記載すると秒の意味
$TTL 86400 ; 1 day
++ 単位を指定する。~
s(秒)、m(分)、h(時間)、d(日)、w(週)~
1日の指定を単位を使って表すと
$TTL 1d ; 1 day
++ 2つの単位の混合
$TTL 1d12h ; 1日半
++ $TTL は、1時間から1日が一般的
* SOA レコード [#ef70fd7a]
+ ゾーンのデータが変更されたかどうかを、スレーブネームサーバがどれくらいの頻度で確認するかなど、ゾーン全体に関わる情報を記述する。~
+ 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 [#u70cc6b9]
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 のカテゴリ [#se267ca6]
- 参考外部サイト : [[BINDのロギング機能(Server Architecture for Linux):http://linux.kororo.jp/cont/server/bind_log.php]]
|カテゴリ名|内容|h
|default|チャンネルが割り当てられていない全てのカテゴリ。|
|general|以下のカテゴリに分類されない、その他全てのメッセージ|
|database|named の内部データベースに関するメッセージ。|
|security|要求の承認と拒否に関するメッセージ。|
|config|設定ファイルの処理に関するメッセージ。|
|resolver|名前解決に関するメッセージ。再帰的に問い合わせへの応答も含む。|
|xfer-in|他サーバーから自ホストへのゾーン転送に関するメッセージ。|
|xfer-out|自ホストから他サーバーへのゾーン転送に関するメッセージ。|
|notify|非同期びゾーン更新通知に関するメッセージ。|
|client|クライアントからの要求に関するメッセージ。|
|unmatched|どのview にもマッチしなかったメッセージ。|
|network|ネットワークに関するメッセージ。|
|upadate|動的更新に関するメッセージ。|
|queries|問い合わせのログ。|
|dnssec|DNSSECとTSIGの処理に関するメッセージ。|
|lame-servers|名前解決を試みようとして発見した、間違った設定のサーバーに関するメッセージ。|
* トラブルシューティング [#s5220fc2]
** view internal: query failed (SERVFAIL) 対応 [#q790b8af]
- jnl ファイルとの不整合らしい。~
以下のコマンドでjnlファイルを適用すると解決!
rndc freeze
rndc thaw
** Dynamic DNS, Unable to add forward map from 対応 [#v3bacfb3]
-/var/named を含むこれ配下のアクセス権を確認する
-named 権限が必要
** permission の設定をしていても(設定済みでも) jnl(ジャーナル)の作成に失敗する [#m51e6e7c]
- SELinux が原因。以下のコマンドを実行
setsebool -P named_write_master_zones 1
* nsupdate [#i88c507c]
sudo nsupdate
> server hogehoge.unyaunya.com
- 追加(正引き)
update add www.unyaunya.com 3600 IN A 192.168.1.101
update add www.example.com 3600 CNAME test.example.com
- 追加(逆引き)
update add 192.168.10.10 3600 IN PTR www.unyaunya.com
update add 10.10.168.192.in-addr.arpa. 3600 IN PTR www.unyaunya.com.
- 削除
-- 正引き
update delete www.unyaunya.com In A 192.168.1.101
-- 逆引き
update delete 2.0.168.192.in-addr.arpa. IN PTR
- 反映
send
- nsupdate console の終了
quit
- 備考
-- send を送信した時点で即時反映される。~
ただし、zone ファイルは jnl ファイルを経由して~
少しあとに更新される。
* ubuntu, 18.04以降, DNS, cache, キャッシュ, nslookup, 削除 [#hdaa72e8]
-なんとまぁLinuxでもDNSの応答がキャッシュされるようになった模様
-ubuntu 18.04
-クリア方法は以下
sudo systemd-resolve --flush-caches
-ubuntu 22.04
resolvectl flush-caches
* ipv6 [#x3c46e77]
** 参考サイト [#eb2ca816]
- [[@IT:IPv6対応DNSサーバの実現 (1/2):https://www.atmarkit.co.jp/ait/articles/0401/14/news090.html]]