mk-mode BLOG

このブログは自作の自宅サーバに構築した Debian GNU/Linux で運用しています。
PC・サーバ構築等の話題を中心に公開しております。(クローンサイト: GitHub Pages

ブログ開設日2009-01-05
サーバ連続稼働時間
Reading...
Page View 合計
Reading...
今日
Reading...
昨日
Reading...

FreeBSD 10.0 - DNS サーバ BIND9 インストール!

[ サーバ構築 ] [ DNS, FreeBSD ]

こんばんは。

「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インストール

1
2
3
# 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) の設定。

1
2
3
4
5
# 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

設定ファイルを編集。

/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";
};

そして、権限設定。

1
2
3
# 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 設定ファイル編集

/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 逆引き設定

以下の内容のファイルを作成。

/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. 内部正引き設定

以下の内容のファイルを作成。

/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. 内部逆引き設定

以下の内容のファイルを作成。

/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 環境の場合)

以下の内容のファイルを作成。

/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. ルートゾーン最新化

1
# dig . ns @198.41.0.4 > /usr/local/etc/namedb/named.ca

9. 名前解決ファイル編集

/etc/resolv.conf
1
nameserver 127.0.0.1  # <= 自分自身に変更

10. BIND9 自動起動設定

/etc/rc.conf
1
named_enable="YES"   # <= 追加

11. BIND9 起動

1
# /usr/local/etc/rc.d/named start

12. BIND9 動作確認

ローカルマシンの DNS 設定を今設定したばかりのサーバの IP に変更後、動作を確認。
(既にファイアウォール設定を行っている場合は、ポート開放について確認してから)

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
# 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
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# 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
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
# 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
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
# 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
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
# 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
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
# 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