DNSSEC 対応ゾーンの移行または転送

このページでは、DNSSEC 信頼チェーンを維持しながら、ドメイン登録事業者で有効にされた DNSSEC 対応ゾーンを Cloud DNS と他の DNS ホスティング プロバイダの間で移行する方法について説明します。

DNSSEC のコンセプトの概要については、DNSSEC の概要をご覧ください。

始める前に

DNSSEC 移行は複雑であり、サービスを停止することなくオペレーター間でゾーンを移行する調整が求められます。ゾーンを転送または移行する前に、このガイドを最後までお読みください。重要な本番環境ゾーンの移行を行う前に、重要性の低いゾーンで移行プロセスをテストすることをおすすめします。

DNS オペレーターおよびドメイン登録事業者との連携

検証リゾルバがドメインを無効なものとして扱うことを防ぐには、移行を DNS オペレーターとドメイン登録事業者の両方と調整する必要があります。このステップにより、移行中に、親ゾーンから両方の DNS オペレーターが管理する鍵に至る有効な信頼チェーンを確立し、維持できます。

ドメイン登録事業者が DNS ホスティングも提供している場合は、ドメイン登録事業者と協力して、DNSSEC 信頼チェーンを移行する必要があります。登録事業者がこの処理をサポートしていない場合、DNSSEC 信頼チェーンを維持しながらネームサーバーを移行することはできません。

リゾルバ キャッシュが期限切れになるまで待つ

移行の際は重要なレコードの更新を行った後、リゾルバ キャッシュが期限切れになるまで待ちます。これにより、新しいネームサーバーへの移行後に、キャッシュ内の古いレコードと更新後のゾーンの不一致が原因で発生する検証エラーを防ぐことができます。

制限事項

DNSSEC ゾーンの移行には、次の制限事項があります。

  • 新しいオペレーターと登録事業者が DNSSEC 移行(DNSKEY レコードのインポート、複数の DS レコードの設定、移行中の鍵の自動ローテーションの防止など)をサポートしている場合は、DNSSEC 信頼チェーンを維持しながら 1 つのゾーンを移行することのみできます。

  • ゾーンは、使用するすべてのアルゴリズムで署名されている必要があるため、両方のオペレーターで同じアルゴリズムを使用する必要があります。詳細については、RFC 4035 のセクション 2.2 をご覧ください。Cloud DNS は、一度に 1 つのアルゴリズムでのみ署名できます。プロバイダ間の移行中にアルゴリズムを変更することはできません。

  • Cloud DNS から他のオペレーターのゾーンに DNSKEY レコードをインポートし、それらのレコードにオペレーターの鍵で署名できる必要があります。Cloud DNS では、Transfer モードでゾーンの DNSKEY レコードを追加できます。

  • Cloud DNS から親ゾーンに 2 つ目の DS レコードを追加できる必要があります。登録事業者または親ゾーンで、子ゾーンのレコードに署名しない公開鍵に対応する DS レコードを許可する必要があります。

  • 移行が完了するまで、ゾーンの古いオペレーターまたは新しいオペレーターによる鍵の自動ローテーションを停止できる必要があります。Cloud DNS は、Transfer モードのゾーンの鍵のローテーションを自動的に停止します。

新しいオペレーターが移行をサポートしていない場合は、次の操作を行います。

  1. 登録事業者で DNSSEC を無効にします
  2. 転送または移行を実行する。
  3. DNSSEC を有効化する
  4. 登録事業者で DNSSEC を有効にします

DNSSEC 転送、ドメイン転送、潜在的な影響については、DNS / DNSSEC 転送とドメイン転送の互換性についてをご覧ください。

オペレーター間の移行

Cloud DNS が DNSSEC 移行に使用する技術的な手法は、RFC 6781 Appendix D Alternative Rollover Approach for Co Interoping Operators で説明されている Double-DS KSK ロールオーバーの一種です。

DNSSEC 移行は、DNS オペレーター間で秘密鍵も署名も交換せずに機能します。代わりに、既存のネームサーバーと親ゾーンが、古いオペレーターの公開鍵に加えて、新しいオペレーターの公開鍵の署名付きレコードを事前公開します。同様に、新しいネームサーバーは、新しいオペレーターの鍵に加えて、古いオペレーターの鍵の署名付きレコードを公開します。

