自宅サーバー ≫ Linux Server ≫ CentOS 6.5 ≫ DDNSの自動更新(DiCE)

 
DDNSの自動更新

DDNS自動更新ソフト『DiCE』を使いDDNSの自動更新を行う

ダウンロード
このソフトはダウンロードしたものを展開すれば使えるようになる

ソフトを保存するディレクトリに異動

 
 
[root@centos]# cd /usr/local/bin   <--- 入力
 
DiCEのダウンロード
 
 
[root@centos bin]# wget http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=diced019 <-- 入力
 
ダウンロードしたものを展開
 
 
[root@centos bin]# tar zxvf diced01914.tar.gz   <--- 入力
 
設定

/usr/local/bin/DiCE に移動

 
 
[root@centos bin]# cd DiCE   <--- 入力
 
移動後 DiCE を起動して設定

※ここからは日本語表記が多用されているのでコンソール(端末)等の文字コードを UTF-8 で利用している場合は euc-jp に変更

 
 
[root@centos DiCE]# ./diced   <--- 入力
 =-=-=- DiCE DynamicDNS Client -=-=-=
 Version 0.19 for Japanese
 Copyright(c) 2001 sarad

 :
 
: が表示されるので ? を入力

起動オプションとコマンド一覧が表示

 
 
[root@centos bin]# ./diced
 =-=-=- DiCE DynamicDNS Client -=-=-=
 Version 0.19 for Japanese
 Copyright(c) 2001 sarad

 :
?   <--- 入力
 *** 起動オプション ***

 diced [-s|-d|-h|-e] [-b] [-l]

 -s            起動と同時に開始します
 -d            起動と同時にバックグラウンドで開始します
 -h            コマンドオプションを表示します
 -b            イベント実行時にビープ音を鳴らします
 -l            ログを作成します
 -e<EventNo>   指定のイベントを実行して終了します


 *** コマンド一覧 ***

 exit             DiCEを終了します
 start            DiCEを開始します
 startd           DiCEをバックグラウンドで開始します
 setup            DiCEの環境設定を行います
 list             登録済のイベント一覧を表示します
 add              イベントを追加します
 ed[it] <番号>    イベントを編集します
 del <番号>       イベントを削除します
 en[able] <番号>  イベントを有効にします
 dis[able] <番号> イベントを無効にします
 ev[ent] <番号>   イベントの情報を表示します
 ex[ec] <番号>    イベントを今すぐ実行します
 logcr            ログをクリアします
 :
 
まずは環境設定をするので setup と入力

設定は自分の環境に合わせて設定

 
 
[root@centos bin]# ./diced
 =-=-=- DiCE DynamicDNS Client -=-=-=
 Version 0.19 for Japanese
 Copyright(c) 2001 sarad

 :
?
 *** 起動オプション ***

 diced [-s|-d|-h|-e] [-b] [-l]

 -s            起動と同時に開始します
 -d            起動と同時にバックグラウンドで開始します
 -h            コマンドオプションを表示します
 -b            イベント実行時にビープ音を鳴らします
 -l            ログを作成します
 -e<EventNo>   指定のイベントを実行して終了します


 *** コマンド一覧 ***

 exit             DiCEを終了します
 start            DiCEを開始します
 startd           DiCEをバックグラウンドで開始します
 setup            DiCEの環境設定を行います
 list             登録済のイベント一覧を表示します
 add              イベントを追加します
 ed[it] <番号>    イベントを編集します
 del <番号>       イベントを削除します
 en[able] <番号>  イベントを有効にします
 dis[able] <番号> イベントを無効にします
 ev[ent] <番号>   イベントの情報を表示します
 ex[ec] <番号>    イベントを今すぐ実行します
 logcr            ログをクリアします
 :
setup   <--- 入力
 IPアドレスの検出方法を指定してください
 (0) 自動検出
 (1) ローカルのネットワークアダプタから検出
 (2) 外部のスクリプトから検出
 <現在:0>
 (N)変更しない (P)戻る
 >
n   <--- 自動検出のままで良いので n を入力
 -------------------------------------------------
 プライベートIPアドレスも検出対象ですか? (Y/N)
 <現在:いいえ>
 (P)戻る
 >
n   <--- プライベートIPアドレスは検出しなくても良いので n を入力
 -------------------------------------------------
 IPアドレスの検出をテストしますか? (Y/N)
 (P)戻る
 >
n   <--- テストはしてもしなくても良いので好きな方を入力
 
y を入力した場合は下記のようにIPアドレスが表示され再度同じ質問をされるので n を入力
 
検出IPアドレス>123.456.78.90
 
-------------------------------------------------
 IPアドレスの検出をテストしますか? (Y/N)
 (P)戻る
 >
n   <--- 入力

 -------------------------------------------------
 IPアドレスをチェックする間隔を指定してください(分)
 設定可能範囲は5分以上です
 <現在:10>
 (N)変更しない (P)戻る
 >
