独自ドメイン名で自宅サーバーを運用したい場合、一般に固定IPアドレスが必要です。ただ固定IPアドレス取得には契約費がかかることから、個人でのサーバー運用は一般的ではありません。本記事では、動的IPアドレスで独自ドメインを運用できるダイナミックDNSの概要と設定方法を解説します。
管理人本記事の読者層は以下の方を想定しています。
- 自宅サーバーを運用したい方
- 固定IPアドレスを契約せずに独自ドメインを運用したい方



動的IPアドレスって良くわからないけど、何のことなの?



ネットで郵便物を届けるには、ネット上の住所(固定IPアドレス)が必要なのじゃが、ネットに接続するたびにかわる住所(IPアドレス)が「動的IPアドレス」なのじゃ!



不便ねえ!なぜそんなアドレスがあるの?



IPアドレスは世界的に枯渇ぎみなので、時間帯を限ってユーザーにIPアドレスを割り振るしかない事情があるのじゃよ。この問題を解決するため次の方法があるのじゃ!
固定IPアドレスと変動IPアドレスとは?
IPアドレスは、大きく二つにわかれています。
変動IPアドレス (動的IPアドレス) コンピューターがネットワークに接続する際、一定期間にアドレスが変動する。
固定IPアドレス(静的IPアドレス) コンピューターがネットワークに接続する際に、いつでも同じIPアドレスが付与される。
この変動IPアドレスが必要な理由は、固定IPアドレスの数が限られており、使用者の増加から利用できる数が世界的に枯渇しています。現在では、固定IPアドレスは世界的に管理されており、実際の利用には回線費とは別に、プロバイダと契約して利用量を支払う必要があります。
ただ、一般家庭で契約しているネットワーク回線は、変動IPアドレス(IPアドレスが接続のたびに変わる)を使っており、接続中のみIPアドレスが割り振られている状況で、ネット環境を楽しむだけであれば固定IPアドレスは必要ありません。このように大多数の個人ユーザーは固定IPアドレスを保有せずにネットワークを使用し、限りあるIPアドレス資源を有効に活用しています。
固定IPアドレスはどのようなとき必要か?
情報を発信しているサーバー等はユーザーから常にアクセスする都合上、いつも同じIPアドレス、すなわち固定IPアドレスを持っていなければなりません。資本力のある企業・団体は固定IPアドレスをプロバイダと契約して、情報発信用サーバーに割り振っています。
このように固定IPアドレスを割り振る必要のある情報発信用コンピューター、すなわちサーバーがある場合、独自ドメイン (オリジナルドメイン) も必要となります。
固定IPアドレスがないと独自ドメインの運用はできないのか?
固定IPアドレスの契約コストを掛けたくないユーザーが、一般家庭で契約しているネットワーク回線で、自宅サーバーを運用したい場合どうしたらよいかを考えてみましょう。
「固定IPアドレスがない」=「独自ドメインを持てない」なのでしょうか?
独自ドメインが持てないので、郵便にあたる住所がなく、当然遠隔地から自宅サーバーにたどり着けません。これではサーバー運用はできませんよね。
何か方法はないものでしょうか? 一般家庭で契約しているネットワーク回線でも、割り振られたIPアドレスを一定期間使い続けられます。これを利用する手があります。現在繋がっているIPアドレスを常にどこかへ送信するサービスがあり、そこへ遠隔地から訪ねて行けばいい訳です。
つまり以下の図の下部のように、変動IPアドレスでもIPアドレスが変わる度にそのアドレスを送信して居場所を伝えるサービスです。


これを実現してくれるサービスがあります。これが「ダイナミックDNS」という方法です。
DDNSサービス(ダイナミックDNS)とは
DDNSサービスとは、
①自宅サーバー・ルーターが現在繋がっているIPアドレスを認識し、このIP情報を固定IPアドレスを持つDNSサーバーAに送信 ②DNSサーバーAは、受け取ったIPに対して「ドメイン名」を発効 ③ネットユーザーは、DNSサーバーAが発効した「ドメイン名」で自宅サーバーに繋ぐことができる。
ここで、DDNSサービスを運用する条件は、
【条件1】自宅サーバー・ルーターに現在繋がっているIPアドレスが認識できること。 【条件2】DNSサーバーAがあること。



DDNSサービスって変な仕組みね。二つの条件を揃えるのは難しいわ!



そうじゃのう! 実は、この二つの条件を揃えてくれるルーター販売会社があるのじゃよ!
ルーターの設定でダイナミックDNSを設定
DDNSサービスを提供してくれる有名な会社の1つが、「YAMAHA」です。【条件1】を満たすルーターが「YamahaルーターRTX1200シリーズ」で、【条件2】を満たすDDNSサービスを提供するサービス名が「ネットボランチサービス」と呼ばれています。
YamahaルーターRTX1200のネットボランチサービスとは?
ネットボランチサービスのメリット・デメリット
メリット
- 対応するYamahaルーターを購入するだけで、追加費用なしに「ネットボランチサービス」を無償利用できる
- ルーターが接続中のIPアドレスをYamahaサーバーへリアルタイムに送信し、自動でDNS登録を更新してくれる
- ルーター側の機能だけで完結するため、サーバー機に専用の常駐ソフトを入れる必要がない
デメリット
- 割り当てられるドメイン名が「XXXXX.aaX.netvolante.jp」という決まったサブドメイン形式に固定される
- サブドメイン・サブディレクトリ構造のURLは、SEO対策上できれば避けたい形式にあたる
- ドメイン名が長くなり独自性が出にくく、ユーザーに覚えてもらいにくい
- Googleなど広告収入を受けるサービスは、サブドメインURLでの収益化を受け付けないことがある


