ダイナミックDNSに登録と自動更新

1.はじめに

各、サーバーソフトが走り始めるとアクセスするのに動的にかわるIPアドレスでは具合が悪いですね。
そこで、とても便利なダイナミックDNSを利用することによりこれが解決できます。
ダイナミックDNSとはドメイン→IP変換の正引きのみ動的に登録できる物で現在私も利用していますが
これに登録する事により外部からアクセスする際にはIPが動的に変ろうと名前だけで追っかけることができます。
そしてこれを自動で更新するソフトが有りますのでこれを利用すれば外出中にIPが変っても自動で更新し、
いつでも名前だけで自分のサーバーにアクセスすることができます。

2.まずは登録する

私の使用しているサービスで説明します。
まずこちらにアクセスして
http://www.dyndns.com/
「Sign Up Now !」からユーザー登録します。
説明が出ますので熟読し「Agree」を押すとユーザー登録画面になります。
以下のような画面になりますので各項目を入力します。
Username
Your username will be used to login to the NIC and make changes
NIC Username Requested:

Email Address
The e-mail address you enter MUST be valid; instructions on activating your account will be sent there. You must keep this address up-to-date at all times; accounts with invalid e-mail addresses will be removed, no questions asked. We do not sell our list to anyone, however we do require a valid address for contact purposes and for subscription to the all-users mailing list to provide you with important system announcements.
E-Mail Address:
Confirm E-Mail Address:

Password
The password you enter will be used to access your account. It must be 5 characters or more, and must not be the same as your username. Please be certain to type it carefully, and to type the same password twice - you'll need to be able to remember this to access your account!
Password:
Confirm Password:
まずはこの画面でユーザー登録します。
よければを押して登録します。
既に同じ名前が有る場合はエラーするので名前を変えて登録します。

登録が終わると、記入したメールアドレスにメールが届きます。
内容にはアドレスが書かれており
https://members.dyndns.com/confirm?**********************
のアドレス(*はめちゃくちゃな文字)にそのままアクセスすればconfirmでき、アカウントが有効になります。

次にログインします。
http://www.dyndns.com/
ページの上にあるユーザーパスを入力してログインします。

ログイン後の画面で、右側のYour Accountの中から[Dynamic DNS]を選び、次の画面で[Create New Host]を選ぶと、New Dynamic DNS Hostというフォームが表示される。入力内容は次の通り

HostName
自分のマシンに付けたいホスト名を入力し、右側のドロップダウンリストからドメイン名を選ぶ。dyndns.org以外のドメインはDNSの更新に時間がかかるとの噂があり(未確認)
IP Address
自分のマシンのIPアドレス。通常は自動的に現在のIPアドレスが入力されているはずなのでそのままにしておく。
Enable Wildcard
これにチェックを入れておくと、"www.ホスト名.ドメイン名"といったホスト名を指定したアクセスも可能になる("www"の部分は何を入れても同じ)。チェックを入れない場合は"ホスト名.ドメイン名"のみ。
Mail Exchanger
username@ホスト名.ドメイン名宛のメールを転送するメールサーバの指定。この宛先のメールを処理できる設定がされていなければならないため、プロバイダのメールサーバなどを指定してはいけない。よく分からない場合は空白のままにしておくこと。この場合は[IP Address]で指定したマシンに転送される
Backup MX?
これにチェックを入れると、[IP Address]で指定されたホストへ通信できない場合にメールを[Mail Exchanger]で指定されたサーバへ転送する

入力が終わったら[Add Host]でホストを追加する。既に同じホスト名が使われていた場合はエラーに再度フォームが表示されるのでホスト名を選び直す。"Hostname Created"と表示されれば成功。

WindowsNT/2000やUNIXマシンの場合、コマンドプロンプトやコンソールなどでnslookup ホスト名.ドメイン名というコマンドを実行すると、

Name:   ホスト名.ドメイン名
Address: xxx.xxx.xxx.xxx

等と表示される。このAddressの部分と、登録時に指定したIP Addressが一致していればOK。

3.自動更新する

このままでは、動的IPの場合更新が大変ですので自動で更新できるようにします。
使用するソフトはdyndnsでも紹介されている「ddclient」を使用します。
これまた運良くportsが有りましたのでportsでインストールして見ます。
# cd /usr/ports/dns/ddclient
# make install clean
# cd /usr/local/etc
# cp sample-etc_ddclient.conf ddclient.conf

インストールが終了したら自動更新の為、CONFファイルを設定します。
/usr/local/etc/ddclient.conf
# デーモンで動かすほどではないのでコメントアウトする
#daemon=300 # check every 300 seconds
# ログもCRONで動かせばメールが来るのでパス
#syslog=yes # log update msgs to syslog
#mail=root # mail update msgs to root
pid=/var/run/ddclient.pid # record PID in file.

# Webで更新(基本)
use=web
# dyndns.orgの場合はこれ
protocol=dyndns2
# dyndns.orgの場合はこれ、右は
server=members.dyndns.org
# 項目2で登録したユーザー名
login=ユーザー名を入れます
# 項目2で登録したパスワード
password=パスワードを入れます
# MXを設定する場合はコメントアウトを外して有効に
#mx=mail.hogehoge.dyndns.org
#backupmx=yes # host is primary MX?
#ワイルドカードの設定
wildcard=yes
# 更新するサーバーネームを設定
server=members.dyndns.org, \
protocol=dyndns2 \
hogehoge.dyndns.org
このファイルにはユーザーパスワードがそのままかかれているのでパーミッションを変更しておきます。
# chmod 600 /usr/local//etc/ddclient.conf
# chown root:wheel /usr/local/etc/etc/ddclient.conf

これで準備OKです。
一度ddclientを使って動作させて見ましょう。
$ su
# /usr/sbin/ddclient -daemon=0 -syslog -quiet retry
登録と変っていたら変更したと言うメッセージが出ます。
1回目はデータベース更新で何かメッセージが出た記憶が有ります。
しかし、どうしても変数定義のワーニングが出てcronだとmessagesに出て来て困るので
いろいろ調べた結果 /usr/local/sbin/ddclient の最初に
perl -w
となっており、この -w を消したらエラーしなくなりました
う〜ん、ちゃんと定義してくれれば・・・
ちなみに編集したのをそのまま make deinstall するとMD5が違うと叱られますので
アンインストールする場合やportupgradeする直前には直しましょう

うまくいったら、cronに一定時間おきにこのコマンドを実行するように
登録すれば終了です。