先日、WebサイトをIPv6対応にしたのですが、DynDNSのIPv6対応がまだできていなかったのでしました。
今は、サーバはUbuntu 16.04で、ddclientを使っています。しかし、パッケージ3.8.2-2ubuntu2はIPv6に対応していないため、gitからIPv6対応版を持ってきました。DynDNSの仕様とddclientの仕様の問題で、v4->v6の順に2度登録する必要があります。(v4とv6を同時に登録するAPIがないっぽい。v4エントリを更新するとv6情報がリセットされるので、v4->v6で登録するする必要あり。)
$ git clone https://github.com/ddclient/ddclient # cp ddclient /usr/local/sbin # cd /usr/sbin # mv ddclinet ddclient.org; ln -s /usr/local/sbin/ddclient ddclient_v6.confは以下にする以外はv4と同じ ipv6=yes use=web, web=checkipv6.dyndns.com
IPv6対応のために必要
# apt-get install libdata-validate-ip-perl
パッケージ互換性のたために/etc/ddclient.confはリンクとして残す
# cd /etc/ # mkdir ddclient # mv ddclient.conf ddclient/ddclient_v4.conf # ln -s ddclient/ddclient_v4.conf ddclient.conf
私はdaemonモードで動かしていたのですが、2回実行する必要があるので今回はcronで実行することに。
# cat /etc/default/ddclient run_daemon="false"
cronに登録
# cat /etc/cron.d/ddclient */5 * * * * root (/usr/local/sbin/ddclient -file /etc/ddclient/ddclient_v4.conf; /usr/local/sbin/ddclient -file /etc/ddclient/ddclient_v6.conf) | /usr/bin/logger -t ddclient
うまくいっているようです。
Aug 14 14:55:01 abel CRON[7472]: (root) CMD ((/usr/local/sbin/ddclient -file /etc/ddclient/ddclient_v4.conf; /usr/local/sbin/ddclient -file /etc/ddclient/ddclient_v6.conf) | /usr/bin/logger -t ddclient) Aug 14 14:55:02 abel ddclient: SUCCESS: updating lambeden.dyndns.org: good: IP address set to 126.203.135.154 Aug 14 14:55:03 abel ddclient: SUCCESS: updating lambeden.dyndns.org: good: IP address set to 2400:2412:cc0:ef00:20c:29ff:fe9f:326c