Yamahaルーターは、動的IPアドレスを利用する一般ネットワーク回線であっても、接続中のIPアドレスの情報をYamahaサーバーへリアルタイムで送信してくれます。つまり、住所を持たない浮浪者(個人サーバー機)がどこにいるのかを、いつでもGPS(Yamahaルーター)で場所を特定して、ある郵便局(Yamahaのメインサーバー)に居場所を常に登録 (DNS=ダイナミックネームサーバー) してくれます。
これが、「ネットボランチサービス」の概要です。このように動的IPアドレスをルーター側でDNSに割り当ててくれる「ダイナミックDNSサービス」と呼びます。
ルーター購入者は「ネットボランチサービス」を無償利用できるため、個人サーバー機を自宅で運用したい方の強い味方です。
ネットボランチサービスの問題
ネットボランチサービス自身は優れたサービスです。個人サーバー運用するだけであれば問題は見当たりません。しかし、割り当てられるドメイン名がある決まったサブドメイン名となってしまい、商用用途のサーバー運用にはいくつかの問題があります。
ネットボランチサービスでYamahaから貰えるサブドメインは XXXXX.aaX.netvolante.jp の形式で、「XXXXX」と「X」のサブドメイン名部は独自で決められます。
ネットボランチサービスのサブドメイン名の問題:商用用途の問題点 ①SEO対策的にはサブドメインやサブディレクトリ構造をもつURLはできれば避けたい。 ②ドメイン名にaaXの名前などが付くなど長すぎて、独自性が出ず、ユーザーに覚えてもらえない。 ③Googleなど広告収入を受ける場合、サブドメインURLは受け付けてくれず収益化ができない。
特に、個人サーバーでブログを発信して収益を得たいと考えている方には不向きなサービスです。
ダイナミックDNSができるルーターの種類
最近のルーターの中には他社のDDNSサービス (お名前.comやGoogleなど)に対応するルーターもいくつか出ています。
イントラネットワーク (セキュリティ等のサービス) のサービスにしても、インターネット側のサービス(VPN等の接続サービス)にしても、Yamahaルーターほど完璧なルーターは他にありません。できればセキュリティの観点から、外部ネットワークとのやり取りはYamahaルーターを介して行いたいところです。
そこで今回は、ルーター内部のイントラネットにサーバー機を立てて代わりのDDNSサービスを実現することにしました。
ルーターはセキュリティ上必要なので以下の設定では「Yamaha」ルーターを入れています。
ルーターのセキュリティに関しては、以下の記事をご参照ください。





ルーターはセキュリティ上重要なのね!



そうなんじゃよ!
独自ドメインで自宅サーバーを運用するための設定概要
今回のネットワーク構造は以下の通りです。内部Server1を立てて、curlコマンドで動的IPアドレスを確認し、お名前.comへ知らせるという構図です。


Netvolante-DNS設定例 (RTX1200)
サーバー側でダイナミックDNS(DDNS)を活用・手動更新
ルーター内部(イントラ内)にサーバー機を設定します。この内部サーバーからインターネットから見える動的IPが確認できるかを以下のようにcurlコマンドで確認して行きましょう。
curlコマンドを利用して、自身のIPアドレスを返してくれるサイト
- ipecho.net/plain
- ifconfig.io
- ipinfo.io、net-ip.info
$curl net-ip.info XXX.XXX.XXX.XXX
これによりイントラ内から動的IPアドレスが確認できることがわかります。
DNSの手動登録:「お名前.com」でのドメイン取得
TYPE-Aレコードにて$curl net-ip.infoで表示されたIPアドレスの仮入力を行っておきます。


お名前.comのドメイン取得方法は以下のリンクを参照ください。↓
あわせて読みたい


