sea side she side

写真と山、資格が好きなアラフォーエンジニアのブログ

VALUE DOMAINとダイナミックDNS

   

自宅でサーバを24h365d動かしているのがばからしくなってさくらのVPSが始まった時に移しました。電気代は3,000円近く安くなりました。

独自ドメインは安いのでVALUE DOMAINを利用していますが、どうにもこうにも彼らが用意してくれているネームサーバが不安定です。サーバ監視で障害検知したと思ったらコンソールは取れるし、IPアドレス直打ちだとpingも通る。なんだろと思っていたらネームサーバが引けないなんてことが結構ありました。

そんな中、さくらがVPS契約者に対してDNSのサービスを5ゾーン無料でつけてくれるようになったのでそちらに移設させました。

たださくらはダイナミックDNSが使えないので、自宅などの固定じゃないIPアドレスの機器たちが困ってしまいます。

なので実験用で契約したドメインをdDNS用にして、VALUE DOMAINへネームサーバを1つだけ残すことにしました。

これで無事解決と思っていたのですが、ここ最近また色々困ってきました。普段使っているクライアントにdDNS更新用のツールが入っているのですが、24時間動いていないのでIPアドレス変更に追従しきれないのです。

某社謹製ルータで何とかできないかなと思っていたのですが、ふとfonにOpenWrt入れたのを思い出しました。ただOpenWrtにPerlとか突っ込むのは結構つらい…。

ということでshellで動くのないかなと思ってぐぐったらいました、偉大なる先人が。

# IP チェック処理
CHKLOGFILE="ip_chk.log"
MYIPFILE="global_ip.log"
 
date > $CHKLOGFILE
 
MYIP=`wget -q -O - http://dyn.value-domain.com/cgi-bin/dyn.fcg?ip`
OLDMYIP=`cut -f 1 $MYIPFILE`
 
if test $MYIP = $OLDMYIP ; then
    echo "Not Change IP" >> $CHKLOGFILE
    exit
fi
 
echo "Change IP" >> $CHKLOGFILE
 
# DDNS 登録処理
REGLOGFILE="ddns_reg.log"
echo "****************************************" >> $REGLOGFILE
echo "DDNS Registration" >> $REGLOGFILE
date >> $REGLOGFILE
echo "$OLDMYIP → $MYIP" >> $REGLOGFILE
 
MYDOMAIN="ドメイン名"
MYPW="パスワード"
MYHOST="ホスト名"
DYNURL="http://dyn.value-domain.com/cgi-bin/dyn.fcg?d=$MYDOMAIN&p=$MYPW&h=$MYHOST&i=$MYIP"
 
RET=`wget -q -O - $DYNURL`
echo "$RET" >> $REGLOGFILE
 
if [ `echo "$RET" | egrep "status=0"` ] ; then
    echo $MYIP > $MYIPFILE
    echo "Registration Successful."
else
    echo "Registation Failed."
fi
 
exit

zontheworldさんより引用

これをcronで仕込んで完了。5分ごとに設定したので、これでほぼ追従することができるようになりました。

今日も偉大なる先人たちに感謝。


 - IT , , , , , ,