
HOME
DynDNSによるドメイン取得
ADSLなどによる常時接続が普及してくると、自宅にサーバを立ち上げる人も増えて来ていることでしょう。こうした時にあると便利(というか無いと不便)なのがドメインです。ドメインを取得しておくと、接続の度に変わってしまうIPアドレスをドメイン名でアクセスでき、サーバが利用しやすくなります。
ドメインを実際に使用するには、そのドメイン情報を提供するための常にインターネットに接続された、グローバルの固定IPアドレスを持ったマシンが必要になります。普通個人ではそのような環境は持ってませんから、仮にドメインを持っていたとしても利用できませんでした。
そんな中、ダイナミックDNSと呼ばれる、動的にドメイン情報を変更できるサービスが DynDNS により提供されるようになりました。動的にというのは、そのドメインを利用したいマシンから専用のツールを使って自分のIPアドレスのアップデート情報を送ることで、ドメイン情報と自分のIPアドレスを一致させることができるようになります。これにより全世界から自分のマシンに対してドメイン名でアクセスすることが可能になります。ドメインでアクセスできれば、自分のサーバにメイルも送れますし、リモートでログインすることもできます。もちろんWebサーバを動かしてWebページを公開することも可能です。
※注意
自宅にサーバを立ち上げる行為はもちろん個人の自由ですが、サーバを立ち上げることは世界中の誰でもそのサーバに攻撃できるということを意味します。適切なセキュリティが設定されていないサーバは攻撃の対象となります。「たいしたデータが入ってないからかまわない」という認識は誤りです。不正行為の痕跡を消すために踏み台として利用される恐れがあります(つまり不正行為を受けた側からはあなたがそれを行ったように見られるということです!)。サーバの立ち上げはセキュリティについて十分理解した上で行う必要があります。
DynDNSではなんでも好きなドメインを取れるわけではなく、国別コードと組織別コード(ドメインの、ドットで区切られた右から2つ目までの文字列)のドメインは固定になっています(これとは別にどこか別のドメイン取得代行サービスで取得したドメインをDynDNSで登録・利用することもできます)。2002年1月現在で設定できるドメインは下記の通りです。
| 組織別コード | 国別コード |
|---|---|
| ath | cx |
| dnsalias | com, net, org |
| dyndns | biz, info, org, tv, ws |
| homedns | org |
| homeftp | net, org |
| homeip | net |
| homelinux | com, net, org |
| homeunix | com, net, org |
| kicks-ass | net, org |
| merseine | nu |
| mine | nu |
| serveftp | net, org |
| shaknet | nu |
これらのいずれかにサブドメインとして好きな文字列(もちろん誰かが既に使っていない)を使用したドメインを利用することができます。例えば uzomuzo.dyndns.org などになります。
DynDNSの利用には登録が必要です。DynDNSのトップページから右側にある Sign UP のリンクをたどります。次のページの左上 New Accountをたどると、ACKNOWLEDGEMENT の確認になります。ちゃんと読んだら :-) Agreeします。次の画面ではユーザ名を指定します。ログイン時に使用するアカウントになります。確認用のemail アドレスを入れたら Create Account します。このemail アドレスに仮のパスワードが送付されるので、ちゃんと受け取れるアドレスを記入しましょう。なお、このアドレス宛にごくたまに(数ヶ月に1度)DynDNSからサービスに関する情報(アップグレード情報など)のemailが送られるのであらかじめ認識しておいて下さい。
仮のパスワードのemailを受け取ったら、登録は完了しています。トップページから Login をたどり、Login しましょう。ユーザ名とパスワードを聞かれるので入力します。
メンバー専用ページではemail アドレスやパスワードの変更、そしてもちろん ダイナミックDNSの登録などを行うことができます。ページ右側、Dynamic DNSをたどった後、Create New Host を選びます。ここでは以下に従って情報を入力します。
| 項目 | 意味 |
|---|---|
| hostname | ホスト名を指定します。プルダウンメニューで好きなドメインを選ぶことができます。 |
| IP Address | ドメインでアクセスするマシンのIPアドレスを指定します。普通はこのページを開いたマシンのIPアドレスになっているはずです。とりあえずそのままでOKです。 |
| Enable Wildcard | hostnameのさらに左側のサブドメインにワイルドカードを使用するかどうかを指定します。チェックすると、hancho.zawa.dyndns.org や otuki.zawa.dyndns.org など、何を指定しても zawa.dyndns.org に自動的にエイリアスされます。 |
| Mail Exchanger | hostnameで指定したサーバでメイルを受信しない場合のメイルを受信するサーバを指定します。下記の Backup MXが指定されている場合、hostnameで指定したサーバでメイルを受信できない場合の代替メイルサーバの指定になります。よくわからないなら記述しない方が無難です。 |
| Backup MX? | Mail Exchanger に記述したホストをバックアップ用のメイルサーバにする場合にチェックします。よくわからないならチェックしない方が無難です。 |
入力したら Add Hostで登録されます。
※追記('03-1-30)
実際に MX レコードを設定する機会があったので、その時の情報を整理します。
例:自分でsample.dyndns.org というサーバを立ち上げている場合。
| やりたいこと | 設定内容 | 最終的に設定されるDNSのMXレコードの内容 | |
|---|---|---|---|
| Mail Exchanger |
Backup MX? | ||
| sample.dyndns.orgでメイルを受信したい | 書かない | チェックしない | MXレコード無し(直接配信) |
| sample.dyndns.org ではなく、hoge.null.comでメイルを受信したい (hoge.null.com で sample.dyndns.org という宛先のメイルを受け入れるように設定されている必要があります) |
hoge.null.com | チェックしない |
sample.dyndns.org. 43200 IN MX 10 hoge.null.com. |
| 普段は sample.dyndns.org でメイルを受信しているが、今度しばらく
sample.dyndns.org のサーバを止める必要があり、その間メイルを
hoge.null.com で受信したい (hoge.null.com で sample.dyndns.org という宛先のメイルを受け入れるように設定されている必要があります) |
hoge.null.com | チェックする |
sample.dyndns.org. 43200 IN MX 5 sample.dyndns.org. sample.dyndns.org. 43200 IN MX 10 hoge.null.com. |
※注意
既に登録してあるMXレコードの情報を変更した場合、外部にそれが反映されるのには最大半日ぐらいかかります。これは
DNS のキャッシュの有効期限の指定によるものですが、早く反映させたい場合はいったんそのホスト情報を削除して新しく作り直すと数十分で反映できるようです。
登録が完了した時点でそのドメインが有効になります。自分のマシンから取得したドメインに対してping を実行すれば、登録したIPアドレスが返ってくるはずです。外部からこのドメインにアクセスする場合、多少の時間(普通、数十分程度)が必要になることがあります。これは利用しているDNSサーバに情報がキャッシュされているためです。
さて、サーバをリブートするなどIPアドレスが変わった場合、上記の登録画面に再度アクセスすれば新しいアドレスとして更新できますが、これでは面倒なので、普通はサーバにアップデートを行うためのクライアントソフトをインストールします。これは各環境(Windows, GNU/Linuxなど)によって異なり、http://clients.dyndns.org/ からダウンロードすることができます(ページにも書かれてますが、このアップデートソフトウェアの利用は自身の責任で行う必要があります。ツールに関する質問は DynDNSでは受け付けていないので注意して下さい)。
私はGNU/Linux上で DD-UP を使っています。他のでもだいたい似たようなものでしょう。ここではDD-UPでの例を示します。
インストール方法は、ダウンロードした ddup-***.tar.gz のファイルを適当なディレクトリに展開したら root になって、
# ./install
を実行します。するとどこにコンフィグレーションファイルや ddup のコマンドをどこにインストールするか聞いてくるので、適当な場所を指定します。コンフィグレーションファイルを作るかどうかは y を指定します。user name と password は DynDNSのユーザ名とパスワードになります。最後に、ddup コマンドを使えるユーザを指定して完了です。root だけでも問題ないでしょう。インストールが完了したら
# ddup --host pikachu.dyndns.org
など、更新したいドメインを指定して ddup コマンドを実行すれば更新されます...が!
※重要
IPアドレスが変わっていないのに定期的に ddup コマンドを実行してしまうと、abuse(乱用)と見なされ、DynDNSからそのドメインの利用を停止されます。こうなった場合、DynDNSにお願いして再度ドメインの利用を再開してもらう必要があります。
このため、安直にddupコマンドを crontab に書くなどは止めた方がいいでしょう。以下はIPアドレスが変わったかをチェックし、変わっている場合のみ更新を行うための簡単なシェルスクリプトです。
#!/bin/sh
myip='/tmp/myip'
oldip=`cat $myip`
newip=`ifconfig ppp0 | grep inet | sed 's/.*addr:\([^ ]*\).*/\1/'`
if [ $newip ]
then
if [ $oldip != $newip ]
then
echo "ddupdate: $oldip -> $newip"
# ddup --host 取得したドメイン
echo $newip > $myip
fi
fi
初めてスクリプトを実行する場合は、
# echo 1.2.3.4 > /tmp/myip
を実行して myip ファイルを作成しておきます。
この例では ifconfig で ppp0 のIPアドレスを確認していますが、これは環境に合わせて変更します。ここではあえて ddup を実行せず、代わりに echoで更新内容を表示しています。必ず動作を確認してから、ddup のコメントを外して下さい。あとはこれを /etc/cron.hourly など置けば(スクリプトに実行権を付けるのを忘れずに)、動作中にIPアドレスが変わっても最長1時間経てば更新されるようになります。
追記 ('02-3-26)
接続がルータタイプで、グローバルアドレスを知る方法がWebインターフェイスの場合のダイナミックDNSの更新の仕方はこちら。
追記 ('02-9-1)
1ヶ月近くDynDNSへのIPアドレスの更新が無い場合、メンバ登録したメイルアドレス宛に"Hostname
About to Expire"というメイルが自動で届きます。これはDynDNS側ではそのドメインが更新されない理由が、もう使われていないからなのか、有効だが単に変更されないだけなのかわからないためです。この場合、ddup
を手動で一度実行すればまた1ヶ月利用できます。この場合
Abuseとは見なされませんので安心して更新して下さい(The
system will not consider this single update
abusive.)。もう使ってない場合、何もしないで放っておけば5日後には自動的に削除されます。
というわけで、上記のスクリプトはもうちょっと変更する余地があります。
HOME
DynDNSによるドメイン取得