DDNS 自動更新

2004 現在,PPPoE 環境になったためこのスクリプトは使用していません.
IP が固定でない環境では DynamicDns(DDNS)を使って IP を自動更新します.当初 DynDns を使って更新をしていました. しかし,そのうち miniDNS では(今はもっとあるらしい)独自ドメインを使うことが出来ることを耳にしてから, m9841.info を取得して現在に至ります.

自動更新できない

miniDNS で提供されるツールは ez-ipupdate miniUpdate の2種類があります. しかし,M9841 の LAN 環境ではうまく利用することが出来ませんでした. なぜなら,これらのツールは 外向き NIC が PPPoE として利用されていることを前提に作られているためです. m9841.info の LAN 環境は見れば判るように外向き NIC は PPPoE を使用していません.

スクリプトを自作

こうなればスクリプトを自作するしかありません.こので重要になってくるのが「どのように MN7310 からグローバル IP を取得するか」ということと, 「miniDNS はどのように更新すべきか」ということです.いろいろ調べた結果,以下のようにすればそれぞれを解決できます.困ったことに MN7310 には IP そのものを取得する機能がなったのです.

 
MN7310から IP を取得(実際には1行です)
# wget -q -O - http://USER:PASS@IP/cgi-bin/main.cgi?cc_webname=STATUS \
 | grep 'ADSL IP' | sed -e ’s|^ADSL IP:||’ \
 -e ’s|Peer IP.*||’ \
ここで,USR は MN7310 のログイン名,PASS はパスワード,IP 設定したIPです

miniDNS をコマンドラインより更新(実際には1行です)
# wget "http://www.minidns.net/areg.php?opcode=ADD \
&username=miniDNS_USER&password=miniDNS_PASSWORD&host=miniDNS_HOST&ip=ipaddress"
ここで,miniDNS_USER が miniDNS のログイン名,miniDNS_PASSWORD がパスワード,
miniDNS_HOST が自分の FQDN,ipaddress が自分のグローバル IP です

次にスクリプトの仕様を考えます.今回作成したスクリプトしたの図のようになりました.
ipupdate.png
少し長いのでファイルにして置いておきました. myIP 使用方法はスクリプトを見れば判るはずです. 必要なファイルは自動で作成されないので注意してください.
このスクリプトを cron などで一定間隔で走らせることにより IP を自動更新します.MN7310 から IP を取ってくるところと, miniDNS にアクセスするところを改造すれば,応用が利くかも.