| 2種類の方法を試しました。フリーウェアのDDNSクライアントDiCEを自作の簡単なスクリプトをcronで定期実行。結局、DiCEでIPアドレスの変化を5分おきに検出して更新することにしました。自作スクリプトでは一定時間おきにIPアドレスの変化に関係なく更新作業を行うので、最悪は更新直後にIPアドレスが変わると次の更新までの間(最大1時間弱)接続が出来なくなるのでこれでは実用に耐えないと判断したからです。それにDiCEはベータ版ですが多くの方が利用していること、NTTのADSLモデムNVのグローバルIPアドレスをしっかり検出出来たので問題ないとも判断出来たからです。2006-2-12 ADSLモデムSV3のURL追記、DiCEバージョンをdiced0199からdiced01912
DiCEの導入
ファイルをダウンロードして展開して実行し必要な設定をします。
# cd /usr/local/bin/
# wget http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=diced019
# tar xvzf
diced01912.tar.gz
(ダウンロードしたファイル名を確認してtarして下さい)
# /usr/local/bin/DiCE/diced
設定は、IPアドレスの検出方法と確認間隔、Zoneeditへの登録を行います。
IPアドレスの検出 > setup
検出方法:外部のスクリプトから検出
スクリプトのURL:
http://user:パスワード@192.168.1.1/info_main.html
(ADSLモデムNVの場合です。@以下はルーターの内側アドレスで192.168.1.1はデフォルト)
(ADSLモデムSV3の場合は
http://user:パスワード@192.168.1.1/cgi-bin/main.cgi?mbg_webname=status)
プライベートアドレス:検出対象外
チェック間隔:5分
サーバー保護間隔:60分(デフォルト)
IPアドレス更新 > add
サービス名:ZoneEdit
ドメイン名:あなたのドメイン
ホスト名:www と mail
ログインユーザー名:あなたのZoneEditユーザー名
ログインパスワード:あなたのZoneEditパスワード
登録IPアドレス:自動
イベント題名:www mail などご自由に
実行頻度:IPアドレス変化時
変化なし時更新間隔:7日
更新モード:ホスト
オフライン:NO
レコードタイプ:A (mailもAです)
イベント有効:Y
保存:Y
上記の設定の実際の例はこちら
設定が終わったら確認してデーモンをバックグランドで起動させます。
:list
:ex 0
:ex 1
:startd
DiCE Daemon Started !!
スタートアップ時に自動起動するようにrc.localに起動スクリプトを追加します。
# pico /etc/rc.d/rc.local
# start DiCE Dynamic DNS client at boot.
/usr/local/bin/DiCE/diced -d -l
実際に再起動して動作しているか確認します。ps aux
おまけとしてスクリプトの場合
用意してそれを1時間ごとに自動実行させます。スクリプトの場所は/etc/cron.hourly/になります。
picoで以下のスクリプトを作成してもいいですし、このページからダウンロードしてユーザー名とパスワードとドメインを編集してもかまいません。うまく動かなかったのでwwwとmail用の2つを用意します。なお、wget以下2行はドメイン名まで一行で書く必要があります。自動改行されますが先頭の場所でBackspaceキーで繋げることが出来ます。手動で実行する場合にはwget以下2行をコマンドラインから打ち込めばOKです。なお、一時間起きでは更新頻度がサーバーに対して高く、IPアドレス更新にたいして空白時間があるのであまりお勧め出来ません。どうしても上記DiCEが動かない場合に使ってください。
# pico
/etc/cron.hourly/updateIP-www_zoneedit
#! /bin/bash
# update IP address for dynamic DNS on Zonedtit
wget -O - --http-user=ユーザー名 --http-passwd=パスワード
'http://dynamic.zoneedit.com/auth/dynamic.html?host=www.yourdomain.com'
exit 0
# pico
/etc/cron.hourly/updateIP-mail_zoneedit
#! /bin/bash
# update IP address for dynamic DNS on Zonedtit
wget -O - --http-user=ユーザー名 --http-passwd=パスワード
'http://dynamic.zoneedit.com/auth/dynamic.html?host=mail.yourdomain.com'
exit 0
|