ksaitoの日記

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

DNSに逆引きの設定

DNSに登録したホストの逆引きを設定します。
逆引きは、IPアドレスからホスト名を調べるための仕組みです。
ログに記録されるIPアドレスをホスト名に変換したりSMTPFTPでアクセス元の詐称を防止するために使われます。
プライベートなDNSでの必要性は、あまりありませんね。

zoneファイルの設定

前回、ホスト名を登録したのと同様に/etc/named.conf.localにzoneファイルを設定します。

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

zone "111.168.192.in-addr.arpa" {
     type master;
     file "/etc/bind/db.a.local.rev";
};

逆引きの設定

zoneファイルに逆引きを設定します。

$ cat db.a.local.rev
;
; BIND reverse data file for a.local domain.
;
$TTL	86400
@	IN	SOA	ns.a.local. root.ns.a.local. (
			            1  	; Serial
			 604800		; Refresh
			  86400		; Retry
			2419200		; Expire
			 604800 )	; Negative Cache TTL
;
@	IN	NS	ns.a.local.
1	IN	PTR	gateway.a.local.
2	IN	PTR	ns.a.local.

設定チェックと再起動

前回、作成したMakefileを使って再起動します。
なぜか、ns.a.localのアドレスがないとおこられますが

$ cat 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
	named-checkzone a.local db.a.local.rev
$ sudo make 
named-checkconf /etc/bind/named.conf
named-checkzone a.local db.a.local.zone
zone a.local/IN: loaded serial 20091039
OK
named-checkzone a.local db.a.local.rev
zone a.local/IN: NS 'ns.a.local' has no address records (A or AAAA)
zone a.local/IN: loaded serial 7
OK
/etc/init.d/bind9 restart
Stopping domain name service...: bind9 waiting for pid 9015 to die.
Starting domain name service...: bind9.
$

動作確認

逆引きできるようになりました。

$ dig @localhost -x 192.168.1.1 | grep gateway.a.local
1.111.168.192.in-addr.arpa. 86400	IN	PTR	gateway.a.local.
$