このあいだ、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 $