ksaitoの日記

日々試したことの覚え書き

DNSへのサーバ登録

このあいだ、DebianでDNSサーバを立ち上げるで設定したDNSにサーバを登録する手順です。
BIND9については、とても詳細の解説が多いのですが簡単にサーバの登録をする手順は少ないです。

設定する内容

家に1台のルータ、NAS無線LANアクセスポイントがありますが、この名前を毎回hostsに登録するのに手間がかかるので玄箱にBIND9を入れてDNSサーバとします。
ドメイン名は、外部にサーバを公開する予定はないので、"a.local"とします。

ホスト名とIPアドレスの登録

named.confにゾーンファイルを設定します。
Debian/Ubuntuのbind9パッケージでは、/etc/bind/named.conf.localというファイルに設定します。

$ cd /etc/bind
$ cat named.conf.local 
zone "a.local" {
     type master;
     file "/etc/bind/db.a.local.zone";
};
$

サーバの登録は、Aレコードでhostsに登録するホスト名とIPアドレスを設定するイメージです。

$ cat db.a.local.zone
;
; BIND data file for a.local domain
;
$TTL	86400
@	IN	SOA	ns.a.local. root.a.local. (
			10000000  ; Serial
			604800	  ; Refresh
			86400	  ; Retry
			2419200	  ; Expire
			604800 )  ; Negative Cache TTL
;
		IN	NS	ns.a.local.
;
gateway		IN	A	192.168.111.1	
ns		IN	A	192.168.111.2
nas       	IN	A	192.168.111.3
airmac		IN	A	192.168.211.4
printer		IN	A	192.168.211.5
macbook		IN	A	192.168.211.6
$

設定の確認とbindの再起動

設定の確認後に再起動します。
設定の確認には、named-checkconfとnamed-checkzoneを使います。
こういう場合は、Makefileを書いて設定が正しくないと再起動できないようにします。

$ cat /etc/bind/Makefile
all: restart

restart: check checkzone
        /etc/init.d/bind9 restart

check:
        named-checkconf /etc/bind/named.conf

checkzone:
        named-checkzone a.local db.a.local.zone
$

再起動します。

$ sudo make
named-checkconf /etc/bind/named.conf
named-checkzone a.local db.a.local.zone
zone a.local/IN: loaded serial 100000
OK
/etc/init.d/bind9 restart
Stopping domain name service...: bind9 waiting for pid 843 to die.
Starting domain name service...: bind9.
$ 

動作確認

digコマンドで登録したアドレスが引けるか確認します。
下記のように名前からアドレスが引けるようになります。

$ dig @localhost gateway.a.local | grep gateway.a.local
gateway.a.local.	86400	IN	A	192.168.111.1
$