タイトル大津真=XはUNIXでサーバで》Dymamic DNSによるサーバの公開(2)カテゴリーネットワーク管理, ネットワーク, 大津真=XはUNIXでサーバで
作成日2002/1/28 16:6:11作成者新居雅行
   ̄ ̄ ̄ ̄アカウントの登録____
次にDynDNS.orgを例に、実際のアカウント登録手順を示しましょう。

1. DynDNS.orgのサイトの情報を一通り目を通してから、Members’NIC(Network Infomation Center)のページを開きます。

◇DynDNS.orgのサイト
 http://www.dyndns.org/dyndns/
◇Members’NIC(Network Infomation Center)のページ
 http://members.dyndns.org/

2. Sign Up Nowのページでユーザ名、メールアドレス、パスワードを入力しアカウントを作成します。なお、ここで入力したユーザ名がそのままホスト名になるわけではありません。

3. [Create Account]ボタンをクリックすると、仮のパスワードがメールで届きます。この後24時間以内でログインしないとアカウントが取り消されるので注意しましょう。

4. Members’NICのページでログインし、パスワードを設定しなおせば登録は完了です。

   ̄ ̄ ̄ ̄ホスト名とIPアドレスの登録____
次に、ホスト名とIPアドレスの登録に移ります。Dynamic DNSの[Create New Host](追加の場合には[Add New Host])をクリックすると[New Dynamic DNS HOST]ページが開きます。
[Hostname]を入力し、ドロップダウンリストから好みのドメイン名を選択します。[IP Address]は自動認識されます。

 

なお、[Mail Exchanger]ではそのホスト宛のメールを処理するメールサーバを指定できます。[Backup MX?]にチェックを付けた場合には、[IP Address]のマシンがダウンしていた場合にのみ[Mail Exchanger]が使用されるようになります。
[Add Host]ボタンをクリックするとホストが登録されます。

登録が完了したらhostコマンドで、ホスト名からIPアドレスが引けるかどうかを確認します(実際に反映されるまでしばらくかかる場合がありますので10分程度してから実行するといいでしょう)。

% host taitan.ath.cx 〈return〉
taitan.ath.cx has address 61.200.27.53

   ̄ ̄ ̄ ̄外部から接続してみる____
次に、友人などに頼んで、インターネット上からドメイン名でアクセスしてもらいましょう。ルータのポートフォワーディング機能で80番のポートを、LAN内のApacheが動作しているOS Xにアサインするように設定していれば、Webページが表示されるでしょう(OS Xでは「システム環境設定→共有」でWebサーバApacheが立ち上がるように設定する必要があります)。

   ̄ ̄ ̄ ̄WebページからIPアドレスを手動で更新する____
回線がいったん切断されたなどの理由でIPアドレスが変更されてしまった場合、登録を更新する必要があります。手作業で更新するには、Members’NICでホストを選択し、[Modify Host]ボタンを押します。

   ̄ ̄ ̄ ̄回線が切断されないようにするには____
多くのADSL事業者では、一定期間インターネットにパケットが送られないと回線を切断してしまうようです。これを避けるには、コンピュータの時計をインターネット上のタイムサーバで合わせるようにすればいいでしょう。OS Xの場合「システム環境設定→日付と時刻」の「ネットワークタイム」で参照するNTPサーバを設定してください。

――――IPアドレスの自動更新
Webページから更新できるとはいえ、IPアドレスが変わってしまう度に手動で更新するのは面倒です。
また、外出しているときになんらかのトラブルによってIPアドレスが変わってしまったら、自宅のサーバにアクセスできなくなります。そのため、一定時間ごとに、登録されているIPアドレスと現在のグローバルIPアドレスを比較して、異なっていた場合に自動更新してくれるDynamic DNSのクライアントプログラムが有志の方々の手によって作成されています。
クライアントは、クライアントのページにOSごとに分かれて多数登録されています。OS XではたいていのUNIX用クライアントが使用できます。Ratingを参考にして選択するといいでしょう。

◇Dynamic DNSのクライアントのページ
 http://clients.dyndns.org

   ̄ ̄ ̄ ̄ddclientの使い方____
