Dynamic DNSサーバを立てる。(BINDとDHCPの連係)

ローカルエリアでDNSサーバを立てていて、 DHCPでIPを配っていることが良くあると思う。 そのときにDHCPクライアントの名前を自動で解決する方法がある。 それが、Dynamic DNSである。 ISC(Internet Software Consortium) のBINDとDHCPを連係させれば解決できる。

DHCPとBINDはそれぞれDHCPの項BINDの項で説明している。

Dynamic DNSはBINDの機能であるが、クライアント機能をもっているのは Windows系ではWindows 2000くらいしかない。 それを解決するのが、DHCPとの連係である。 DHCPがクライアントから要求を受け付けたときに同時に Dynamic DNSに登録する方法である。これならば、クライアント 選ばずにDynamic DNSを実現できる。

もどる

ダウンロードとインストール

Dynamic DNSをやるには、対応するBINDとDHCPが必要である。 それぞれ最新のBIND 9.2.3, DHCPは3.0は対応しているので それらをいれる。

bind 9のページ dhcp のページ

上記からダウンロードする。

$ cd /usr/local/src
$ gtar xvfz /usr/local/src/bind-9.2.0.tar.gz
$ cd bind-9.2.0
$ ./configure
$ make
$ su
passward XXXXXX
# make install
# exit
$ cd /usr/local/src
$ gtar xvfz dhcp-3.0.tar.gz
$ cd dhcp-3.0
$ ./configure
$ make
$ su
passward XXXXXX
# make install
	

というようにそれぞれをインストールすればよい。 packageの管理とかが面倒くさいのでRPMをどこからか拾ってくるのがよいでしょう。 rpmの探し方を見てみましょう。

設定

BINDとDHCPの設定はそれぞれ説明してあるのでそちらを参照して欲しい。 今回は、そこから付け加える事項を説明する。

○bindの設定

僕の/etc/named.confの設定を示す。

# file: named.conf
options {
	directory "/var/named";
 	forwarders{ 
		xxx.xxx.xxx.xxx;
		yyy.yyy.yyy.yyy;
	};
};
zone "." {
	type hint;
	file "named.ca"; 
};
zone "bigforest.hn.org." {
	type master;
	file "bigforest.hn.org.zone";
	allow-update {
		127.0.0.1;
		192.168.1.0/24;
	};
};
zone "0.0.127.IN-ADDR.ARPA." {
	type master;
	file "named.local";
};
zone "1.168.192.IN-ADDR.ARPA." {
	type master;
	file "192.168.1.0.rev";
	allow-update {
		127.0.0.1;
		192.168.1.0/24;
	};
};
	

上記の赤で示した部分を追加する。 allow-updateがDNSレコードの書き換えを行なえるホストを指定する。 ローカルのDHCPが書き換える場合は、127.0.0.1を付け加えておく。 ローカルアドレスからも許すようにする。

○DHCPの設定

下記に僕の/etc/dhcpd.confの例を示す。

# dhcpd.conf
server-identifier dhcp.bigforest.hn.org;
option domain-name "bigforest.hn.org";
option domain-name-servers dns.bigforest.hn.org;

ddns-update-style interim;

shared-network DHCP {
  option subnet-mask 255.255.255.0;
  default-lease-time 6000;
  max-lease-time 72000;

  subnet 192.168.1.0 netmask 255.255.255.0 {
	option routers 192.168.1.1;
	range 192.168.1.64 192.168.1.126;
	option broadcast-address 192.168.1.255;
  }
}
	

赤く書いてある部分が追加した分である。ddns-update-style interimで DNSに向けてDynamic DNSの更新を要求する。

これで完成である。DHCPにアクセスしたマシンがDNSに登録される。 実際にwindowsマシンから別のwindowsマシンや、クライアントLinuxマシンに pingで名前でアクセスするとちゃんと名前が解決される。

確認する。

DynamicDNSを確認するには、nsupdateというプログラムを使って行なう。 詳しくは、nsupdateのmanページを参考にしてください。 ここでは、新しくレコードを追加する方法と削除する方法を説明する。

○レコードを追加する。

# nsupdate
> update add tsurugi.bigforest.hn.org. 3600 A 192.168.1.2
> (Return)
> (Ctrl-D)
	

一回コマンドを打ったあと空コマンド一回Returnを押さないと 設定が反映されない。その後Ctrl-Dでnsupdateを抜けることができる。

この状態で登録されているか確認する。

# host tsurugi
tsurugi.bigforest.hn.org. has address 192.168.1.2
	

と表示されればOKです。

つづいて、レコードを削除する。

# nsupdate
> update delete tsurugi.bigforest.hn.org.
> (Return)
> (Ctrl-D)
	

とすればレコードを削除できる。

この状態で登録が削除されているか確認する。

# host tsurugi
Host tsurugi. not found: 3(NXDOMAIN)
	

となれば削除成功である。

もどる


Kenji Ohmori
Last modified: Tue May 31 01:57:35 JST 2005