DiCEのインストールと設定
サーバーのグローバルIPアドレスが固定でない場合DynamicDNSサービスを使用することになりますが、
そのDynamicDNSへIPアドレスの登録を自動化してくれるソフト「DiCE」のLinux版をインストールします。
ちなみに固定IPだと自前のDNSサーバーを構築する方法がありますが、じんたろうは固定IPですがDynamicDNSサービスを使用してます。
じんたろうは独自ドメインが登録できて無料の「MyDNS.jp」 と 「ZoneEdit」 を併用してます。
ここではDiCEをインストールしてZoneEditの更新イベントを登録します。
もしWindows版を使ったことがあれば簡単です。
DiCEのダウンロードとインストール
[root@jintaro ~]# cd /usr/local/bin
[root@jintaro bin]# wget http://www.hi-ho.ne.jp/cgi-bin/user/yoshihiro_e/download.cgi?p=diced019
23:58:59 (1.46 MB/s) - `diced01913.tar.gz' を保存しました [1093163/1093163]
[root@jintaro bin]# tar xzvf diced01913.tar.gz
[root@jintaro bin]# rm -f xzvf diced01913.tar.gz
|
ディレクトリ移動
DiCEダウンロード
最新バージョンは
HPを確認してください
ファイルを展開します
ファイルを削除します
|
DiCEの設定
DiCEの設定をします。
ここでは例として「ZoneEdit」を登録しています。
[root@jintaro ~]# /usr/local/bin/DiCE/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)戻る
>0
-------------------------------------------------
プライベートIPアドレスも検出対象ですか? (Y/N)
<現在:いいえ>
(P)戻る
>n
-------------------------------------------------
IPアドレスの検出をテストしますか? (Y/N)
(P)戻る
>y
検出IPアドレス>125.1.***.***
-------------------------------------------------
IPアドレスの検出をテストしますか? (Y/N)
(P)戻る
>n
-------------------------------------------------
IPアドレスをチェックする間隔を指定してください(分)
設定可能範囲は5分以上です
<現在:10>
(N)変更しない (P)戻る
>n
=================================================
DNSサーバーの負荷を軽減するために頻繁なDNS更新を防ぐ必要があります
前回の更新から一定時間DNS更新処理を行わないように保護時間を設定して
ください(分) 設定可能範囲は10分から1440分です
<現在:60>
(N)変更しない (P)戻る
>n
=================================================
設定を保存しますか? (Y/N)
(P)戻る
>y
設定を保存しました
=================================================
:
:add
新しくイベントを追加します
DynamicDNSサービス名を入力してください
"?"で対応しているサービスを一覧表示します
(P)戻る
>ZoneEdit
-------------------------------------------------
<< ZoneEdit >>
URL: http://www.zoneedit.com/
*** 情報 ***
オプションの「更新モード」について
・”ゾーン”は指定したゾーンに属する全てのホストIPアドレスを更新します。
・”ホスト”は指定したホストのみ更新します。
※ ”ゾーン”を更新する場合、ホスト名の入力は不要です。
=================================================
ドメイン名を入力してください
"?"でドメイン一覧を表示します
(P)戻る
>take2f.com
=================================================
ホスト名を入力してください
(P)戻る
>
=================================================
ログインユーザ名を入力してください
(P)戻る
>*****
=================================================
ログインパスワードを入力してください
(P)戻る
>*****
=================================================
登録するIPアドレスを入力してください
空白にすると現在のIPアドレスを自動検出します
(P)戻る
>
=================================================
このイベントに題名を付けてください
(P)戻る
>ZoneEditの更新
=================================================
このイベントを実行するスケジュールを設定します
-------------------------------------------------
実行する頻度を指定してください (番号入力)
(0)1回のみ (1)1日1回 (2)1週間に1回 (3)1ヵ月に1回
(4)その他の周期 (5)IPアドレス変化時 (6)起動時
(P)戻る
>5
-------------------------------------------------
IPアドレスがあまり変化しない環境の場合、更新せずに一定期間を過ぎると
アカウントを削除されてしまうことがあります
IPアドレスの変化が無い時に実行する間隔を指定してください
(0)7日毎 (1)14日毎 (2)21日毎 (3)28日毎
(4)35日毎 (5)56日毎 (6)84日毎
(P)戻る
>0
=================================================
詳細オプションを設定します
-------------------------------------------------
[ 更新モード ]
(0)ゾーン (1)ホスト
番号>0
-------------------------------------------------
[ オフライン ]
(0)NO (1)YES
番号>0
-------------------------------------------------
[ レコードタイプ ]
(0)A (1)MX
番号>0
=================================================
このイベントを有効にしますか? (Y/N)
(イベントの有効/無効は"EN/DIS"コマンドで切替えられます)
>y
=================================================
イベントを保存しますか? (Y/N)
>y
イベント"ZoneEditの更新"を保存しました
=================================================
:
:list
(No.) (イベント名) (スケジュール) (次回予定)
0 * ZoneEditの更新 IPアドレス変化時 (7日毎) 03/06 00:08
:ex 0
+ 1/26 2:54 にZoneEditの更新の更新が実行されました
IPアドレスを更新しました
:exit
[root@jintaro bin]#
|
DiCE を起動します
コマンド入力待ちになる
「?」を入力
←ヘルプが表示される
「setup」を入力
「0」 自動検出を選択(注1)
「n」 いいえを選択
「y」を選択
このIPアドレスが正しいかどうか
こちらで確認しましょう
「n」
「n」 変更しない
「n」 変更しない
「y」 設定保存
「add」でイベント追加
ここでは例として「ZoneEdit」
(わからない場合は「?」で
一覧を表示
←ZoneEdit固有の情報が
表示される
←ドメイン名を入力
←空でenter
ZoneEditのユーザーIDを入力
ZoneEditのパスワードを入力
空白でENTER
わかりやすい名前をつける
「5」 IPアドレス変化時
「0」 7日毎
「0」 ゾーン
「0」 NO
「0」 A
「y」
「y」
「list」を入力
←0番に先ほど登録したイベントが
表示されている
「ex 0」でイベントを実行してみる
←更新成功
「exit」 Dice終了
|
DiCEの自動起動及びデーモン動作
サーバー起動時にDiCEを自動で起動するようにします。
その際デーモン動作してログも記録するようにします。
[root@jintaro ~]# /usr/local/bin/DiCE/diced -d -l
=-=-=- DiCE DynamicDNS Client -=-=-=
Version 0.19 for Japanese
Copyright(c) 2001 sarad
DiCE Daemon Started !!
[root@jintaro ~]# echo /usr/local/bin/DiCE/diced -d -l >> /etc/rc.d/rc.local
[root@jintaro ~]# reboot
[root@jintaro ~]# ps aux | grep dice
root 2049 0.0 0.0 5024 460 ? Ss 03:33 0:00 /usr/local/bin/DiCE/diced -d -l
|
DiCEをデーモン起動
「-d」 デーモン動作
「-l」 ログを取る
デーモン起動完了
DiCEのデーモン起動を
/etc/rc.d/re.localに追加
再起動してみる
psコマンドで確認
←DiCEが起動している
|
DiCEがIPアドレスの自動検出に失敗する場合
当サーバーの環境でDiCEがIPアドレスの自動検出に失敗することがありました。(違うアドレスを検出する)
おそらくPPPoEマルチセッションで使用しているためルータにWAN側アドレスが2つある為だと思います。
そのため以下のようにしています。
[root@jintaro ~]# /usr/local/bin/DiCE/diced
=-=-=- DiCE DynamicDNS Client -=-=-=
Version 0.19 for Japanese
Copyright(c) 2001 sarad
:setup
IPアドレスの検出方法を指定してください
(0) 自動検出
(1) ローカルのネットワークアダプタから検出
(2) 外部のスクリプトから検出
<現在:0>
(N)変更しない (P)戻る
>2
-------------------------------------------------
スクリプトのURLを入力してください
<現在:>
(N)変更しない (P)戻る
>http://hoge.com/~hoge/check_ip.cgi
(以下省略)
|
DiCEを起動
←setupに入る
2 を選択
IPアドレスを応答してくれる外部の
cgiスクリプトを指定する
|
DiCEの「:setup」コマンドで「IPアドレスの検出方法を指定してください」のところで
「(2) 外部のスクリプトから検出」 を選択
「スクリプトのURLを入力してください」のところで外部のcgiスクリプトを指定する。
(当サーバーでは契約しているプロバイダのHPスペースに以下のcgiスクリプトを置いてます。
他にも
というDynamicDNSサービスが提供しているスクリプトを利用させてもらうのもいいと思います。
IPアドレスを応答する自作cgiスクリプトの例
#!/usr/local/bin/perl
print "Content-Type: text/html\n\n";
print "Your_IP=$ENV{'REMOTE_ADDR'}\n";
|
その他
DiCEの設定は /usr/local/bin/DiCE/ の
dice.ini (全体の設定)
dice.dat (イベントの設定)
の2つです。
ほかのマシンに設定を移す場合はこの2つのファイルをコピーします。
|