今回は、できる限りデフォルト設定を利用し、基本のみを設定することを目標にして纏めてみる。
外部には公開せず、LAN内部のみで利用することを前提として作成する。よって、公開サーバを立てる場合は、これらの設定に加え、セキュリティ対策が必要となる。
サーバとして使用するのは、VPNサーバとしてもお世話になっているMac Mini(中身はDebian 5.03。ホスト名megurine)。
ネットワークの構造はこんな感じ。
ネットワークアドレス 192.168.0/24
ネットワーク名 h.hachune.net
router | 192.168.0.1 |
hatsune | 192.168.0.100 |
oldfox | 192.168.0.101 |
hachune | 192.168.0.102 |
360 | 192.168.0.103 |
megurine | 192.168.0.104 |
kagamine | 192.168.0.105 |
この中で、hatsune、hachune、kagamine、megurineには、それぞれmiku、eee、rin、lukaとCNAMEレコード(Alias)を付ける。
更に、megurineにはAレコードでnsとも付けておく。
1. BIND9をインストール
Debianなので
% sudo aptitude install bind9
で一発インストール可能。
この時、BINDを実行するグループ bindとユーザ bindが、自動的に追加される。
2. named.confの変更
…と思ったが、named.confで弄るところは無い模様。
一度設定したら滅多に変更することの無い、ルートサーバ、ループバックアドレス正引き・逆引きの設定がnamed.confに既に用意されていて、ドメイン設定はnamed.conf.local、BINDのオプションはnamed.conf.optionsに書くように、とのことらしい。
※named.confの内容(変更なし)
// This is the primary configuration file for the BIND DNS server named.
//
// Please read /usr/share/doc/bind9/README.Debian.gz for information on the
// structure of BIND configuration files in Debian, *BEFORE* you customize
// this configuration file.
//
// If you are just adding zones, please do that in /etc/bind/named.conf.local
include "/etc/bind/named.conf.options";
// prime the server with knowledge of the root servers
zone "." {
type hint;
file "/etc/bind/db.root";
};
// be authoritative for the localhost forward and reverse zones, and for
// broadcast zones as per RFC 1912
zone "localhost" {
type master;
file "/etc/bind/db.local";
};
zone "127.in-addr.arpa" {
type master;
file "/etc/bind/db.127";
};
zone "0.in-addr.arpa" {
type master;
file "/etc/bind/db.0";
};
zone "255.in-addr.arpa" {
type master;
file "/etc/bind/db.255";
};
include "/etc/bind/named.conf.local";
※/etc/bind/db.rootの内容(変更なし)
; This file holds the information on root name servers needed to
; initialize cache of Internet domain name servers
; (e.g. reference this file in the "cache ."
; configuration file of BIND domain name servers).
;
; This file is made available by InterNIC
; under anonymous FTP as
; file /domain/named.root
; on server FTP.INTERNIC.NET
; -OR- RS.INTERNIC.NET
;
; last update: Feb 04, 2008
; related version of root zone: 2008020400
;
; formerly NS.INTERNIC.NET
;
. 3600000 IN NS A.ROOT-SERVERS.NET.
A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4
A.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:BA3E::2:30
;
; formerly NS1.ISI.EDU
;
. 3600000 NS B.ROOT-SERVERS.NET.
B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201
;
; formerly C.PSI.NET
;
. 3600000 NS C.ROOT-SERVERS.NET.
C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12
;
; formerly TERP.UMD.EDU
;
. 3600000 NS D.ROOT-SERVERS.NET.
D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
;
; formerly NS.NASA.GOV
;
. 3600000 NS E.ROOT-SERVERS.NET.
E.ROOT-SERVERS.NET. 3600000 A 192.203.230.10
;
; formerly NS.ISC.ORG
;
. 3600000 NS F.ROOT-SERVERS.NET.
F.ROOT-SERVERS.NET. 3600000 A 192.5.5.241
F.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:2f::f
;
; formerly NS.NIC.DDN.MIL
;
. 3600000 NS G.ROOT-SERVERS.NET.
G.ROOT-SERVERS.NET. 3600000 A 192.112.36.4
;
; formerly AOS.ARL.ARMY.MIL
;
. 3600000 NS H.ROOT-SERVERS.NET.
H.ROOT-SERVERS.NET. 3600000 A 128.63.2.53
H.ROOT-SERVERS.NET. 3600000 AAAA 2001:500:1::803f:235
;
; formerly NIC.NORDU.NET
;
. 3600000 NS I.ROOT-SERVERS.NET.
I.ROOT-SERVERS.NET. 3600000 A 192.36.148.17
;
; operated by VeriSign, Inc.
;
. 3600000 NS J.ROOT-SERVERS.NET.
J.ROOT-SERVERS.NET. 3600000 A 192.58.128.30
J.ROOT-SERVERS.NET. 3600000 AAAA 2001:503:C27::2:30
;
; operated by RIPE NCC
;
. 3600000 NS K.ROOT-SERVERS.NET.
K.ROOT-SERVERS.NET. 3600000 A 193.0.14.129
K.ROOT-SERVERS.NET. 3600000 AAAA 2001:7fd::1
;
; operated by ICANN
;
. 3600000 NS L.ROOT-SERVERS.NET.
L.ROOT-SERVERS.NET. 3600000 A 199.7.83.42
;
; operated by WIDE
;
. 3600000 NS M.ROOT-SERVERS.NET.
M.ROOT-SERVERS.NET. 3600000 A 202.12.27.33
M.ROOT-SERVERS.NET. 3600000 AAAA 2001:dc3::35
; End of File
※/etc/bind/db.localの内容(変更なし)
; BIND data file for local loopback interface
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
2 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
@ IN A 127.0.0.1
@ IN AAAA ::1
※/etc/bind/db.127の内容(変更なし)
; BIND reverse data file for local loopback interface
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
1.0.0 IN PTR localhost.
※/etc/bind/db.0の内容(変更なし)
; BIND reverse data file for broadcast zone
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
※/etc/bind/db.255の内容(変更なし)
; BIND reverse data file for broadcast zone
;
$TTL 604800
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
@ IN NS localhost.
3. named.conf.localの変更
ようやく設定ファイルを弄ることになる。
ここでは、/etc/bind/zones.rfc1918を参考にしながら、named.conf.localのみの変更を行う。
h.hachune.netの正引きと、そのネットワークの逆引き168.192.addr-arpaの設定を行う。
※zones.rfc1918の内容(変更なし)
zone "10.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "16.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "17.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "18.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "19.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "20.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "21.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "22.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "23.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "24.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "25.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "26.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "27.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "28.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "29.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "30.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "31.172.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
zone "168.192.in-addr.arpa" { type master; file "/etc/bind/db.empty"; };
※named.conf.local(変更前)
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
※named.conf.local(変更後)
//
// Do any local configuration here
//
// Consider adding the 1918 zones here, if they are not used in your
// organization
//include "/etc/bind/zones.rfc1918";
zone "h.hachune.net"{
type master;
file "/etc/bind/h.hachune.net/h.hachune.net.zone";
};
zone "0.168.192.in-addr.arpa"{
type master;
file "/etc/bind/h.hachune.net/h.hachune.net.rev";
};
4. /etc/bind/h.hachune.net/h.hachune.net.zoneの設定
h.hachune.netの正引きの設定を行う。
ここでは、/etc/bind/db.emptyを参考に、設定を行う。
※/etc/bind/db.emptyの内容(変更なし)
; BIND reverse data file for empty rfc1918 zone
;
; DO NOT EDIT THIS FILE - it is used for multiple zones.
; Instead, copy it, edit named.conf, and use that copy.
;
$TTL 86400
@ IN SOA localhost. root.localhost. (
1 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
86400 ) ; Negative Cache TTL
;
@ IN NS localhost.
※/etc/bind/h.hachune.net/h.hachune.net.zoneの内容
$TTL 86400
@ IN SOA ns.h.hachune.net. lefay.g.hachune.net.(
200912120 ;
3600 ;
900 ;
604800 ;
86400 ;
)
@ IN NS ns.h.hachune.net.
@ IN A 192.168.0.104
router IN A 192.168.0.1
hatsune IN A 192.168.0.100
miku IN CNAME hatsune
oldfox IN A 192.168.0.101
hachune IN A 192.168.0.102
eee IN CNAME hachune
360 IN A 192.168.0.103
megurine IN A 192.168.0.104
luka IN CNAME megurine
ns IN A 192.168.0.104
kagamine IN A 192.168.0.105
rin IN CNAME kagamine
5. /etc/bind/h.hachune.net/h.hachune.net.revの設定
正引きの設定と同様に、逆引きの設定も行う。
$TTL 86400
@ IN SOA ns.h.hachune.net. lefay.g.hachune.net.(
200912120 ;
3600 ;
900 ;
604800 ;
3600 ;
)
@ IN NS ns.h.hachune.net.
1 IN PTR router.h.hachune.net.
100 IN PTR hatsune.h.hachune.net.
101 IN PTR nec.h.hachune.net.
102 IN PTR hachune.h.hachune.net.
103 IN PTR 360.h.hachune.net.
104 IN PTR megurine.h.hachune.net.
105 IN PTR kagamine.h.hachune.net.
以上の設定が終了したら、BINDデーモンの再起動を行う。
% sudo /etc/init.d/bind9 restart
もしうまく起動しない場合は、% sudo tail /var/log/syslogして、どこでエラーが発生しているのか確認する。
6. 正しく設定が反映されているか確認
デーモンが正しく再起動出来たら、digコマンドを利用しレコードを確認する。
※正引きレコードの確認
master@megurine:/etc/bind$ dig @127.0.0.1 miku.h.hachune.net
; <<>> DiG 9.5.1-P3 <<>> @127.0.0.1 miku.h.hachune.net
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 19223
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;miku.h.hachune.net. IN A
;; ANSWER SECTION:
miku.h.hachune.net. 86400 IN CNAME hatsune.h.hachune.net.
hatsune.h.hachune.net. 86400 IN A 192.168.0.100
;; AUTHORITY SECTION:
h.hachune.net. 86400 IN NS ns.h.hachune.net.
;; ADDITIONAL SECTION:
ns.h.hachune.net. 86400 IN A 192.168.0.104
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Dec 13 02:41:46 2009
;; MSG SIZE rcvd: 107
※逆引きレコードの確認
master@megurine:/etc/bind$ dig @127.0.0.1 -x 192.168.0.100
; <<>> DiG 9.5.1-P3 <<>> @127.0.0.1 -x 192.168.0.100
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 24508
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;100.0.168.192.in-addr.arpa. IN PTR
;; ANSWER SECTION:
100.0.168.192.in-addr.arpa. 86400 IN PTR hatsune.h.hachune.net.
;; AUTHORITY SECTION:
0.168.192.in-addr.arpa. 86400 IN NS ns.h.hachune.net.
;; ADDITIONAL SECTION:
ns.h.hachune.net. 86400 IN A 192.168.0.104
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Dec 13 02:42:16 2009
;; MSG SIZE rcvd: 112
※キャッシュサーバの確認
master@megurine:/etc/bind$ dig @127.0.0.1 crypton.co.jp.
; <<>> DiG 9.5.1-P3 <<>> @127.0.0.1 crypton.co.jp.
; (1 server found)
;; global options: printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 31873
;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;crypton.co.jp. IN A
;; AUTHORITY SECTION:
crypton.co.jp. 892 IN SOA dns-b.iij.ad.jp. dns-managers.iij.ad.jp. 63 3600 1800 3600000 900
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Sun Dec 13 02:46:34 2009
;; MSG SIZE rcvd: 93
以上で、とりあえずは使えるDNSサーバができた。
弄ったのは、named.conf.localとh.hachune.net.zone、h.hachune.net.revのみ。
…ここまではそんなに難しくはないんだが…('A`)
・参考
@IT 実用 BIND9で作るDNSサーバ 第2回 すべての基礎、マスター・ゾーンサーバの設定
http://www.atmarkit.co.jp/flinux/rensai/bind902/bind902a.html
0 件のコメント:
コメントを投稿