自宅でサーバーを公開する際に、固定IPが使えない場合は、ダイナミックDNSと言ったサービスを利用する必要があります。今回は、「MyDNS」を使って、無料のダイナミックDNSに登録する方法を紹介します。
まず、MyDNSさんのサイトにアクセスして、メニューの「JOIN US」を押します。
必要な情報を入力して「CHECK」ボタンを押します。確認画面が表示されるので、内容に問題なければ「OK」を押して次に進む。
しばらくすると、登録したメールアドレスに登録情報のメールが届きます。
メールの中に記載されているMasterIDとPasswordを使ってログインします。
ログインすると以下の画面になるので、左側メニューにある「DOMAIN INFO」を押します。
登録するサイトは、「http://site-zero.mydns.jp」なので、
Domain:site-zero.mydns.jp
Hostname:site-zero
上記以外は、変更なしで登録しました
問題なければ、登録内容の確認画面が表示されるので、「OK」ボタンを押します。
あとは、mydnsに自動ログインしてグローバルIPアドレスを通知してくれるシェルスクリプトを作成します。アクセス元のIPv4とIPv6でそれぞれ更新します。
※指定せずに更新してたらIPv6しか更新されておらずIPv4からアクセスできませんでした…
!/bin/bash wget -O - 'https://MyDNSのマスターID:MyDNSのパスワード@ipv4.mydns.jp/login.html' wget -O - 'https://MyDNSのマスターID:MyDNSのパスワード@ipv6.mydns.jp/login.html'
シェルスクリプトを保存して実行します。
※ここでは「mydns.sh」で保存した場合の例です。
$ sh mydns.sh http://xxx:password@www.mydns.jp/login.html www.mydns.jp (www.mydns.jp) をDNSに問いあわせています… … www.mydns.jp (www.mydns.jp)xxxに接続しています… … HTTP による接続要求を送信しました、応答を待っています… 200 OK
正しく認証できたことを確認して、cronに登録します。
$ crontab -e */10 * * * * /home/xxx/mydns.sh
これで10分毎にMyDNS.JPにIPアドレスが通知されます。
ブラウザから登録したアドレスにアクセスして、ページが表示されるか確認してください。ただし、LAN内から自分自身のグローバルIPにアクセスすると、正しく表示されないはずです。
自分自身を問い合わせて、自分自身に戻ってくるので、お前自身かってことになり、送り元と送り先が同じなので変になりますよね。(説明がややこしいので大雑把な説明ですいません)
以下のサイトから、URLを入力して「Test Now」ボタンを押すと外部から確認することができます。
https://www.websitepulse.com/tools/website-test
Statusが「OK」で、Resolved asの欄に正しいグローバルIPアドレスが表示されていれば正しく登録できています。
【補足】
DNSの仕組みとダイナミックDNSについて
DNSとは、パソコン上で動作しているリゾルバとDNSサーバー間のやり取りで成り立っています。(リゾルバ:PC上で動作しているソフトウェアです。)
ブラウザからウェブへアクセスする手順を例に考えてみます。
アクセスする手順は以下の図に示すように
1、パソコンのブラウザから”http://aaa.ddo.jp/”へアクセスします。
2、クライアントPCのリゾルバからローカルDNSサーバへ問い合わせを行います。
3、ローカルDNSサーバーは管理している情報を元に該当するサーバーへの問い
合わせを開始します。
4、上位側から順にたどり該当するサーバを管理しているDNSサーバより情報
(資源レコードとタイプ一覧を参照)を取得します。
5、ローカルDNSサーバーは取得した情報をクライアントPCのリゾルバに返します。
6、PCのブラウザから取得したIPアドレスを使い該当するページへアクセスします。
※但し、サーバーのキャッシュ機能は考慮していません。
いつも気にせずホームページにアクセスしていますが、実は裏でいろんな処理が
行われていることがわかりますね。
■資源レコードとタイプ一覧
A | ホストのIPアドレス |
AAAA | ホストのIPv6アドレス |
MX | メール・サーバー名 |
NS | DNSサーバー名 |
PTR | IPアドレスに対応するドメイン名 |
CNAME | 正規ドメイン名 |
HINFO | CPU・OSのスペック情報 |
TXT | 管理者が自由使えるテキスト情報 |
また、DNSサーバーにはキャッシュ機能があり、キャッシュのデータが有効な場合は、キャッシュの内容を参照するため、IPアドレスの変化と登録ドメインの関係にタイムラグが発生します。
ダイナミックDNSでは、サーバーのキャッシュに保持できる時間を短くしてタイムラグを最小にしています。通常のDNSサーバだと1日から1週間程度に設定している時間を60秒から600秒と短く設定しています。
また、自宅のグローバルIPアドレスは、固定IPではない場合が多いと思います。IPが変わった場合もサーバーに通知することで、動的に変わるIPアドレスでもドメイン名を使ったアクセスが可能になります。
有料版と無料版でキャッシュ時間の設定など違いがある場合があります。ご自身の環境にあわせて、有料版と無料版を選択してください。