bind設定サンプル(権威サーバ)
- root:内部DNSのルートドメインのDNSとして動作させる場合は、rootドメインも定義する。
- 権威:プライベートアドレスの名前解決をする権威DNSサーバとして動作させる。
- 委任:自身が権威DNSサーバとして管理するゾーンと、別のDNSサーバに委任する(問合せする)ゾーンがある。このため、権威サーバではあるが再帰問合せを可とする(recursion yes;)
ファイル名規約(centos7)
ファイル名 | 内容 |
---|---|
/etc/named.conf | 設定ファイルルート |
/etc/named/db.ゾーン名 /etc/named/re.x.y.z |
/etc/named.conf でゾーン定義する場合 zone "ゾーン名" IN { file "../db.ゾーン名"; } ; zone "z.y.z.in-addr.arpa" IN { file "../re.x.y.z";}; |
/etc/named/db.ゾーン名 /etc/named/re.z.y.x |
正引き定義(NS,A) 逆引き(PTR) |
/etc/named/named.conf.ゾーン名 | /etc/named.conf で include する場合 |
ゾーン定義(named.conf)
必須事項
- ドメイン名(*.vpnなど)を勝手な名前にするので、rootの権威DNSは自分にする。そのため、typeはmasterとし、hintにしない。
- 委任を可とするため再帰問合せ可とする(recursion yes;)。
ローカルルール
- 他に委任するゾーン(ex *.vpn)は、rootの定義ファイル内に "NSレコードとして" 記載する。
- 自分が権威DNSとして管理するゾーンは、ゾーン定義ファイル(db.*)を作成し、named.confで参照宣言する。
- @ IN SOA MNAME RNAME ()
SOAレコードに記載する MNAME(ゾーンのNSのサーバ名)は、ns0.ゾーン名、とする。 - 適当にすると、複数ゾーンで "同一MNAME:異IPアドレス" となる可能性があるため、ユニークとなるようにゾーン名を含める。
- 委任先のDNSは、FQDNではなくIPアドレスで指定したい。他で定義されてFQDNを使わないため。
/etc/named.conf
options {
listen-on port 53 { 192.168.0.0/16; 127.0.0.1; };
listen-on-v6 port 53 { ::1; };
directory "/var/named";
allow-query { 192.168.0.0/16; 127.0.0.1; };
version "Unknown";
....
recursion yes;
allow-recursion { 192.168.0.0/16; };
forwarders { 0.0.0.0; };
}
zone "." { type master; file "/etc/named/db."; };
| $TTL 24h
| ; @ = "."
| @ IN SOA ns0.root. postmaster.root. (....)
| . IN NS ns0.root. # rootは自分
| . IN TXT "root-zone of vm-dns.hrsk"
| ns0.root. IN A 192.168.0.121
| ;;
| vpn. IN NS ns0.vpn. # サブドメイン"vpn."
| ns0.vpn. IN A 192.168.0.102
| ;;
| osmc. IN NS ns0.osmc. # サブドメイン"osmc."
| ns0.osmc. IN A 192.168.0.102
| ;;
| hrsk. IN NS ns0.hrsk. # サブドメイン"hrsk."
| ns0.hrsk. IN A 192.168.0.1
|
zone "esxi" { type master; file "/etc/named/db.esxi"; };
| $TTL 24h
| ; @ = "esxi"
| @ IN SOA ns0.esxi. postmaster.esxi. (....)
| IN NS ns0.esxi.
| IN TXT "auth of esxi."
| ns0 IN A 192.168.0.121
| ;;
| vm-dbsv IN A 192.168.0.126
| vm-dmz IN A 192.168.0.120
named.conf その他オプション
指定項目 | 指定値 |
---|---|
listen-on port 53 { 192.168.0.0/16; 127.0.0.1; }; | DNSクエリーをlistenするアドレス範囲とポート |
allow-query { 192.168.0.0/16; 127.0.0.1; }; | クエリ元を制限する |
version "Unknown"; | セキュリティのため bind のバーションは返答しない |
recursion yes; | FQDNを右から再帰問合せするか、自分の情報だけで回答するか yes:再帰問合せする no:自分の情報だけで回答する |
allow-recursion { 192.168.0.0/16; }; | 再帰問合せの受付元を制限 |
include "....." ; | 指定ファイルを取り込む |
zone "ゾーン名" IN { type master; file "FILE-NAME"; } |
ゾーンを "FILE-NAME" の内容で定義する |