筆者の場合Perlで記述されたフリーのクライアントddclientを使用しています。ここではddclientの設定方法について説明しましょう。

◇ddclient
 http://burry.ca:4141/ddclient/

1. まずは、ダウンロードしたTarボールを解凍します。
% tar xvzf ddclient-3.6.1.tar.gz 〈return〉
ddclient-3.6.1/
ddclient-3.6.1/COPYRIGHT
ddclient-3.6.1/COPYING
ddclient-3.6.1/README.cisco
ddclient-3.6.1/README
ddclient-3.6.1/sample-etc_ddclient.conf
ddclient-3.6.1/sample-etc_rc.d_init.d_ddclient
ddclient-3.6.1/sample-etc_rc.d_init.d_ddclient.redhat
ddclient-3.6.1/sample-etc_dhcpc_dhcpcd-eth0.exe
ddclient-3.6.1/sample-etc_ppp_ip-up.local
ddclient-3.6.1/sample-etc_dhclient-enter-hooks
ddclient-3.6.1/sample-etc_cron.d_ddclient
ddclient-3.6.1/ddclient

2. プログラム本体を/usr/sbinディレクトリに、設定ファイルを/etcディレクトリに移動します。
% sudo cp ddclient /usr/sbin/ 〈return〉
% sudo cp sample-etc_ddclient.conf /etc/ddclient.conf 〈return〉

3. /etc/ddclient.confを編集します。
通常は
use=web
を有効にし、ユーザ名、パスワード、ホスト名を設定すればいいでしょう。

4. OS X用の起動スクリプトを作成します。
ddclientをシステムの起動時に自動的に立ち上がるようにしましょう。例によって、/Library/StartupItemsディレクトリにDdclientディレクトリを作成し、StartupParameters.plistと起動スクリプトDdclientを保存します。

〈リスト〉 /Library/StartupItems/StartupParameters.plist
{
Description = "Dynamic DNS Client Program";
Provides = ("Ddclient");
Requires = ("Resolver");
OrderPreference = "None";
Messages =
{
start = "Starting Ddclient";
stop = "Stopping Ddclient";
};
}

〈リスト〉 /Library/StartupItems/Ddclient
#!/bin/sh

##
# Start Dynamic DNS Client
##d

. /etc/rc.common

if [ "${DDCLIENT:=-NO-}" = "-YES-" ]; then
ConsoleMessage "Starting Dynamic DNS Client"
/usr/sbin/ddclient -daemon 300
fi

起動スクリプトには実行権を付けます。
# chmod a+x Ddclient 〈return〉

/etc/hostconfigには次の行を加えます。

DDCLIENT=-YES-

以上で準備は完了。システムを再起動すればddclientが動き出し、グローバルIPアドレスが変更されると登録を自動更新します。

――――付録 サービス名とポート番号
TCP/IPネットワークでは、IPアドレスによってホストを識別し、ポート番号によってサービスを識別する。サーバ側のポート番号にはガイドラインのようなものがあり、あらかじめ特定のサービスに割り当てられているポート番号(ウエルノンポート番号)がある。たとえば、HTTPは80番をPOP3は110番を使用するといった具合だ。
一般的なUNIXではサービスとポート番号の対応表は/etc/servicesというテキストファイルに書き込まれているが、OS Xの場合、そのようなネットワークリソースはNetInfoデータベースで管理されている(/etc/servicesというファイルは存在するが通常のモードでは参照されない)。
NetInfoデータベースはNetInfo Managerを使用することで、閲覧・編集が可能だ。コマンドラインでデータベースの内容を確認したい場合には、リソースをUNIX形式で表示するnidumpコマンドを使用するといいだろう。
たとえば、サービスとポート番号の対応を/etc/servicesファイルの形式でダンプしたい場合には次のようにする。

% nidump services . 〈return〉
tcpmux 1/tcp
echo 7/tcp
discard 9/tcp sink null
systat 11/tcp users
daytime 13/tcp
netstat 15/tcp
qotd 17/tcp quote
chargen 19/tcp ttytst source
ftp 21/tcp
ssh 22/tcp
…以下略

(この項、以上)
[大津真]
関連リンク大津真Web Site