setup ddns on subdomain
 DDNSをsubdomainを新設して運用してみた。
いろいろ浦島。
1. subdomainの設定
/etc/named.confに新しいsubdomainのzoneを記述する。 ここでは、「newdomain」とする。
zone "newdomain.xxxx.jp" {
        type master;
        file "dhcp.zone";
};
次に、/var/named/dhcp.zone を新規に作成する。
ここでは、DHCP対応ということで、MXなどは親ドメインと同じにしておく。
また、とりあえず、「www」というホストを登録しておく。
$ORIGIN .
$TTL 38400      ; 10 hours 40 minutes
newdoamin.xxxx.jp            IN SOA  親domianのDNS server. root.xxxx.jp. (
                                2008030202 ; serial
                                10800      ; refresh (3 hours)
                                3600       ; retry (1 hour)
                                604800     ; expire (1 week)
                                38400      ; minimum (10 hours 40 minutes)
                                )
                        NS     親domianのDNS server .
                        A       親domianのIP
                        MX      10 親domianのMAIL server .
$ORIGIN newdomain.xxxx.jp.
$TTL 38400      ; 10 hours 40 minutes
www                     A       親domianのIP
設定したら、なにか間違ってないか、ちゃんと確認する。
# /etc/rc.d/init.d/named restart # tail /var/log/message # dig www.newdomain.xxxx.jp
※親ドメインのSERIALを変えないとサブドメインは認識されないっぽい。
2.DDNSの設定
DDNSの認証ポリシーをTSIG(Transaction Signature)とした場合。 要するに、長いパスフレーズだと思えばよい。まずは、TSIGのkeyを作成する。
# /usr/sbin/dnssec-keygen -a HMAC-MD5 -b 512 -n HOST newdomain.xxxx.jp Knewdomain.xxxx.jp.+157+65381 # more Knewdomain.xxx.jp.+157+65381.key newdomain.xxxx.jp. IN KEY 512 3 157 W91nmVTY6FXXXXXXXXXXXXXXXtoO4tudT2x Y2Np5xaeXXpwcw==
「W91nm...」というところが認証キーとなる。
ファイルをそのまま使うのもいいが面倒なので、named.confに埋め込む。
key "newdomain.xxxx.jp" {
        algorithm hmac-md5;
        secret "W91nmVTY6FXXXXXXXXXXXXXXXtoO4tudT2xY2Np5xaeXXpwcw==";
};
zone "newdomain.xxxx.jp" {
        type master;
        file "dhcp.zone";
        allow-update {
                key newdomain.xxxx.jp;
        };
};
namedの再起動を忘れずに。
3.DDNSのホストを登録
nsupdateコマンドを利用して、DHCPアドレスをもったサーバをDNSに登録する。直接入力してもいいけど、面倒なのでファイルに以下のようにサンプル記述する。
# /sbin/ifconfig | grep inet # cat > sample update add newhost.newdomain.xxxx.jp 38400 IN A DHCPで取得したIP 必ず空行が必要
ファイル名「sample」を最後の引数にしてnsupdateを起動。
「Knewdomain.xxxx.jp.+157+65381.private」も同じディレクトリに用意しておくこと。
# nsupdate -k Knewdomain.xxxx.jp.+157+65381.key sample # dig newhost.newdomain.xxxx.jp
ここで、DNSホストの/var/log/messageを見てみる。
Mar 2 17:35:41 xxxx named[25528]: client xxx.xxx.xxx.xxx#1293: updating zone ''newdomain.xxxx.jp/IN'': adding an RR
/var/named/dhcp.zone は、namedの再起動時更新される。