本文へ移動

ダイナミック DNS(DDNS)

DDNS が行うのは、ドメインの DNS レコードを現在のグローバル IP へ更新することだけです。ポートの開放、トンネルの設定、証明書の発行、サービスをゲートウェイ経由にする処理は行いません。

DDNS が必要な場合

  • グローバル IPv4 または IPv6 が変動し、ゲートウェイへ外部から直接アクセスする場合。
  • サブドメインモードで、認証用 Host、サービス用 Host、ワイルドカードレコードを同じ入口へ向ける場合。
  • エッジ CDN からオリジンへ接続していて、オリジンアドレスが変動する場合。

Cloudflare Tunnel を使う場合、通常は Tunnel の Public Hostname が DNS を管理します。同じドメインに対して、競合する DDNS レコードを別途作成しないでください。

レコードの設定

DDNS 管理 でプロバイダーを選び、認証情報、ドメイン、レコード種別、更新範囲を入力します。特に次の点を確認してください。

項目要点
ドメイン完全な URL、パス、ポートではなく、更新するレコード名を入力
更新範囲実際に利用できるネットワークに合わせ、IPv4、IPv6、またはデュアルスタックを選択
IP の取得元グローバル IP 検出、指定インターフェース、静的 IP、別ドメインの名前解決から選択。Docker ではホストのアドレスが取得されていることを確認
送信インターフェース複数の NIC がある機器では、プロバイダー API へ接続できるインターフェースを選択
ワイルドカードサブドメインゲートウェイでは通常 *.example.com が必要。認証用 Host も名前解決できるようにする

保存後、まず画面上のテストまたは手動更新を実行し、dignslookup、DNS の管理画面でレコード値を確認します。正しく名前解決できても、確認できるのは DNS が更新されたことだけです。ポート、証明書、ゲートウェイルートは引き続き外部ネットワークから検証してください。

現在のプロバイダーカタログには、Alibaba Cloud DNS、Baidu Cloud DNS、Cloudflare、DNSPod、DuckDNS、Dynu、dynv6、Tencent Cloud EdgeOne CNAME、Tencent Cloud EdgeOne、Alibaba Cloud ESA、GoDaddy、Huawei Cloud DNS、No-IP、Porkbun、Tencent Cloud DNSPod が含まれます。必要な項目はプロバイダーごとに画面へ表示されます。別の事業者の Zone ID、Token、ルートドメイン項目を流用しないでください。

メインドメインと追加ドメイン

メインドメイン設定 はデフォルトの更新先です。状態カードには現在の IPv4、IPv6、最終チェック、最終更新成功時刻が表示されます。追加ドメイン では互いに独立した更新先を追加でき、各レコードに個別のプロバイダー、認証情報、IP の取得元、更新範囲、有効状態を設定できます。

追加ドメインは、メインドメインのドメイン名やプロバイダー設定を継承しません。ただし画面は、同じプロバイダーについて別のモジュールや更新先に保存された認証情報を検出し、現在空欄の項目だけへ入力できます。入力後も Zone、ルートドメイン、最小権限を確認してください。

追加ドメインごとに、今すぐ更新、無効化、有効化、編集、削除を実行できます。無効化はその更新先だけを一時停止し、削除すると実行状態も同時に削除されます。メインドメイン設定をクリアしても追加ドメインは削除されませんが、メインドメインは再設定するまで自動更新に参加できません。

ドメインとワイルドカードの組み合わせ

2 つのドメインに対応するプロバイダーでは、同じドメイン項目にワイルドカードと対応するベースドメインを入力できます。例:

text
*.r.example.com, r.example.com

2 つの項目はワイルドカードとベースドメインの組である必要があり、ベースドメインはプロバイダーの Zone / ルートドメインと同じか、その配下でなければなりません。画面では半角カンマ、全角カンマ、空白を区切りとして使用でき、フォーカスを外すと自動整形されます。EdgeOne CNAME など、単一アドレスまたは単一ドメインだけに対応するプロバイダーでは、この組み合わせを使用できません。画面の機能説明に従ってください。

ネットワークインターフェースからアドレスを選ぶ

インターフェースから取得 を選ぶ場合は、使用するインターフェースを明示的に指定する必要があります。画面には絞り込み済みの候補だけが表示され、明らかなプライベートアドレス、確認中、アドレス競合、非推奨のアドレスは除外されます。一時 / プライバシー IPv6 アドレスもデフォルトでは除外されます。候補がなければ、インターフェースを変更するか、グローバル IP 検出、静的 IP、ドメインの名前解決を使用してください。

アドレス選択は、インターフェースから返された一覧の番号には依存しません。優先アドレス を手動で設定した場合、そのアドレスが絞り込みルールを満たす限り最優先で使用されます。優先アドレスが未設定または利用不可の場合にだけ、現在の利用可能なアドレスを維持し、その後で残りの候補から安定して選択します。これにより、手動指定がシステムの推奨より優先され、未指定時には候補の並び順によるレコードの切り替わりも防げます。旧バージョンで保存されたアドレス番号は、画面上で安定した選択ルールへ変換され、保存後に有効になります。旧設定に選択ルールがない場合や、以前の番号が無効になった場合も、バックエンドが自動安定ルールで候補を選びます。番号がないことだけを理由に無人更新が停止することはありません。

自動同期では、現在公開中のアドレスが引き続き利用可能で、以前の優先 IPv6 アドレスが再び現れた直後の場合、3 回連続で検出されるまで切り戻しを待ちます。短時間の復旧で DNS が往復して切り替わるのを防ぐためです。手動の即時更新ではこの安定化待機を使用しません。すぐに切り戻す場合は、経路が安定していることを確認してから実行してください。