5   <--- 任意の間隔を入力
 =================================================
 DNSサーバーの負荷を軽減するために頻繁なDNS更新を防ぐ必要があります
 前回の更新から一定時間DNS更新処理を行わないように保護時間を設定して
 ください(分) 設定可能範囲は10分から1440分です
 <現在:60>
 (N)変更しない (P)戻る
 >
10   <--- 任意の間隔を入力
 =================================================
 設定を保存しますか? (Y/N)
 (P)戻る
 >
y   <--- 保存にするので y を入力
 設定を保存しました
 =================================================
 :
 
続いて新しい設定を追加するので add と入力

設定は自分の環境に合わせて設定

 
 :
add   <--- 入力
 新しくイベントを追加します

 DynamicDNSサービス名を入力してください
 "?"で対応しているサービスを一覧表示します
 (P)戻る
 >
?   <--- 入力
 DnsTokyo  Dyn.ee  RegisterFly  VALUEDOMAIN  MyIP.US  miniDNS  HAMMERNODE  Microtech  Earth  yi  USA
 @nifty  DION   Netservers  ODS  todd  ieServer  Dynamx  DynDSL  MyDNS.JP  changeIP  nicolas  cheapnet
 DynDNSdk  did.expoze.com  ysdn   DNS2Go  eNom  MyServer  DHS  dnip  p2p  onamae.com  Now.nu  IPDYN
 No-IP  ZoneEdit  ddns.ca  cjb  ZiVE  GetmyIP  pcc.jp  unicc  Dynup  ZENNO.COM  WebReactor  3domain
 ddo.jp  dyns  DtDNS  ODN  livedoor  SelfHOsT  BIGLOBE  theBBS  ARTofDNS  JPN.ch  JSPEED  CyberGate 
 DDNS.nu  Dynu  instat  dyndns  dhs  my-domain  dynDNS.it  dnsQ  StaticCling  EveryDNS
 =================================================
 新しくイベントを追加します

 DynamicDNSサービス名を入力してください
 "?"で対応しているサービスを一覧表示します
 (P)戻る
 >
******   <--- 利用するDDNSサービスの名前を入力
 -------------------------------------------------
 << ***** Dynamic DNS Service >>
 URL: http://www.*****.com/
 *** 情報 ***
 <ポート3495を使用します>
 =================================================
 ドメイン名を入力してください
 "?"でドメイン一覧を表示します
 (P)戻る
 >
?   <--- 入力
 *****.com xxxxx.com *****.jp xxxxx.jp
 =================================================
 ドメイン名を入力してください
 "?"でドメイン一覧を表示します
 (P)戻る
 >
*****.com   <--- 利用するドメインを入力
 =================================================
 ホスト名を入力してください
 (P)戻る
 >
xxxx   <--- ホスト名を入力
 =================================================
 ログインユーザ名を入力してください
 (P)戻る
 >
   <--- 通常はホスト名と同じなので入力の必要なし ホスト名と違う場合に入力
 =================================================
 ログインパスワードを入力してください
 (P)戻る
 >
********   <--- パスワードを入力
 =================================================
 登録するIPアドレスを入力してください
 空白にすると現在のIPアドレスを自動検出します
 (P)戻る
 >
   <--- 自動検出するので 何も入力しない
 =================================================
 このイベントに題名を付けてください
 (P)戻る
 >
DDNS-Reflesh   <--- 適当な名前を付けます
 =================================================
 このイベントを実行するスケジュールを設定します
 -------------------------------------------------
 実行する頻度を指定してください (番号入力)
 (0)1回のみ (1)1日1回 (2)1週間に1回 (3)1ヵ月に1回
 (4)その他の周期 (5)IPアドレス変化時 (6)起動時
 (P)戻る
 >
5   <--- IPアドレスが変わった時に実行すれば良いので 5 を入力
 -------------------------------------------------
 IPアドレスがあまり変化しない環境の場合、更新せずに一定期間を過ぎると
 アカウントを削除されてしまうことがあります
 IPアドレスの変化が無い時に実行する間隔を指定してください
 (0)7日毎 (1)14日毎 (2)21日毎 (3)28日毎
 (4)35日毎 (5)56日毎 (6)84日毎
 (P)戻る
 >
0   <--- 適当な間隔を入力
 =================================================
 詳細オプションを設定します
 -------------------------------------------------
 [ オフライン ]
 (0)No (1)Yes
 番号>
0   <--- 常時接続なので 0 を入力
 =================================================
 このイベントを有効にしますか? (Y/N)
 (イベントの有効/無効は"EN/DIS"コマンドで切替えられます)
 >
y   <--- 有効にするので y を入力
 =================================================
 イベントを保存しますか? (Y/N)
 >
y   <--- 保存にするので y を入力
 イベント"DDNS-Reflesh "を保存しました
 =================================================
 :
list   <--- 保存した設定を確認するので list を入力
 (No.) (イベント名) (スケジュール) (次回予定)
 0 * DDNS-Reflesh IPアドレス変化時 (7日毎) 07/08 17:02
 :
