IPアドレスが変わるたびに、自分のIPアドレスをhn.orgのサーバに通知しなければなりません。そうしないとuwan.netのアドレスを検索に来た場合、古いIPアドレスを返してしまうからです。
更新タイミングとしては、接続するたびに行えばOKですが、私が利用しているT-comはPPPoAのため、モデムにIPアドレスが割当てられることになり、サーバでIPアドレスが変更されたことをそのままでは検知できません。(フレッツADSLやBフレッツなどで使用しているPPPoEの場合ですと、サーバに対してIPアドレスが振られるため、IPアドレスが変化したことをサーバで検知することが出来ます。そのため、IPアドレスをhn.orgに通知するアクションも連携して行えます。)
いろいろと試行錯誤した結果、1分おきに自分のIPアドレスを検知する方法を取りました。
# crontab -l
0-59 * * * * /root/ip_diff_check.csh
# more ip_diff_check.csh#!/bin/csh
# 現在IPを待避
mv -f /tmp/now_ip.{log,old}
# 現在のモデムのIPを取る
/root/get_now_ip.csh > /tmp/now_ip.log
#差分を取る
diff /tmp/now_ip.{log,old}
#もし、待避したIPと違う(=IPの変化あり)なら
if ($status != 0) then
#hn.orgへの更新通知
/root/update_ip.csh
endif
# more /root/get_now_ip.csh
wget -nv -q -O - 'http://root:XXXXXXX@192.168.1.1/cgi-bin/debugcmd.cgi?cmd=mbglog' | grep if_ippa.c | awk '{FS=":"; print $8}' | sed 's/
//' | awk '{FS=","; print $1}' | awk '{FS="="; print $2}' | tail -1
# more update_ip.csh
#!/bin/csh
/usr/local/bin/wget -nv -q -O /root/update_hn.org.log "http://uwan:XXXXXXXXX@dup.hn.org/vanity/update/?VER=1&IP="
「アドレスの変化が有っても無くても一分おきに通知すれば良いのでは?」という疑問が浮かぶと思いますが、相手の立場から見たら、一分おきに全世界から更新通知が来るとなると、すぐに回線が高負荷になってしまい、本来のDNSの検索に対する応答に支障が出ます。(一種のDoSアタックです。場合によっては上流プロバイダに文句が来るそうです。)
ですから、むやみに更新通知を送るのは止めるようなスクリプトを書きました。
あのー、正直いいまして、ダサダサのスクリプトです。笑ってくれて結構です(^^;
これで、とりあえずuwan.hn.orgはウチのサーバ(につながっているモデム)に割り振られたIPアドレスに対応づけ
られました。
このエントリーのトラックバックURL:
http://test.uwan.net/mt-tb.cgi/601