世の中には Free の Dynamic DNS サービスもいろいろあるので、 実際に自分で bind を運用することはあまりないかもしれません。 実際、そういったサービスを利用する方が楽でしょう:) [1]
ここでは、ADSL でつながっている UNIX マシン(クライアント)と、 インターネット上にあるサーバがあるとし、 きちんと非対称鍵を使った Dynamic DNS をやってみることにします。
まず dnskeygen で非対称鍵を作ります。 /etc/namedb/secret というディレクトリを作り、 ここで作業することにしましょう。
[最近 BIND-9.4.x] % dnssec-keygen -k -a HMAC-MD5 -b 128 -n USER ddns.nuinui.net. [昔] % /usr/libexec/dnskeygen -z -H 128 -n ddns.nuinui.net. Generating 128 bit HMAC-MD5 Key for ddns.nuinui.net. Generated 128 bit Key for ddns.nuinui.net. id=0 alg=157 flags=257ここでは HMAC で 128 bit と指定しています。 そしてキーの名前は ddns.nuinui.net です。
作られた2つのファイルは、 サフィックスが .key のものが公開鍵、.private の方が秘密鍵です。 ちなみに中身はこんな感じです。 Kddns.nuinui.net.+157+00000.key は
ddns.nuinui.net. IN KEY 257 3 157 /4lUIxhZIhEmNRQzta0Tow==Kddns.nuinui.net.+157+00000.private は
Private-key-format: v1.2 Algorithm: 157 (HMAC) Key: /4lUIxhZIhEmNRQzta0Tow==のようになっています。
サーバ側で秘密鍵を持ち、 クライアントは公開鍵を使います。
まずはサーバ側の設定です。 home.nuinui.net ゾーンを dynamic dns 対応にしてみます。 home.nuinui.net ゾーンの allow-update と key 命令がポイントです。
zone "home.nuinui.net" { type master; file "home.nuinui.net"; allow-update { key ddns.nuinui.net; }; }; key ddns.nuinui.net { algorithm hmac-md5; secret /4lUIxhZIhEmNRQzta0Tow==; };
なお、named.conf のパーミッションが root 以外でも見られるようになって いることがあります。 そういった場合は
zone "home.nuinui.net" { type master; file "home.nuinui.net"; allow-update { key ddns.nuinui.net; }; }; include "/etc/namedb/secret/key.ddns.nuinui.net";などとし、 /etc/namedb/secret/key.ddns.nuinui.net に
key ddns.nuinui.net { algorithm hmac-md5; secret /4lUIxhZIhEmNRQzta0Tow==; };と書き、 /etc/namedb/secret/key.ddns.nuinui.net のオーナは root で パーミッションを 0400 にしておくのが良いのでしょう。
サーバの情報更新には nsupdate コマンドを使います。
% nsupdate -d -k /etc/namedb/secret:ddns.nuinui.net. > update delete rudo.home.nuinui.net A > update add rudo.home.nuinui.net 60 A 10.0.0.1 > (空行)最後の空行がないと実行されないことに注意してください。 実際には 10.0.0.1 の部分は ADSL のグローバルなアドレスなどになります。
nsupdate について詳しくはマニュアルを参照して下さい。
[1] | そういったサービスは WWW でサーチすればいろいろ出てくるので、省略します:) |
Copyright (C) 1993-2025 Ken'ichi Fukamachi mail:< fukachan at fml.org >