別のインターフェースへ切り替えると、以前のインターフェースに対する優先アドレス、CIDR、IPv6 インターフェイス ID などの選択ルールが画面から消去されます。以前のルールが新しいインターフェースへ誤って適用されないようにするためです。切り替え後はプレビューを再確認し、必要に応じてルールを設定し直してください。

優先アドレス は、自動モードとカスタムモードのどちらでも設定できます。ネットワーク範囲や IPv6 インターフェイス ID でさらに絞り込む場合は、カスタム照合ルール へ切り替えます。

設定動作
優先アドレス候補にこのアドレスがあれば、現在のアドレスやシステムの並び順より優先して使用。無効になった後は、他の一致項目も選択可能
含める CIDR指定した IPv4 または IPv6 ネットワークからだけ選択
除外する CIDRDNS へ書き込むべきでないネットワークを除外
IPv6 インターフェイス ID(下位 64 ビット)変動するプレフィックスを無視し、同じインターフェイス ID を持つ新しい IPv6 アドレスを選択
一時/プライバシー IPv6 アドレスを許可デフォルトでは無効。プライバシーアドレスのローテーションによる頻繁な更新を防止

最終的に選ばれるアドレスはリアルタイムでプレビューされます。ルールが複数の候補に一致すると、プレビューに候補数が表示され、安定性に基づいて 1 つが選ばれます。インターフェース一覧の偶然の並び順では選択されません。一致項目がない場合、その設定での更新には依存できません。IPv6 プレフィックスが変動しても機器のインターフェイス ID が安定している場合は、現在の優先アドレスを選び、自動抽出された下位 64 ビットのインターフェイス ID を維持できます。一時プライバシーアドレスを使うべきでなければ、デフォルトの無効状態を維持してください。

グローバル IP 検出設定

DDNS のグローバル IP 検出には、組み込み HTTP(デフォルト)またはシステムの curl を使用できます。組み込み HTTP は、送信インターフェースが選ばれているときに対応するローカルアドレスへバインドするため、複数の NIC がある機器で検出トラフィックの出口を明確に制御する場合に適しています。システムの curl は、ホストにあるコマンドとネットワーク環境に依存します。

検出設定ではパブリック DNS も選択でき、使用しない、Alibaba DNS、Tencent DNS、Cloudflare DNS、Google DNS のいずれかを指定します。デフォルトは Alibaba DNS です。ここでのパブリック DNS はグローバル IP の検出先を名前解決するためだけに使われます。DDNS プロバイダーや更新対象レコードを変更したり、サービス用ドメインの DNS を書き換えたりすることはありません。

IPv4 と IPv6 には、それぞれ複数の検出元を設定できます。検出元には、IP アドレスだけを返す HTTP(S) URL、または名前解決できるドメインを指定できます。変更する前に 検出元をテスト をクリックし、各項目のステータスコード、レスポンスのプレビュー、取得された IP を確認してください。デフォルトに戻す はダイアログ内の下書きを置き換えるだけで、実際に反映するには保存が必要です。

自動同期とログ

自動同期間隔は 51440 分に設定でき、デフォルトは 10 分です。新しい間隔は保存後、次回の同期から使用されます。手動で 今すぐ更新 を実行する場合や、個別の追加ドメインを 今すぐ更新 する場合は、次の周期を待つ必要はありません。

ログからは、問題を次の 4 種類に分けられます。

ログの段階よくある問題
アドレスの取得検出先へ到達できない、インターフェースに候補がない、静的 IP または取得元ドメインが無効
プロバイダー認証Token、Secret、権限、システム時刻の誤り
Zone / レコード検索ルートドメイン、Zone ID、サイト名、完全ドメイン名の不一致
作成 / 更新API のレート制限、レコード種別の競合、TTL またはプロキシ状態に非対応

ログをクリアしても、設定や実行状態は消去されません。トラブルシューティング時には、最後の失敗とその前後の記録を残してください。他の人へ共有する前に、Token、Secret、Zone ID、グローバル IP をマスクします。

サブドメイン構成の最小設計

example.com を例にすると、auth.example.com とサービス用サブドメインの両方を同じゲートウェイ入口へ到達させられます。一般的には認証用 Host とワイルドカードレコードを管理します。A、AAAA、CNAME のどれを使うかは、DNS プロバイダーとネットワーク構成によって異なります。

IPv6 は IPv4 を自動的に置き換えるものではありません。IPv6 だけを設定する場合、クライアント、ルーター、CDN のすべてに利用可能な IPv6 経路が必要です。デュアルスタック環境では、2 種類のレコードを個別にテストしてください。

トラブルシューティング

  1. DDNS ログで認証、検索、更新の結果を確認します。
  2. インターフェース選択画面のプレビューが、Docker や LAN 内のアドレスではなく、外部からルーティング可能なアドレスになっていることを確認します。
  3. 今すぐ更新した後、状態カードの「最終更新成功」が変化したことを確認します。「最終チェック」だけが変化している場合、その回の書き込みには成功していません。
  4. DNS レコード名、Zone / ルートドメイン、アクセス先 Host が完全に一致していることを確認します。
  5. ローカルキャッシュだけを見ず、権威 DNS またはプロバイダーの管理画面でレコード値を確認します。
  6. 外部ネットワークから DNS、TLS、ゲートウェイポート、実際のアプリを順にテストし、問題の層を特定します。

QQ コミュニティ:1081609274