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の再起動時更新される。