LinuxからValue-domainのDDNS(Dynamic DNS)更新
関連記事:SynologyでValueDomain向けのDDNS設定方法
SynologyでのDDNS更新も良い機能だなと思いましたが、今回はオーソドックスにLinuxホストからValue DomainのDDNS更新方法です。
Raspberry Piで設定を実施しました。
VALUE-DOMAIN(バリュードメイン)
VALUE-DOMAINのIP更新方法
VALUE-DOMAINで本設定を行う際は、VALUE-DOMAINのポータルサイトよりIP更新時に用いるドメインのパスワードを取得する必要があります。
参考URL:https://www.value-domain.com/ddns.php?action=howto
ツールなどからのアクセス先(HTTP GET/POSTリクエスト)
https://dyn.value-domain.com/cgi-bin/dyn.fcg?d=ドメイン名&p=パスワード&h=ホスト名&i=IPアドレス
パラメータ | 説明 |
---|---|
d | 更新するドメインを指定します。 例:value-domain.com |
p | 更新するドメインのパスワードを指定します。 例: 1234 |
h | 更新するドメインのホスト名を指定します。DNSレコード編集画面のホスト名と全く同じ仕様です。 例: *(全ホスト)、www、指定なしはホスト名なし |
i | 更新するドメインのIPアドレスを指定します。指定しない場合は、自動的に接続者のIPアドレスが設定されます。 aaaaレコードが存在し、IPアドレスがIPv6フォーマットの場合、aaaaレコードのホストがアップデートされます。 |
Raspberry PiからVALUE-DomainのIPアドレス変更
DDNS更新のスクリプトファイル準備
設定ファイルを作成します。ドメイン名と取得したパスワードを記載します。
# Place this file on /etc/update_ddns.conf # SECURITY: run `chmod 600 /etc/update_ddns.conf' # to make it unreadable by non-root users. DOMAIN=***.*** PASSWORD=************** HOST=*
IPアドレスを更新するスクリプトです。
IPアドレス変更時に、VALUE-DOMAINにIP変更を通知します。
#!/bin/bash CONFIG_FILE='/etc/update_ddns.conf' IP_CACHE_FILE='/tmp/update_ddns_ip' DDNS_CACHE_FILE='/tmp/update_ddns_result' # sources DOMAIN= , PASSWORD= and HOST= source $CONFIG_FILE old_ip=`[ -e $IP_CACHE_FILE ] && cat $IP_CACHE_FILE || echo ''` new_ip=`wget --quiet -O - 'https://dyn.value-domain.com/cgi-bin/dyn.fcg?ip'` if [ "$old_ip" = "$new_ip" ]; then echo "NO CHANGE ($new_ip)" logger -t UPDATE_DDNS "INFO: NO CHANGE ($new_ip)" exit 0 fi url="https://dyn.value-domain.com/cgi-bin/dyn.fcg?d=$DOMAIN&p=$PASSWORD&h=$HOST&i=" result=0 wget --quiet -O - "$url" 2>/dev/null | tee $DDNS_CACHE_FILE | grep 'status=0' >/dev/null && result=1 if (( !$result )); then echo `date` 'FAILED' logger -t UPDATE_DDNS "ERROR: FAILED result:" `cat $DDNS_CACHE_FILE` exit 1 fi echo $new_ip > $IP_CACHE_FILE echo "UPDATED ($new_ip)" logger -t UPDATE_DDNS "INFO: UPDATED with new IP:$new_ip" exit 0
作成したファイルの実行権限を変更します。
$ sudo chmod 600 /etc/update_ddns.conf
$ sudo chmod 755 /etc/update_valuedomain_ddns
定期実行登録(crontab登録)
2分、7分、12分と5分毎にスクリプトを実行し、IPアドレスが変更していないか確認を行うように、crontabにスクリプトを登録します。
$ sudo crontab -e
2-57/5 * * * * /etc/update_ddns.sh