DynDnsに登録して動的IPでドメイン名を取得する


折角サーバーを構築したので、www.hogehoge.comなどの名前でインターネットからサーバーに接続できるようにしたいですよね。
しかし固定IPアドレスのサービスを受けない限り、通常のインターネット接続では接続のたびにIPアドレスが変わってしまいます。
これを動的IPアドレスと呼びます。

動的IPアドレスの場合サーバーをDNS登録をしても、DNSと紐付けられているIPアドレスが変わってしまう為、名前解決ができずDNS登録が出来ません。
そこで登場するのがDDNS(DynamicDNS)サービスです。

これは現在のIPアドレスを定期的にDDNSサービスのDNSサーバーに登録して、名前解決をしようというものです。
DYNDNSサービスは有料無料各種ありますが、今回は老舗で無料のdyndns.comを使用することにします。
(予断ですが、昔はdyndns.orgだったはずですがいつの間にか.comに変わっていました)

DynDNS.com- Free DNS Hosting, E-mail Delivery, and VPS Hosting.png

DynDns.comの登録

http://dyndns.comでユーザー登録を行います。
右上の[Create Account]をクリックし、アカウント作成画面でユーザー名・パスワード・メールアドレスなど、必要な項目を記入しアカウントを作成してください。

Create DynDNS.com Account or Login.png

作成したアカウントでログインをします。
ログイン後の画面で[My Services]の[My Host Services]をクリックし、ホスト登録画面へ移動します。

DynDNS.com - My Account.png

[Add New Hostname]の画面では以下の情報を入力します。

Hostname

左側に自分の好きなホスト名を入力し、右側のリストからドメインを選ぶ

Waildcard

ホスト名の左側にwwwやmailなどなにを付けてもアクセスできるようにします。
ただし、現在は有料の機能になっているようです

Server Type

[Host with IP address]にチェックを付けます

IP Address [Your computer ~]をクリックすれば現在のグローバルIPアドレスが自動的に入力されますので、これをクリックしましょう
Mail Routing

メールをこのサーバに転送する設定です。
メールサーバを作るつもりならチェックしましょう。

DynDNS.com - My Account -- Host Services -- Settings.png

後はAdd To Cartを押せば設定は完了です。
ただ、このままだとIPアドレスが変わるたびにdyndns.orgのサイトにアクセスして、IPアドレス情報の更新を行わなければなりません。

ipcheckの導入

そこでDDNSクライアントのipcheckを使用して、一定間隔でIPアドレス情報の更新を行いましょう。Debianにはdebが用意されているので、apt-getでインストールできます。

# apt-get install ipcheck
Reading package lists... Done
Building dependency tree... Done
The following NEW packages will be installed:
  ipcheck
0 upgraded, 1 newly installed, 0 to remove and 36 not upgraded.
Need to get 45.8kB of archives.
After unpacking 266kB of additional disk space will be used.
Get:1 http://ftp.jp.debian.org etch/main ipcheck 0.233-1 [45.8kB]
Fetched 45.8kB in 0s (233kB/s)
Selecting previously deselected package ipcheck.
(Reading database ... 86980 files and directories currently installed.)
Unpacking ipcheck (from .../ipcheck_0.233-1_all.deb) ...
Setting up ipcheck (0.233-1) ...
#

次にipchek用の設定ファイル等を置くディレクトリを作成します。

# mkdir /var/lib/ipcheck

初回だけdatファイルの作成を行います。

# /usr/sbin/ipcheck.py --makedat -d /var/lib/ipcheck -r checkip.dyndns.org ユーザー名 パスワード 登録したアドレス
ipcheck.py: hoge.hogehoge.com good xxx.xxx.xxx.xxx -update successful
#

cronで自動的に更新をかけるため、/etc/cron.d下にipcheckを作り、以下の内容を記述します。

# vi /etc/cron.d/ipcheck
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin

0,30 * * * *    root    /usr/sbin/ipcheck.py -d /var/lib/ipcheck -l -w -r checkip.dyndns.org hoge password hoge.hogehoge.com > /dev/null
0 1 * * *    root    /usr/sbin/ipcheck.py -d /var/lib/ipcheck -f -l -w -r checkip.dyndns.org hoge password hoge.hogehoge.com > /dev/null

上記では毎時間00分と30分に通常のIPアドレス更新が無いかチェックを行います。
また、長期間(30日以上)IPアドレスが変化しないとdyndnsの登録が取り消されてしまいます。
そこで毎日1時に強制的に更新を行うように設定します。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です


− 2 = 0

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>