GnuDIP Dynamic DNSの設定


GnuDIP Dynamic DNSを設定する(無料でDDNSを利用する)

GnuDIPとは?

PerlスクリプトでできたDynamicDNS更新クライアントです。
無料で利用可能です。自宅では固定IPは利用していません。Webサーバ公開の際にはホスト名からIPアドレスを取得しますが、通常IPアドレスは変動してしまいます。そこで、変動したIPアドレスをその都度DNSサーバへ登録する必要が出てきます。ちなみに、このwebサイトは、Orange Pi PCにDDNSクライアントを設定し、自宅プロバイダ契約で運営しています。

DDNSサーバとして、CyberGate
DDNSクライアントとして、GnuDIPを利用しました。
※CyberGateでは、DiCEの利用を推奨しますが、残念ながらOrange PI PCは、x86CPUでないため動作しませんでした。

DNSサーバ利用登録 CyberGateへの登録と設定

ここでCyberGate会員登録します。右上に会員登録ボタンがあります。

ログインできたら、CyberGate DDNSホストの追加を行います。


設定例(このサイトはこれで運営しています。)
ご希望のサブドメイン: technical
ご希望のドメイン: mars.ddns.vc


DNSクライアント GnuDIPダウンロードとインストール

ここからGnuDIPダウンロードします。

GnuDIP Client Softwareからリンクをたどると、ダウンロードできます。

wget http://gnudip2.sourceforge.net/gnudip-www/latest/gnudip/html/client/UNIX/gnudip-2.3.5-gdipc.tar.gz


解凍します

tar -vvzxf gnudip-2.3.5-gdipc.tar.gz


所定の場所(自分の好きな場所)に配置します

/usr/local/sbin/gdipc/


DNSクライアント GnuDIPの設定について

設定にはCyberGateのDDNSを受け付けるサーバ名ポート番号を知る必要があります。

DDNSクライアントとして有名なDiCEには、各サーバ名とポート番号が記載されているファイルがあるのでそれを参考にしました。


DiCE参考にする設定ファイルの場所

DiCE/plug-in

less CyberGate.plg


参考にするための記述

Script=ddns.cybergate.planex.co.jp:3495/


GnuDIPの設定スクリプトを実行します。

Configuration fileはデフォルトにします。

/usr/local/sbin/gdipc/bin/gdipc.pl -c

※設定ファイルを明示的に指定したい場合は./gdipc.pl -c -f gdipc.confとします。


Using Update Configuration Mode
Configuration file name: /root/.GnuDIP2(デフォルトの設定ファイル名になります)
Username: technical(ご希望のサブドメインで指定したホスト名)
Domain: mars.ddns.vc(ご希望のドメインで設定したドメイン名)
Connect by direct TCP (d) or web server (w) [d]:(省略)
GnuDIP Server - host[:port]: ddns.cybergate.planex.co.jp:3495
Server URL [/gnudip/cgi-bin/gdipupdt.cgi]:(省略)
Password: XXXXXX(パスワード)
Cache File [/root/.GnuDIP2.cache.technical.mars.ddns.vc]:(省略)
Minimum Seconds Between Updates [0]:(省略)
Maximum Seconds Between Updates [2073600]:(省略)


DDNS登録がうまくいくか試験する

DDNS登録を実行して試験します。

/usr/local/sbin/gdipc/bin/gdipc.pl -g :3495

-g オプションがポイントです。ゲートウェイの外側のIPアドレスを取得してくれます。:3945はポートですが、適当に数字を決めて問題ありません。


実行結果がこちら successfulの文字列が出たら成功です。
==== gdipc.pl running: Sat Jan 30 08:19:53 2016 ====
Configuration file name: /root/.GnuDIP2
Cache file name: /root/.GnuDIP2.cache.technical.mars.ddns.vc
Address validation failed for 218.227.170.179 - send failed: 無効な引数です
Attempting update at ddns.cybergate.planex.co.jp ...
Update to address 218.227.170.179 from 218.227.170.179 successful for technical.mars.ddns.vc


-g オプションについて

usage: [ -g sendport:recvport ]
usage: -g: Client is behind a gateway. Request GnuDIP server to register
usage: address it sees connection from, and pass it back in response.
usage: Specify port to send address validation packet to and port gateway
usage: will forward it to.

GnuDIPオプションの解説


DDNSを定期実行させる

DDNS登録を毎時0分に定期実行し、実行ログを残します。(ログは過去1回のみ)

0 * * * * /usr/local/sbin/gdipc/bin/gdipc.pl -g :3495 > /var/log/gnudip.log

設定ファイルを作成する場合

同じサーバから、違うDDNS設定ファイルを実行したい場合は、コンフィグファイルを明示する必要があります。

/usr/local/sbin/gdipc/bin# ./gdipc.pl -c -f コンフィグファイル名.conf
注意点として
Cache File [/root/.GnuDIP2.cache.technical.mars.ddns.vc]:キャッシュファイルの場所
キャッシュファイルの場所を必ず指定してください。これをしないと
/usr/local/sbin/gdipc/bin# ./gdipc.pl -f コンフィグファイル名.conf -g :3495
====  gdipc.pl running:  Tue Mar 29 06:01:29 2016  ====
Configuration file name: コンフィグファイル名.conf
Ignoring bad line found in configuration file:
というエラーが発生して、うまく実行できません

しっかり実行できるのを確認したらcronへ登録します
1 * * * * /usr/local/sbin/gdipc/bin/gdipc.pl -f /usr/local/sbin/gdipc/bin/コンフィグファイル名.conf -g :3495 >> /var/log/gnudip.log