DynDNSの管理ツールであるddclientの使い方

条件
FreeBSD
DynDNSのダイナミックDNS

まずはportsからインストール
# whereis ddclient
ddclient: /usr/ports/dns/ddclient
# cd /usr/ports/dns/ddclinet
# make install clean

設定
/usr/local/etc/ddclient.conf.sample を参考にして
以下ののように/usr/local/etc/ddclient.confを作った
# vi /usr/local/etc/ddclient.conf
daemon=300 # check every 300 seconds
syslog=yes # log update msgs to syslog
mail=root # mail all msgs to root
mail-failure=root # mail failed update msgs to root
pid=/var/run/ddclient.pid # record PID in file.
ssl=yes # use ssl-support. Works with
# ssl-library
use=web, web=checkip.dyndns.org/, web-skip='IP Address' # found after IP Address
use=web # via web
(web経由で自分のグローバルIPが変更されたのをチェックする)

login=foo # default login(★DynDNSのユーザ名)
password=bar # default password(★DynDNSのパスワード)
#mx=mx.for.your.host # default MX
#backupmx=yes|no # host is primary MX?
#wildcard=yes|no # add wildcard CNAME?

##
## dyndns.org dynamic addresses
##(ダイナミックDNSを使う場合はここを使う)
## (supports variables: wildcard,mx,backupmx)
##
server=members.dyndns.org, \
protocol=dyndns2 \
hoge.selfip.net (★ここは自分のホスト名を書く)

だいたい付け足して書いてある説明のとおり
sampleはコメントアウトしている部分が多く見にくいので
自分が必要ではない部分は消した。
★があるところが自分が必要最低限変えなければいけないところ

最後に自動的に起動するようにする
# vi /etc/rc.conf
ddclient_enable="YES"

再起動後有効になるが再起動するのがメンドイ場合には
# /usr/local/etc/rc.d/ddclient start


動作確認
# ps axf |grep dd
26779 p2 S 0:00.40 ddclient - sleeping for 300 seconds (perl)
# ps axf |grep dd
26779 p2 S 0:00.40 ddclient - sleeping for 200 seconds (perl)
# ps axf |grep dd
26779 p2 S 0:00.44 ddclient - reading from checkip.dyndns.org port 80 (perl)
ddclient を有効にするとperlスクリプトが実行され
300秒ごとにグローバルIPのチェックが実行される

グローバルIPが変わった場合には以下のようになる
# tail /var/log/messages
Jun 23 01:20:51 hoge ddclient[26779]: SUCCESS: updating bsd.selfip.net: good: IP address set to 12*.*.1*.1**
Jun 23 01:35:50 hoge kernel: fxp0: link state changed to DOWN
Jun 23 01:35:51 hoge kernel: fxp0: link state changed to UP
実際にグローバルIPの変わる→ddclient検知→dyndnsへのIPの告知の変更
という流れがうまくいくかどうかを確かめるためには
ルーター(など)を再起動させてみると良いだろう。
私も実際にルーターを再起動させうまくいったかどうかの確認をした。

昔の自分のメモにはLinux版のDiceをLinux_Emuで動かしていたようだ
しかし、dicedを再起動時にデーモンとして立ち上げるのに失敗し
うまくいってないようだった。
ddclientは英語だが一度設定してしまえばそこそこ使えるのではないかと考えている。

コマンド部分とかを枠で囲って分かりやすくしたいなぁ・・・ orz
はっきいってみずらいw