| 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)
となれば削除成功である。