上記の方法だと、ネットに再接続して IPaddress が変わるたびに手作業で再登録する必要があり、操作が煩雑で、また、アドレスが変わったのに気付かずにアクセス不能になっている場合もある。
そこで、これを自動化するために、"DynamicDNSサービス" 利用者のためのクライアントツールである DiCE を導入する。
DiCE はフリーソフトで、「サービスのWebサイトへ行かなくても更新作業を行うことが出来る」、「指定日時、または定期的にIPアドレスなどの情報を更新することが出来る」、「IPアドレスの変化を検知して自動で更新することが出来る」などの特徴がある。
まず、DiCE for Linux を
から入手する。最新版は DiCEd Version0.19 Bata(diced01911.tar.gz)。
/usr/local/bin に展開する。
# cd /usr/local/bin
# tar xzvf ./diced01911.tar.gz
# ls
DiCE/
展開されたファイルの意味は次のとおり。
| DiCE/ |
--- |
インストールディレクトリ |
(rwx) |
| DiCE/diced |
--- |
実行ファイル(CUI版) |
(rwx) |
| DiCE/dice |
--- |
(GUI版 実行ファイル) |
(rwx) |
| DiCE/plug-in/ |
--- |
情報ファイルが格納されているディレクトリ |
(rw-) |
| DiCE/plug-in/*.plg |
--- |
情報ファイル群 |
(rw-) |
diced を起動したら、? を入力すると使い方が出てくる。
=-=-=- DiCE DynamicDNS Client -=-=-=
Version 0.19 for Japanese
Copyright(c) 2001 sarad
:?
| *** 起動オプション *** |
| diced [-s|-d|-h|-e] [-b] [-l] |
| -s |
起動と同時に開始します |
| -d |
起動と同時にバックグラウンドで開始します |
| -h |
コマンドオプションを表示します |
| -b |
イベント実行時にビープ音を鳴らします |
| -l |
ログを作成します |
| -e<EventNo> |
指定のイベントを実行して終了します |
| |
|
| *** コマンド一覧 *** |
| exit |
DiCEを終了します |
| start |
DiCEを開始します |
| startd |
DiCEをバックグラウンドで開始します |
| setup |
DiCEの環境設定を行います |
| list |
登録済のイベント一覧を表示します |
| add |
イベントを追加します |
| ed[it] <番号> |
イベントを編集します |
| del <番号> |
イベントを削除します |
| en[able] <番号> |
イベントを有効にします |
| dis[able] <番号> |
イベントを無効にします |
| ev[ent] <番号> |
イベントの情報を表示します |
| ex[ec] <番号> |
イベントを今すぐ実行します |
| logcr |
ログをクリアします |
daemon として起動させるには次のコマンドを使う。
# diced -d -l
Jun 25 2006
バックグラウンドで起動しておけば定期的に DNS を更新してくれるはずの DiCE だが、希に実行しない場合があって、サーバーが迷子状態になる事がある。
起動後どの程度でこの症状が発生するか何回か確認してみたが、2週間ほどのこともあれば数ヶ月間問題なく稼働し続けることもある。この症状が DiCE に起因することなのか、サーバーシステムとの相性によって発生するものなのか分からない。
いずれにしても、サーバーが DNS から欠落するのを避けなければならないので、定期実行は CRON で行う事にした。
次のファイルを実行属性を付けて作成し、cron に登録した。
vi /usr/local/etc/cron-diced
#/bin/sh
/usr/bin/killall diced
/bin/sleep 5
/usr/local/bin/DiCE/diced -e0
/usr/local/bin/DiCE/diced -d -l
実行中の diced を停止し、5秒待ってからイベントを強制実行した後、バックグラウンドで起動する。
これで、起動中に IP アドレスが変化しても対応できる。
これを cron に次のとおり登録した。
15 6 * * 0 /usr/local/etc/cron-diced
毎日曜日の朝6時15分に更新される。