VALUE-DOMAIN
やはり、dip.jp が繋がりにくくなることがあったので、新たに DDNS が使えるドメインサービスを探しました。結局、VALUE-DOMAIN で sirius10.net を取得しました。
一部で評判が今ひとつでしたが、とりあえず、 1 年間は様子を見たいと思います。問題なければ更新していきます。dip.jp はしばらくの間は残します。
外部から名前解決させるために、VALUE-DOMAIN のネームサーバを使います。利用手順のドメインのみ利用するに従います。この中の「ダイナミックDNSの設定(ご自宅のパソコンの場合)」に書かれている内容のとおりに設定しました。
ダイナミック DNS で名前解決できるようにする
- ネームサーバーの変更
その他のドメインの説明のとおりに設定します。 - DNSの設定
IP アドレスを確認し、a レコードを設定します。 - ダイナミックDNSの設定
パスワードを設定し、ダイナミックDNS機能を有効にします。
以上で外部からの名前解決ができるようになったと思います。
IP アドレスの自動更新
次に、IP アドレスの更新ですが、通常は DiCE を使います。しかし、Raspberry Pi ではパッケージはないし、動かないと言った書き込みも見かけます。仕方がないので、IP アドレスが変わったら更新するようなシェルスクリプトを作成し、cron に登録します。root で登録します。例えば、/root/bin/chkip.sh に保存します。
$ sudo mkdir /root/bin
$ sudo vi /root/bin/chkip.sh
ファイルの内容は次のようにします。
#!/bin/bash
save_ip=/var/www/ip_sirius10.txt
result_html=/var/www/result_sirius10.txt
chk_ip_url="https://dyn.value-domain.com/cgi-bin/dyn.fcg?d="
update_url="https://dyn.value-domain.com/cgi-bin/dyn.fcg?d=ドメイン&p=パスワード&h=*"
change_ip() {
ip=$1
wget -q -O "${result_html}" "${update_url}"
result=$(head -1 "${result_html}")
if [ "${result}" == "status=0" ]; then
echo ${ip} > "${save_ip}"
echo "VALUE-DOMAIN: update ip address done."
else
echo "VALUE-DOMAIN: update ip address failed."
fi
}
ip=$(wget -q -O - "${chk_ip_url}")
if [ "$1" != "" ]; then
change_ip "${ip}"
exit
fi
if [ -f ${save_ip} ]; then
old=$(cat "${save_ip}")
else
old="0.0.0.0"
fi
if [ "${ip}" != "${old}" ]; then
change_ip "${ip}"
else
echo "VALUE-DOMAIN: ip address has not changed."
fi
実行権を与えます。
$ sudo chmod +x /root/bin/chkip.sh
引数をなにかつけて実行すれば、強制的に IP アドレスを更新します。例えば、毎週月曜日に実行するようにすればいいでしょう。引数を付けなければ、前回更新したときと IP アドレスが変わっていたら更新します。15分おきにでもチェックするようにします。
これを cron に登録します。root で実行するようにします。
$ sudo crontab -e
登録する内容は次の通りです。
0,15,30,45 * * * * /root/bin/chkip.sh
0 0 * * 0 /root/bin/chkip.sh force

ディスカッション
コメント一覧
まだ、コメントがありません