exit   <--- 終了
 
設定確認及び動作確認
上記でも書きましたが文字コードが euc-jp でないと正常に表示されないので文字コードが euc-jp 以外の場合は変更
 
 
[root@centos]# /usr/local/bin/DiCE/diced   <--- 入力
 =-=-=- DiCE DynamicDNS Client -=-=-= 
 
 :
list   <--- 入力(設定確認)
 (No.)   (イベント名)       (スケジュー ル)                (次回予定)
   0 *   DDNS-Reflesh      IPアドレス変化時 (7日毎)     02/20  20:15
 
 :
ex 0   <--- 入力(DNS更新の実行 ex の後にイベントNoを付ける)
 + 2/19 15:33 にDDNS-Refleshが実行されました
 IPアドレスを更新しました
 
 :
ev 0   <--- 入力(DNS更新確認 ev の後にイベントNoを付ける)
 -------------------------------------------------
 [イベント名         ] DDNS-Reflesh
 [状態               ] 有効
 [DNSサービス        ] DDNS
 [更新ホスト         ] papa-net.info
 [ユーザ名           ] *****
 [IPアドレス         ]
 [スケジュール       ] IPアドレス変化時 (7日毎)
 
 [次回更新日時       ] 2012年2月26日、15:33:45
 [最終実行日時       ] 2012年2月19日、15:33:45
 [最終更新IPアドレス ] 123.456.789.000
 [最終更新結果       ] IPアドレスを更新しました
 (ID:000000)
 -------------------------------------------------
 status=0 OK
 -------------------------------------------------
 
設定変更
 
 
[root@centos]# /usr/local/bin/DiCE/diced   <--- 入力
 =-=-=- DiCE DynamicDNS Client -=-=-= 
 
 :
list   <--- 入力( リスト表示)
 (No.)   (イベント名)       (スケジュー ル)                (次回予定)
   0 *   DDNS-Reflesh      IPアドレス変化時 (7日毎)     02/20  20:15
 
 :
ed 0   <--- 入力( 変更したいNo)  
 
 
後は最初に設定を行った時と同様
 
起動
DiCEの起動
 
 
[root@centos]# /usr/local/bin/DiCE/diced -d -l   <--- 入力
 =-=-=- DiCE DynamicDNS Client -=-=-=
 Version 0.19 for Japanese
 Copyright(c) 2001 sarad

 DiCE Daemon Started !!
 
DiCEの自動起動設定
 
 
[root@centos]# echo "/usr/local/bin/DiCE/diced -d -l" >> /etc/rc.local   <--- 入力
 
[root@centos]# echo >> /etc/rc.loca   <--- 入力
 
DiCEの起動・常駐確認
 
 
[root@centos]# ps -C diced   <--- 入力
   PID   TTY         TIME CMD
  1144   ?       18:44:17 diced
 
上記のようにDiCEのプロセスが表示されればOK
DiCEによる自動更新ができない場合
環境等により極稀に自動更新が出来ない場合があります

確認方法は下記の緑字のように最終実行日時が設定した間隔よりも永くなっている場合は実行されなかったと判断できる

ちなみに私の設定では『IPアドレス変化時』もしくは『7日毎』なので[次回更新日時]と[最終実行日時]が1ヶ月以上間隔が空く事はないはずである

 
 
[root@centos]# /usr/local/bin/DiCE/diced   <--- 入力
 =-=-=- DiCE DynamicDNS Client -=-=-= 
 
 :
ev 0   <--- 入力(DNS更新確認 ev の後にイベントNoを付ける)
 -------------------------------------------------
 [イベント名         ] DDNS-Reflesh
 [状態               ] 有効
 [DNSサービス        ] DDNS
 [更新ホスト         ] papa-net.info
 [ユーザ名           ] *****
 [IPアドレス         ]
 [スケジュール       ] IPアドレス変化時 (7日毎)
 
 [次回更新日時       ] 2012年2月26日、15:33:45
 
[最終実行日時       ] 2012年1月14日、10:16:32
 [最終更新IPアドレス ] 123.456.789.000
 [最終更新結果       ] IPアドレスを更新しました
 (ID:000000)
 -------------------------------------------------
 status=0 OK
 -------------------------------------------------
 
根本的な解決にはなりませんが下記のようにcronにて定期的に実行させるようにします

cronファイルの作成

 
 
[root@centos]# vi /usr/local/etc/diced-cron   <--- 入力
 
以下を新規に記述
 
#/bin/sh
 /usr/bin/killall diced
 /bin/sleep 10
 /usr/local/bin/DiCE/diced -e0
   <--- イベントNo.0を実行して終了
 
/usr/local/bin/DiCE/diced -d -l    <--- バックグラウンドで起動・開始及びログの作成
 
cronの定期実行
 
 
[root@centos]# crontab -e   <--- 入力
 
以下を新規に記述
 
30 2 * * * /usr/local/etc/diced-cron    <--- 毎日2時30分に上記cronファイルを実行
 

戻る