他のオペレーターからのこうした鍵は、署名され、2 つのオペレーターと親ゾーン間の相互信頼を作ります。すなわち、検証リゾルバが一方のオペレーターからのレコードを使用してもう一方のオペレーターからのレスポンスを検証できます。これにより、中断を伴わずに新しいオペレーターのネームサーバーに移行できます。

これらのレコードが反映されると、リゾルバは続く移行期間で両方のオペレーターからのレスポンスを検証し、新しいネームサーバー委任レコードがすべてのリゾルバ キャッシュに反映されます。

最新のネームサーバー レコードが反映されると、移行を完了できます。古いネームサーバーからは子ゾーンを削除し、親ゾーンからは古いオペレーターの信頼アンカーを削除できます。

DNSSEC 署名ゾーンを Cloud DNS に移行する

開始する前に、すべての手順を確認してください。また、プロバイダが移行をサポートしていることも確認する必要があります。サポートされていない場合、このプロセスではゾーンを移行できません。

移行の手順は次のとおりです。

  1. 古いネームサーバーで、ゾーンの鍵すべてのローテーションを停止します。

  2. DNSSEC の Transfer 状態で新しい DNSSEC 署名ゾーンを作成しますTransfer 状態では、鍵のローテーションが停止され、DNSKEY のインポートが許可されます。

    既存のプロバイダで使用されているアルゴリズムと同じものを使用する必要があります。

  3. 署名されていないゾーンファイルをエクスポートし、新しいゾーンにインポートします。

    ゾーンデータをエクスポートするためのプロバイダの手順に沿って実行します。

    この段階で DNSKEY は指定できますが、既存のゾーンの他の DNSSEC レコードタイプ(CDS、CDNSKEY、NSEC、NSEC3、NSEC3PARAM、RRSIG タイプ)は含めないでください。

    ゾーンは、gcloud dns record-sets import コマンドを使用してインポートできます。

  4. 古いネームサーバーから以前の DNSKEY レコードを取得します。

    digdelv を使用して DNSKEY レコードをクエリすることもできますが、返された公開鍵が正しいもので、ゾーンに対して有効であることを確認する必要があります。

  5. Cloud DNS から新しい DNSKEY レコードを取得します。Transfer モードでは、DNSKEY レコードはゾーン内の通常のレコードと同じように表示されます。

  6. 自動的に生成された DNSKEY レコードに加え、既存の DNSKEY レコードを Cloud DNS ゾーンに追加します。

    プロバイダが他のゾーンデータと一緒に DNSKEY をエクスポートしている場合は、手順 3 で DNSKEY をインポートしてこの手順をスキップすることも可能です。

  7. 新しい DNSKEY レコードを Cloud DNS から既存のオペレーターのゾーンに追加します。必要に応じて、ゾーンに再署名してください。

  8. レジストラに、既存の DS レコードに加え、Cloud DNS ゾーンの DS レコードを追加します

  9. 新しいレコードが行き届いて、すべてのリゾルバ キャッシュですべてのレコードが期限切れになるまで待ちます。古いデータがあると、検証に失敗する可能性があります。

    次のすべてが起きるまで待ちます。

    • レコードが、古いオペレーターが使用するすべてのネームサーバーに行き渡る。

    • 親ゾーン NS レコードセットの TTL が期限切れになる。

    • 親ゾーンの DS レコードセットの TTL が期限切れになる。

    • 古いオペレーターの子ゾーン NS レコードセットの TTL が期限切れになる。

    • 古いオペレーターの子ゾーン DNSKEY レコードセットの TTL が期限切れになる。

  10. ゾーンの準備ができていることを確認するには、古いオペレーターがすべての DNSKEY レコードを扱い、親ゾーンが両方の DS レコードを扱っていることを確認します。

  11. Cloud DNS を参照するようにネームサーバーの委任を変更します。

    登録事業者のネームサーバー レコードを新しいゾーンの Cloud DNS ネームサーバーに更新します。

  12. 新しいネームサーバー レコードが行き渡り、古い委任レコードがすべてのリゾルバ キャッシュで期限切れになるまで待ちます。古いデータがあると、検証に失敗する可能性があります。

    次のすべてが起きるまで待ちます。

    • 親ゾーン NS レコードセットの TTL が期限切れになる。

    • 古いオペレーターの子ゾーン NS レコードセットの TTL が期限切れになる。

    このステップが完了すると、古いオペレーターでのゾーンの提供を安全に停止できます。

  13. Cloud DNS ゾーンに追加された古いゾーンの DNSKEY レコードを削除します。

  14. ゾーンの DNSSEC 状態を Transfer から On に変更します。

    転送状態を終了すると、ゾーンの鍵の自動ローテーションが有効になります。ゾーンは 1 週間後に安全に DNSSEC 転送状態を終了できます。ゾーンを 1~2 か月よりも長く DNSSEC 転送状態にしておくことはできません。

  15. レジストラから古いオペレーターによるゾーンの DS レコードを削除します

