ddclient with DynDNS
ddclientとは
ddclientとは、ダイナミックDNS(DDNS)サービスを使用している際に、グローバルIPアドレスが変更されてしまった場合、それを自動的に検知し、DNSサービス側の設定を自動更新してくれるアプリです。
標準では、DDNSサービスサイトの DynDNS.org で取得したドメインに対応するIP アドレスを自動更新してくれます。
他のValueDomainやMyDNS等にも対応するような改変も可能で、Google等で検索すれば各種の情報が見つかると思います。
同種のアプリとしては、DiCEが有名ですが、DiCEは、PPC上ではどうも動かないようなので、PPCにも対応しているddclientを使います。
このアプリはプロバイダーから固定のグローバルIPアドレスを取得している場合は、不要なのでしょうが、持っていない場合は、必須になります。
自分の場合もグローバルIPアドレスを持っているわけではありませんが、ルーター自体はネットにつなぎっぱなしであるためか、実態的にはグローバルIPアドレスが頻繁に切り替わることはないようです。
調べて見ると、以下にあるように、一旦設定されたグローバルIPは、そうそう変わるものではないようです。
しかし、だからといってプロバイダーと契約している間、永続的に固定が保証されているわけではなく、ddclientの必要性がないわけではありません。
単純にルータの電源を切断してすぐに起動させてもグローバルIPは変化しません。
IPはプロバイダ側にあるルータ等のネットワーク機器によって割り当てられますが、特定IPの付与には期限があり、期限内に再取得をリクエストしても同一のIPしか割り当てられません。
以下は、念のためのチェックです。
グローバルIPアドレスの確認サイトです。
私のルーターAtermに設定されているグローバルIPアドレスは、http://ルーターのIPアドレス/(ex http://192.168.0.1/))とすれば、ルーターの設定メニューが表示されるので、その中から適切なものを選択すれば、確認できます。
当然、前者と後者のIPアドレスは一致しているハズです。
ddclientのインストール
右がddclient_3.8.0.tar.bz2 のダウンロードサイトです。
緑色のDownloadNowを右クリックでプロパティからダウンロードファイルのURLを取得します。
DynDNS.orgからもダウンロードできますが、こちらの方は少しバージョンが古いようです。
以下のようにwgetコマンドでダウンロードします。なお、ダウンロード先のディレクトリ(以下の例では、/home/hbirds/build)はあらかじめ作って置きます。
$ cd /home/hbirds/build $ sudo wget http://sourceforge.net/projects/ddclient/files/ddclient/ddclient-3.8.0/ddclient-3.8.0.tar.gz/download
実行結果です。
hbirds@UbuntuServer:~/build$ sudo wget http://sourceforge.net/projects/ddclient/files/ddclient/ddclient-3.8.0/ddclient-3.8.0.tar.gz/download [sudo] password for hbirds: --2010-03-16 04:59:01-- http://sourceforge.net/projects/ddclient/files/ddclient/ddclient-3.8.0/ddclient-3.8.0.tar.gz/download Resolving sourceforge.net... 216.34.181.60 Connecting to sourceforge.net|216.34.181.60|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://downloads.sourceforge.net/project/ddclient/ddclient/ddclient-3.8.0/ddclient-3.8.0.tar.gz?use_mirror=cdnetworks-kr-2 [following] --2010-03-16 04:59:04-- http://downloads.sourceforge.net/project/ddclient/ddclient/ddclient-3.8.0/ddclient-3.8.0.tar.gz?use_mirror=cdnetworks-kr-2 Resolving downloads.sourceforge.net... 216.34.181.59 Connecting to downloads.sourceforge.net|216.34.181.59|:80... connected. HTTP request sent, awaiting response... 302 Found Location: http://cdnetworks-kr-2.dl.sourceforge.net/project/ddclient/ddclient/ddclient-3.8.0/ddclient-3.8.0.tar.gz [following] --2010-03-16 04:59:05-- http://cdnetworks-kr-2.dl.sourceforge.net/project/ddclient/ddclient/ddclient-3.8.0/ddclient-3.8.0.tar.gz Resolving cdnetworks-kr-2.dl.sourceforge.net... 211.39.135.163 Connecting to cdnetworks-kr-2.dl.sourceforge.net|211.39.135.163|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 45893 (45K) [application/x-gzip] Saving to: `ddclient-3.8.0.tar.gz' 100%[============================================================>] 45,893 --.-K/s in 0.1s 2010-03-16 04:59:05 (414 KB/s) - `ddclient-3.8.0.tar.gz' saved [45893/45893]
解凍します。
$ sudo tar xzf ddclient-3.8.0.tar.gz
実行するとddclient-3.8.0というディレクトリが作成され、各種のファイルが作成されますが、このうち必要になるのは、以下の3つです。ちゃんとUbuntu用のinit.dファイルもあります。
・ddclient
・sample-etc_ddclient.conf
・sample-etc_rc.d_init.d_ddclient.ubuntu
構成ファイルのファイル名変更と適切なディレクトリへのコピー
3っつのファイルを以下のように適宜、適切なディレクトリに配置し、パーミッションを変更します。
$ sudo cp ddclient /usr/sbin
$ sudo chmod 755 /usr/sbin/ddclient
$ sudo mkdir /etc/ddclient
$ sudo cp sample-etc_ddclient.conf /etc/ddclient/ddclient.conf
$ sudo chmod 600 /etc/ddclient/ddclient.conf
$ sudo cp sample-etc_rc.d_init.d_ddclient.ubuntu /etc/init.d/ddclient
$ sudo chmod 755 /etc/init.d/ddclient
$ sudo mkdir /var/cache/ddclient
ddclient.confの編集 /etc/ddclient/ddclient.conf
$ sudo nano /etc/ddclient/ddclient.conf として、設定を変更します。
設定方法は、このサイトを参考にしました。詳細に書かれており、大変参考になります。
使い方は、このページが本家のようです。
/etc/ddclient/ddclient.confファイルを編集します。
先にコピーしたddclient.confを編集し以下を挿入・追記してもいいし、新規に以下をddclient.confとして作成してもOKです。
daemon=300 syslog=yes mail=root mail-failure=root pid=/var/run/ddclient.pid ssl=yes cache=/var/cache/ddclient/ddclient.cache max-interval=7d ← 強制変更する間隔 use=web ← グローバルIPをwebから取得する設定 login=hogehoge ← DynDNS.orgのログインユーザー名 password=ABCD1234 ← DynDNS.orgのログインパスワード server=members.dyndns.org, protocol=dyndns2 hbirds.homelinux.com ← DynDNS.orgで取得したドメイン名
max-interval=は、IPが変わっていなくても強制変更する間隔の設定です。上の例では7d(=1週間)とセットしていますが、DynDNSは4週間更新されなかった場合は、5週間目に削除する仕様になっているため、IPの変動があまりない環境にある場合は、このコマンドは必須でセットしておかないと、期限前にいちいちDynDNSアクセスして手動で強制更新する羽目になってしまいます。
次に以下をインストールします。
$ sudo aptitude install libio-socket-ssl-perl
$ sudo aptitude install sysv-rc-conf
ddclientをスタートさせます。
$ sudo /etc/init.d/ddclient.sh start
$ sudo sysv-rc-conf
=> メニュー式の起動設定画面 で適切なランレベルをddclientにセットします。
$ sudo sysv-rc-conf -list
=> サービスの起動設定状態一覧を出力で確認します。
$ sudo ddclient -daemon=0 -debug -verbose -noquiet で確認します。
成功したら最後の行に SUCCESS: hbirds.homelinux.com: …….. となります。
念のため、DynDNSのページに行くと更新日付がアップデートされているのが確認できます。
今回の設定例だと例えグローバルIPが変わらなくとも7日後に更新されることになるはずです。
ところが、後日調べてみると強制アップデートが働いていないようです。
sudo ddclient -daemon=0 -debug -verbose -noquiet を実行すれば、強制更新はされるのですが、ほうっておくと自動的に更新してくれないようです。原因究明しないと。
失礼しました。ちゃんと、自動更新されてます。
Related Posts
No Comments »
RSS feed for comments on this post. TrackBack URL
Leave a comment
You must be logged in to post a comment.