ダイナミック DNS

提供: ArchWiki
移動先: 案内検索

Dynamic DNS あるいは DDNS はインターネット上の絶えず変化する IP アドレスを指し示す DNS をリアルタイムに更新する手法です。ダイナミック DNS は固定 IP が存在しないリソースに恒久的なドメイン名を割り当てるのに使われます。DDNS を使用するには、DDNS プロバイダで登録を行なって、さらに、IP アドレスが変わったときにプロバイダに新しい IP を通知するように自動更新ツールを設定する必要があります。

更新ツール

ルーター

DDNS を必要とするデバイスがルーターを通している場合、まずルーターだけで DDNS サービスを更新することができないか確認してください。使用できるサービスは限られますが、ルーターを使うことにはメリットが複数存在します: セットアップが簡単であり、メンテナンスの必要がほとんどありません。そしてダウンタイムがなくなります (ルーターが落ちた場合、インターネットに接続自体ができなくなります)。

ddclient

ddclient は多数の DDNS サービスに対応しているため、ルーターが使えない場合は DDNS を更新するための推奨ツールとなります。ddclient は systemd にも対応しています。

インストールした後、デフォルトの設定ファイル /etc/ddclient/ddclient.conf を編集して使用する DDNS プロバイダをセットアップしてください (ファイルには多数の例が記載されています)。設定したら ddclient.service起動有効化してください。

ddclient 対応のサービスの一部を以下に挙げます。examplesprotocols にはさらに多くのプロバイダが載っています。

ddclient に対応しているサービス
サービス名 費用 利用可能なレコード ホストネーム数 設定のノート 他のツール
ChangeIP 無料あるいは有料 A, AAAA, CNAME, MX, サブドメイン 7 free
DNSdynamic 無料
Duck DNS 無料 duckdnsAUR
FreeDNS 無料あるいは有料 CNAME, A, AAAA, MX, NS, TXT, LOC, RP, HINFO, SRV 5つまで無料 afraid-dyndns-uvAUR, petrifiedAUR
No-IP 無料あるいは有料 3つまで無料、有料で25以上 dyndns2 プロトコル、dynupdate.noip.com サーバーを使用 noipAUR
nsupdate.info 無料かつオープンソース A, AAAA dyndns2 プロトコルを使用 inadyn-forkAUR

ネットワークが立ち上がった後に ddclient を起動

ddclient で IP を更新できない場合、おそらくネットワークが立ち上がる前に ddclient のプロセスが起動しているのが原因です。修正するには、ユニットファイルを編集して network-online.target に依存するようにしてください (太字の行を追加):

# systemctl edit --full ddclient.service
[Unit]
Description=Dynamic DNS Update Client
After=network.target
PartOf=network-online.target

[Service]
Type=forking
PIDFile=/var/run/ddclient.pid
ExecStart=/usr/bin/ddclient

[Install]
WantedBy=network-online.target
ノート:
  • ドロップインスニペットではユニットファイルの [Install] セクションを修正することはできないため、完全にユニットを置き換えるファイルを作成する必要があります。ddclient.service を一度無効化してから再度有効化することでシンボリックリンクが正しい場所に張られるようにしてください。
  • network-online.target を有効化するようにネットワークマネージャを設定する必要があります (netctl の場合 netctl#network-online.target の有効化を参照)。

他のツール

複数のプロバイダで使用することができる他の DDNS 更新ツールとして inadyn-mtAUR (対応しているプロバイダ) と ndyndnsAUR (DynDNS と Namecheap が対応) が存在します。

他のプロバイダ

以下の DDNS プロバイダは ddclient に対応していないため、特殊なツールを使ったりカスタムスクリプトで IP を更新する必要があります。コマンドラインで IP を更新できる場合、cronsystemd/タイマーなどのツールを利用して更新を自動化することができます。

duiadns

Duiadns.org は無料のサービスです。duiadnsAUR[リンク切れ: duiadns] で自動化が可能。

FreeDns.io

FreeDns.io は無料で A, AAAA, DNS レコードを提供します。CNAME, TXT, MX レコードはプレミアムメンバーになる必要があります。HTTP API を利用して IP を更新することができます (1時間あたり60回までの制限あり)。複数のサンプルスクリプト が用意されています。

Now-IP

Now-IP.com は簡単にセットアップができる無料サービスです。

System-NS

System-NS はコマンドラインによる更新ができる無料サービスです。公式のドキュメント を参照してください。