Cloud DNS から DNSSEC 署名ゾーンを移行する

移行を開始する前に、すべての手順を確認してください。また、プロバイダが移行をサポートしていることも確認する必要があります。サポートされていない場合、このプロセスではゾーンを移行できません。

移行の手順は次のとおりです。

  1. DNSSEC 状態を On から Transfer に変更します。これにより、鍵のローテーションが停止します。

  2. ゾーンファイルをエクスポートし、新しいオペレーターにインポートします。

    ゾーンは、gcloud dns record-sets export を使用してエクスポートできます。

    Transfer モードでゾーンをエクスポートすると、Cloud DNS から DNSKEY レコードもエクスポートされます。プロバイダが DNSKEY を受け入れる場合は、この手順を省略できます。この時点で、Cloud DNS から新しいプロバイダに公開鍵を転送する手順をスキップできます。

  3. 新しいプロバイダのゾーンに署名します。

    新しいプロバイダでは、Cloud DNS が使用しているアルゴリズムと同じものを使用する必要があります。

    新しいネームサーバーのゾーンでは、移行が完了するまで、鍵のローテーションを停止する必要があります。

  4. Cloud DNS から DNSKEY レコードを取得します。Transfer モードでは、DNSKEY レコードはゾーン内の通常のレコードと同じように表示されます。

    digdelv を使用して Cloud DNS ネームサーバーに対し DNSKEY レコードを照会することもできますが、返された公開鍵がゾーンに対して正しいもので、有効であることを確認する必要があります。

  5. 新しいオペレーターから新しい DNSKEY レコードを取得します。

    最初にゾーンに署名するか、DNSSEC を構成して鍵を取得する必要があります。

  6. 新しいゾーンの DNSKEY レコードに加え、新しいオペレーターのゾーンに Cloud DNS DNSKEY レコードを追加します。

  7. 新しいオペレーターの DNSKEY レコードを Cloud DNS に追加します。

  8. レジストラには、Cloud DNS の既存の DS レコードに加え、新しいオペレーターのゾーンの DS レコードを追加します

  9. 新しいレコードが行き届いて、すべてのリゾルバ キャッシュですべてのレコードが期限切れになるまで待ちます。古いデータがあると、検証に失敗する可能性があります。

    次のすべてが起きるまで待ちます。

    • 親ゾーン NS レコードセットの TTL が期限切れになる。

    • 親ゾーンの DS レコードセットの TTL が期限切れになる。

    • Cloud DNS ゾーン NS レコードセットの TTL が期限切れになる。

    • Cloud DNS ゾーン DNSKEY レコードセットの TTL が期限切れになる。

    ゾーンの準備ができていることを確認するには、Cloud DNS がすべての DNSKEY レコードを扱い、親ゾーンが両方の DS レコードを扱っていることを確認します。

  10. ネームサーバーの委任を移行して、新しいオペレーターを指定します。

    レジストラのネームサーバー レコードをゾーンの新しいオペレーターのネームサーバーに更新します。

  11. 新しいネームサーバー レコードが行き渡り、古い委任レコードがすべてのリゾルバ キャッシュで期限切れになるまで待ちます。古いデータがあると、検証に失敗する可能性があります。

    次のすべてが期限切れになるまで待機します。

    • 親ゾーン NS レコードセットの TTL。

    • Cloud DNS ゾーン NS レコードセットの TTL。

    この手順が完了すると、Cloud DNS からゾーンを安全に削除できます。

  12. 新しいゾーンに追加された Cloud DNS DNSKEY レコードを削除します。

  13. 登録事業者から Cloud DNS の DS レコードを削除します

  14. 必要に応じて新しいオペレーターで移行を完了します。

他の DNS オペレーターに、DNSSEC 署名ゾーンを移行するためのプロセスがある場合は、手順 1 の実行後にこの手順と並行して実行する必要があります。

次のステップ