CentOSでのDDNS自動更新

元々、http://centossrv.com/domain-ieserver.shtml を参考にDiCEを入れていたが手動更新ではうまくいくけど、自動監視が上手く行っていなかった。
そのため、出先からちょっとアクセスしようとしたらDDNSマッピングが切れててアクセス不可…なんてことも何度か……。

なので今回、公式で提供してくれてるツールに切り替えてみた。

  • ieServer編

http://fedorasrv.com/domain-ieserver.shtml こちらを参考にさせていただいた。

1. スクリプトダウンロード
# wget http://ieserver.net/ddns-update.txt -O /usr/local/bin/ddns-update.pl

2. 文字コード変換
ダウンロードしたスクリプトをそのままviで開くと文字化けしたので、変換してやる。
# nkf -w8 --overwrite /usr/local/bin/ddns-update.pl

3. スクリプト編集
これは上記参考サイトのまま
# vi /usr/local/bin/ddns-update.pl

$CURRENT_IP_FILE = "/var/log/ieserver/current_ip"; ← ログ格納先変更
$LOG_FILE = "/var/log/ieserver/ip_update.log"; ← ログ格納先変更
$DDNS_UPDATE = "https://ieserver.net/cgi-bin/dip.cgi";  ← httpsへ変更

$ACCOUNT = "hogehoge";  ← ユーザ登録時に入力したサブドメイン名(hogehoge.dip.jpのfedorasrvにあたる部分)
$DOMAIN = "dip.jp";  ← ユーザ登録時に選択したドメイン名(hogehoge.dip.jpのdip.jpにあたる部分)
$PASSWORD = "xxxxxxxx";  ← ユーザ登録時に入力したパスワード

4. 実行権限付加
# chmod +x /usr/local/bin/ddns-update.pl

5. ログ保存ディレクトリ作成
# mkdir /var/log/ieserver

6. スクリプト実行
# perl /usr/local/bin/ddns-update.pl

うちの環境では 上記参考サイトのまま # /usr/local/bin/ddns-update.pl とだけやったときに、
/usr/local/bin/ddns-update.pl: line 1: #!/usr/local/bin/perl: そのようなファイルやディレクトリはありません
と怒られたので、perlコマンドの引数で渡してやる形で解決。

7. 自動実行設定
# echo "*/10 * * * * root perl /usr/local/bin/ddns-update.pl" >> /etc/cron.d/ddns-update

これで10分おきにIPチェックして、IP変更時は更新してくれる。

  • miniDNS.net編

1. ツールダウンロード
# wget http://www.minidns.net/downloads/miniupdate-0.8.tar.gz

2. 展開
# tar zxvf miniupdate-0.8.tar.gz

3. コンパイル
# cd miniupdate-0.8
# ./configure --prefix=/usr --sysconfdir=/etc
# make
# make install

4. 設定
# vi /etc/miniupdate.conf

login_id = hogehoge  ← miniDNS.netのログインID
hostname = hoge.minidns.net  ← 更新対象のドメイン名(フル)

password = xxxxxxxxx  ← miniDNS.netのパスワード
interface = eth0  ← NICの名前
no_public_ip = true  ← ルータ内などそのマシン自体がグローバルIPを持っていない場合はtrue
report_url = http://ieserver.net/ipcheck.shtml  ← グローバルIP確認用URL

5. 実行
# /usr/sbin/miniupdate

6. 自動実行設定
# echo "*/10 * * * * root /usr/sbin/miniupdate" >> /etc/cron.d/ddns-update

これで10分おきにIPチェックして、IP変更時は更新してくれる。