独自ドメインを取得する方法とそのメリット:「お名前.com」でのDNS設定方法 – SEO対策の賢者 独自ドメインを持つことでサーバー運用の幅が広がります。今回は、国内最大のドメイン登録サービス「お名前.com」からドメインを取得し設定する方法を紹介します。タイプA…
「お名前.com」に動的IPアドレスを送信しDDNSとして運用する手動更新・設定方法
お名前.comではダイナミックDNS(DDNS)登録用にIPアドレスの更新が外部からのコマンド入力でできます。このコマンド入力の前に事前に上で述べた「お名前.comのDNS登録」を行っておく必要があります。
イントラ内から次のコマンドを入力してDDNSが利用できるか見て行きましょう。
# openssl s_client -connect ddnsclient.onamae.com:65010 -quiet
この後、すぐに以下のテキストを送信すれば登録できます。こちらは手動更新となります。
LOGIN
USERID:お名前.comのID
PASSWORD:お名前.comのpass
.
MODIP
HOSTNAME:ホスト名(www)
DOMNAME:ドメイン名(wisenetwork.net)
IPV4:XXX.XXX.XXX.XXX
.
LOGOUT
.この作業が面倒なときは、次のようにシェルスクリプトを書いて自動実行するのもありです。次にその設定例を紹介します。
BashによるダイナミックDNSの更新の自動化
その後、下記のリンク記事を参考にして設定しました。
Harada IT Support


CentOS7 + DDNS + お名前.com | Harada IT Support こんにちはHITS代表の原田です。このサイトは仕事場にあるCentOS7のサーバにDockerを入れて、Docker上で稼働しています。ドメインは『お名前.com』で取得し、DNSなんかもお…
bashのシェルスクリプトを下記のように記載します。
#!/bin/bash
# Global IPアドレス取得
gip=$(curl inet-ip.info)
domip=$(dig 更新したいホスト名.ドメイン名 +short)
# IPアドレス更新
if [ "$gip" != "$domip" ]; then
{
echo "LOGIN"
echo "USERID:お名前.comのID"
echo "PASSWORD:お名前.comのpass"
echo "."
echo "MODIP"
echo "HOSTNAME:ホスト名(www)"
echo "DOMNAME:ドメイン名(wisenetwork.net)"
echo "IPV4:$gip"
echo "."
echo "LOGOUT"
echo "."
} > input.txt
openssl s_client -connect ddnsclient.onamae.com:65010 -quiet < input.txt
else
echo "IPは更新の必要がありませんでした。"
fi
exit 0ここでは、「お名前.comのID」「お名前.comのpass」「ホスト名(www)」「ドメイン名(wisenetwork.net)」は自身の登録情報にて確認ください。今回はBashのスクリプトの例ですが、C言語やPython等の言語で行っている方もいるようです。
これを以下のようにコマンド実行すると
$ sudo bash ddns.sh
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 13 100 13 0 0 216 0 --:--:-- --:--:-- --:--:-- 220
depth=2 OU = GlobalSign Root CA - R3, O = GlobalSign, CN = GlobalSign
verify return:1
depth=1 C = BE, O = GlobalSign nv-sa, CN = GlobalSign GCC R3 DV TLS CA 2020
verify return:1
depth=0 CN = *.onamae.com
verify return:1
000 COMMAND SUCCESSFUL .
000 COMMAND SUCCESSFUL .
000 COMMAND SUCCESSFUL .
000 COMMAND SUCCESSFUL「SUCCESSFUL」が4回表示されていれば成功です。
仮に、
002 LOGIN ERRORと出た場合には、ログインの失敗をしています。
003 DBERRORと出た場合には、IP変更に問題があります。
が生じている可能性があります。お名前.comサイドで登録情報に重複があるかなどを確認した方が良いです。
これをcronなどのジョブスケジューラと組み合わせて定期的に実行すれば、サーバーが動いている限りDDNSが可能となります。
Cronコマンドで IPとドメインの紐付けを自動実行する方法
例えば、Userでログインしている場合、
/var/spool/cron/crontabs/User
内に一日一回、dns.shを実行するようにするには以下のように記述しておきます。
0 0 * * * /bin/bash sh /var/www/html/dns.sh最後に、cronサービスをスタートさせます。
$ /etc/init.d/cron start
Starting cron (via systemctl): cron.service.確認のため、サービスが本当に動いているかは以下のサービス一覧のコマンドで確認できます。
$ systemctl list-units --type=service
UNIT LOAD ACTIVE SUB DESCRIPTION
cron.service loaded active running Regular background program processing daemoncron.serviceが立ち上がっていれば問題ありません。
ドメインが登録されているか確認する方法
イントラ内からnslookupコマンドにてDNS(ここでは「www.wisenetwork.net」)を確認すると、以下のように「XXX.XXX.XXX.XXX」(実際には動的IPアドレスが記載)と表示されます。
nslookupコマンド
$ nslookup www.wisenetwork.net
Server: 172.20.10.1
Address: 172.20.10.1#53
Non-authoritative answer:
Name: www.wisenetwork.net
Address: XXX.XXX.XXX.XXX無事、DNSとIPアドレスが紐付いたようです。
仮にドメインが紐づいていない場合は、以下のように表示されます。
** server can't find www.wisenetwork.net: NXDOMAINまとめ
独自ドメイン名で自宅サーバーを運用する方法は、
- ルーター内のサーバー機を設置して、IPアドレスをDNSサービスへ送る方法が有効。
- 「お名前.com」に動的IPアドレスを送信しDDNSとして運用する。
- DDNSサービスは、バッチファイルをCronで自動実行することでIPアドレスの変更に対応できる。
次回の記事もご期待ください。どうぞよろしくお願いいたします。
関連リンク









コメント