FreeBSD 10.0 - DNS サーバ BIND9 インストール!
Updated:
「FreeBSD 10.0 - DNS サーバ BIND9 インストール」についての記録です。
(旧バージョンでの個人の作業記録を更新しました。興味がなければスルーしてください)
0. 前提条件
- 以下の作業は、リモート接続して行う。(リモートから
ssh vbox
で接続) - リモート端末は、 Linux Mint 17 マシンを想定しているが、 Unix 系 OS なら同じ。
- 設定ファイル等のテキストファイルの編集には
vi
コマンドを使用。 - 作業はリモート接続で一般ユーザから root になって行う。
- インストールする BIND は 9.9 系。
- 固定 IP 環境を想定。(グローバル IP は “aaa.bbb.ccc.ddd” を想定)
- ルータ経由の接続を想定。(ルータの LAN 側 IP は “192.168.11.1” を想定)
- ローカルネットワークは “192.168.11.0/24”
- サーバマシンのローカル IP アドレスは “192.168.11.102”
- 主にBIND9 インストール|FreeBSDサーバー構築マニュアルを参照。
1. BIND9インストール
# cd /usr/ports/dns/bind99
# make BATCH=yes install clean
# cd
※BIND 9.8 系までと異なり、設定ファイル類は “/etc/namedb” ディレクトリ配下ではなく “/usr/local/etc/namedb” ディレクトリ配下に配置される。
2. rndc 設定
BIND をリモートから制御するための仕組み rndc (remote name server daemon control) の設定。
# rndc-confgen -a
wrote key file "/usr/local/etc/namedb/rndc.key"
# cat /usr/local/etc/namedb/rndc.key > /usr/local/etc/namedb/rndc.conf
# cat /usr/local/etc/namedb/rndc.key > /usr/local/etc/namedb/named.conf
# rm -f /usr/local/etc/namedb/rndc.key
設定ファイルを編集。
File: /usr/local/etc/namedb/rndc.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
key "rndc-key" {
algorithm hmac-md5;
secret "xxxxxxxxxxxxxxxxxxxxxxxx";
};
# 最終行に以下の記述を追加
options {
default-key "rndc-key";
default-server 127.0.0.1;
default-port 953;
};
Server 127.0.0.1 {
key "rndc-key";
};
そして、権限設定。
# chmod 400 /usr/local/etc/namedb/rndc.conf
# chmod 600 /usr/local/etc/namedb/named.conf
# chown bind:wheel /usr/local/etc/namedb/named.conf
3. BIND9 設定ファイル編集
File: /usr/local/etc/namedb/named.conf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
key "rndc-key" {
algorithm hmac-md5;
secret "xxxxxxxxxxxxxxxxxxxxxxxx";
};
# 最終行に以下の記述を追加
controls {
inet 127.0.0.1 port 953 allow { 127.0.0.1; } keys { "rndc-key"; };
};
options {
version "unknown";
directory "/usr/local/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
listen-on-v6 { none; };
listen-on { localhost; localnets; };
allow-query { localhost; localnets; };
allow-recursion { localhost; localnets; };
allow-transfer { localhost; localnets; };
forwarders { 192.168.11.1; };
};
view "internal"{
match-clients { localnets; };
recursion yes;
zone "." IN {
type hint;
file "named.ca";
};
zone "0.0.127.in-addr.arpa" {
type master;
file "0.0.127.in-addr.arpa";
};
zone "11.168.192.in-addr.arpa" {
type master;
file "11.168.192.in-addr.arpa";
};
zone "mk-mode.com" {
type master;
file "mk-mode.com.local";
};
};
# 以下は固定 IP 環境の場合
view "external"{
match-clients { any; };
#recursion no;
zone "mk-mode.com" {
type master;
file "mk-mode.zone";
allow-transfer { aaa.bbb.ccc.ddd; };
};
};
4. localhost 逆引き設定
以下の内容のファイルを作成。
File: /usr/local/etc/namedb/0.0.127.in-addr.arpa
1
2
3
4
5
6
7
8
9
10
11
$TTL 86400
@ IN SOA ns1.mk-mode.com. root.mk-mode.com. (
2014101100 ;Serial
28800 ;Refresh
7200 ;Retry
604800 ;Expire
86400 ;Minimum
)
IN NS ns1.mk-mode.com.
1 IN PTR localhost.
5. 内部正引き設定
以下の内容のファイルを作成。
File: /usr/local/etc/namedb/mk-mode.com.local
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$TTL 86400
@ IN SOA ns1.mk-mode.com. root.mk-mode.com. (
2014101100 ;Serial
28800 ;Refresh
7200 ;Retry
604800 ;Expire
86400 ;Minimum
)
IN NS ns1.mk-mode.com.
IN MX 10 mail.mk-mode.com.
@ IN A 192.168.11.102
ns1 IN A 192.168.11.102
www IN A 192.168.11.102
ftp IN A 192.168.11.102
mail IN A 192.168.11.102
6. 内部逆引き設定
以下の内容のファイルを作成。
File: /usr/local/etc/namedb/11.168.192.in-addr.arpa
1
2
3
4
5
6
7
8
9
10
$TTL 86400
@ IN SOA ns1.mk-mode.com. root.mk-mode.com. (
2014101100 ;Serial
28800 ;Refresh
7200 ;Retry
604800 ;Expire
86400 ;Minimum
)
IN NS mk-mode.com.
102 IN PTR mk-mode.com.
7. 外部正引き設定(固定 IP 環境の場合)
以下の内容のファイルを作成。
File: /usr/local/etc/namedb/mk-mode.com.zone
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$TTL 86400
@ IN SOA ns1.mk-mode.com. root.mk-mode.com. (
2010052100 ;Serial
28800 ;Refresh
7200 ;Retry
604800 ;Expire
86400 ;Minimum
)
IN NS ns1.mk-mode.com.
IN MX 10 mail.mk-mode.com.
@ IN A aaa.bbb.ccc.ddd
ns1 IN A aaa.bbb.ccc.ddd
www IN A aaa.bbb.ccc.ddd
ftp IN A aaa.bbb.ccc.ddd
mail IN A aaa.bbb.ccc.ddd
mk-mode.com. IN TXT "v=spf1 a mx ~all"
8. ルートゾーン最新化
# dig . ns @198.41.0.4 > /usr/local/etc/namedb/named.ca
9. 名前解決ファイル編集
File: /etc/resolv.conf
1
nameserver 127.0.0.1 # <= 自分自身に変更
10. BIND9 自動起動設定
File: /etc/rc.conf
1
named_enable="YES" # <= 追加
11. BIND9 起動
# /usr/local/etc/rc.d/named start
12. BIND9 動作確認
ローカルマシンの DNS 設定を今設定したばかりのサーバの IP に変更後、動作を確認。
(既にファイアウォール設定を行っている場合は、ポート開放について確認してから)
# dig @127.0.0.1 mk-mode.com soa # <= SOA レコード確認
; <<>> DiG 9.9.6 <<>> @127.0.0.1 mk-mode.com soa
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 13984
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mk-mode.com. IN SOA
;; ANSWER SECTION:
mk-mode.com. 86400 IN SOA ns1.mk-mode.com. root.mk-mode.com. 2014101100 28800 7200 604800 86400
;; AUTHORITY SECTION:
mk-mode.com. 86400 IN NS ns1.mk-mode.com.
;; ADDITIONAL SECTION:
ns1.mk-mode.com. 86400 IN A 192.168.11.102
;; Query time: 4 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Oct 11 10:13:12 JST 2014
;; MSG SIZE rcvd: 115
# dig @127.0.0.1 mk-mode.com ns # <= NS レコード確認
; <<>> DiG 9.9.6 <<>> @127.0.0.1 mk-mode.com ns
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 61279
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;mk-mode.com. IN NS
;; ANSWER SECTION:
mk-mode.com. 86400 IN NS ns1.mk-mode.com.
;; ADDITIONAL SECTION:
ns1.mk-mode.com. 86400 IN A 192.168.11.102
;; Query time: 0 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Oct 11 10:13:39 JST 2014
;; MSG SIZE rcvd: 74
# dig @127.0.0.1 ftp.mk-mode.com # <= A レコード確認
; <<>> DiG 9.9.6 <<>> @127.0.0.1 ftp.mk-mode.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 14775
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;ftp.mk-mode.com. IN A
;; ANSWER SECTION:
ftp.mk-mode.com. 86400 IN A 192.168.11.102
;; AUTHORITY SECTION:
mk-mode.com. 86400 IN NS ns1.mk-mode.com.
;; ADDITIONAL SECTION:
ns1.mk-mode.com. 86400 IN A 192.168.11.102
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Oct 11 10:18:41 JST 2014
;; MSG SIZE rcvd: 94
# dig @127.0.0.1 -x 192.168.11.102 # <= 逆引き確認
; <<>> DiG 9.9.6 <<>> @127.0.0.1 -x 192.168.11.102
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42005
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 2
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;102.11.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
102.11.168.192.in-addr.arpa. 86400 IN PTR mk-mode.com.
;; AUTHORITY SECTION:
11.168.192.in-addr.arpa. 86400 IN NS mk-mode.com.
;; ADDITIONAL SECTION:
mk-mode.com. 86400 IN A 192.168.11.102
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Oct 11 10:14:25 JST 2014
;; MSG SIZE rcvd: 111
# dig @127.0.0.1 www.isc.com # <= 外部ホスト確認
; <<>> DiG 9.9.6 <<>> @127.0.0.1 www.isc.org
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 10254
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 4, ADDITIONAL: 5
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;www.isc.org. IN A
;; ANSWER SECTION:
www.isc.org. 50 IN A 149.20.64.69
;; AUTHORITY SECTION:
isc.org. 1607 IN NS ams.sns-pb.isc.org.
isc.org. 1607 IN NS ord.sns-pb.isc.org.
isc.org. 1607 IN NS sfba.sns-pb.isc.org.
isc.org. 1607 IN NS ns.isc.afilias-nst.info.
;; ADDITIONAL SECTION:
ns.isc.afilias-nst.info. 73599 IN A 199.254.63.254
ams.sns-pb.isc.org. 3459 IN A 199.6.1.30
ord.sns-pb.isc.org. 3459 IN A 199.6.0.30
sfba.sns-pb.isc.org. 3459 IN A 149.20.64.3
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Oct 11 10:23:26 JST 2014
;; MSG SIZE rcvd: 219
# dig -x 149.20.64.49 # <= 外部ホスト逆引き
; <<>> DiG 9.9.6 <<>> -x 149.20.64.49
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 53517
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 3, ADDITIONAL: 4
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;49.64.20.149.in-addr.arpa. IN PTR
;; ANSWER SECTION:
49.64.20.149.in-addr.arpa. 3600 IN PTR ops.isc.org.
;; AUTHORITY SECTION:
64.20.149.in-addr.arpa. 3600 IN NS sfba.sns-pb.isc.org.
64.20.149.in-addr.arpa. 3600 IN NS ams.sns-pb.isc.org.
64.20.149.in-addr.arpa. 3600 IN NS ord.sns-pb.isc.org.
;; ADDITIONAL SECTION:
ams.sns-pb.isc.org. 3368 IN A 199.6.1.30
ord.sns-pb.isc.org. 3368 IN A 199.6.0.30
sfba.sns-pb.isc.org. 3368 IN A 149.20.64.3
;; Query time: 210 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sat Oct 11 10:24:57 JST 2014
;; MSG SIZE rcvd: 189
以上。
Comments