DNSSEC 構成の管理

マネージド ゾーンの DNSSEC の有効化

Google Cloud Platform Console の既存のマネージド ゾーンで DNSSEC を有効にするのは簡単です。ゾーンの DNSSEC 設定をクリックし、ポップアップ メニューで [オン] を選択するだけです。

DNSSEC ゾーン ポップアップを有効にする

表示される確認ダイアログで、[有効にする] ボタンをクリックします。

DNSSEC 確認ダイアログを有効にする

また、gcloud コマンドライン ツールまたは API を使用して、既存のマネージド ゾーンに対して DNSSEC を有効にすることもできます。

gcloud

gcloud dns managed-zones update EXAMPLE_ZONE --dnssec-state on

上記のコマンドラインの EXAMPLE_ZONE を実際のゾーン ID に置き換えてください。

python

def enable_dnssec(project_id, name, description=None):
client = dns.Client(project=project_id)
zone = client.zone(name=name)
zone.update(dnssec='on', description=description)

ゾーン作成時の DNSSEC の有効化

GCP Console でゾーンを作成するときに DNSSEC を有効にするのは簡単です。DNSSEC 設定オプションをクリックし、ポップアップ メニューで [オン] を選択します。

DNSSEC 署名ゾーンを作成する

gcloud コマンドライン ツールまたは API を使用してゾーンを作成するときに DNSSEC を有効にすることもできます。

gcloud

gcloud dns managed-zones create EXAMPLE_ZONE \
    --description "Signed Zone" --dns-name myzone.example.com --dnssec-state on

上記のコマンドラインの EXAMPLE_ZONE を実際のゾーン ID に置き換えてください。

python

def create_signed_zone(project_id, name, dns_name, description):
client = dns.Client(project=project_id)
zone = client.zone(
    name,  # examplezonename
    dns_name=dns_name,  # example.com.
    description=description,
    dnssec='on')
zone.create()
return zone

DNSSEC のデプロイの確認

DNSSEC 対応ゾーンが正しくデプロイされていることを確認するには、DNSVizZonalizerVerisign DNSSEC デバッガ、または Zonemaster を使用します(最後の 2 つは、DNSSEC を有効にするために Cloud DNS ネームサーバーまたは DS レコードでレジストラを更新する前に使用することもできます)。DNSSEC に対応して正しく構成されたドメインの例として、example.com が用意されています。これは、http://dnsviz.net/d/www.example.com/dnssec/ で DNSViz を使用して確認できます。

DNSSEC 署名ゾーンの推奨 TTL 設定

ネームサーバーがクエリに対するレスポンスを送信した時刻を基準にした TTL 期限とは異なり、DNSSEC 署名は一定の時間で失効します。署名の有効期間よりも TTL のほうが長い場合は、DNSSEC 署名の有効期限が切れたときに、多数のクライアントが同時にレコードを要求することがあります。また、TTL が非常に短い場合は、DNSSEC 検証リゾルバに問題が生じる可能性もあります。

TTL 選択の詳細については、RFC 6781 のセクション 4.4.1図 11 をご覧ください。重要なポイントは次のとおりです。

署名の有効期間の数分の 1 以下の TTL を選択すると、クエリ負荷のピークを回避できます。

RFC を参照するときは、署名時間に関連する多くのパラメータが Cloud DNS によって固定されていて、変更できないことに注意してください。現時点でのパラメータは、次のとおりです(ただし、予告またはこのドキュメントの更新を行うことなく変更される場合があります)。

  • 開始オフセット = 1 日
  • 有効期間 = 21 日
  • 再署名期間 = 3 日
  • 更新期間 = 18 日
  • ジッター間隔= 1/2 日(または ±6 時間)
  • 最小署名有効期間 = 更新期間 - ジッター期間 = 17.75 日= 1533600

最小署名有効期間よりも長い TTL は使用しないでください。

マネージド ゾーンの DNSSEC の無効化

DS レコードを削除し、キャッシュでその DS レコードが期限切れになるまで待ってから、次の gcloud コマンドを使用して DNSSEC を簡単にオフにできます。

gcloud dns managed-zones update EXAMPLE_ZONE --dnssec-state=off

上記の gcloud コマンドの EXAMPLE_ZONE を、実際のゾーン名に置き換えてください。

DNSSEC、ドメイン転送、ゾーン移行

DNSSEC がドメイン レジストリで有効になっている DNSSEC 対応ゾーンでは、次のような場合に、ドメインが適切に動作することを確認するために追加の手順を実行する必要があります。

  • ドメインが別のレジストラに転送された場合(または所有権が移行された場合)

  • Cloud DNS と他の DNS オペレーターの間で DNS ゾーンを移行する場合

Cloud DNS がこのような移行に使用する技術的な手法は、RFC 6781 セクション 4.1.2 で説明されている KSK Double-DS ロールオーバーの一種です。

ICANN は、このプロセスの概要と潜在的な危険性に関する情報を記載した PDF を提供しています。

DNSSEC 署名ゾーンの Google Cloud DNS への移行

DNSSEC 署名付きゾーンを Google Cloud DNS に移行する場合は、Cloud DNS が使用中の KSK アルゴリズムをサポートしていることを確認してください。サポートされていない場合は、ゾーンを移行して Cloud DNS ネームサーバーを使用するようにレジストラでネームサーバー レコードを更新する前に、ドメイン レジストラで DNSSEC を無効にしてください

既存の KSK および ZSK アルゴリズムが Cloud DNS でサポートされている場合は、次の手順に従って、DNSSEC が有効な状態で移行を実行できます。

  1. DNSSEC を「転送」状態にして、新しい DNSSEC 署名ゾーンを作成します。転送状態にある場合は、DNSKEY をゾーンに手動でコピーできます。

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

  3. 古いゾーンのゾーンファイルの DNSKEY(KSK と ZSK の両方)を追加します。

    • dig コマンドを使用して、他のネームサーバーに対して DNSKEY レコードを照会することもできます。
  4. レジストラに新しいゾーンの DS レコードを追加します

  5. レジストラのネームサーバー レコードを新しいゾーンの Cloud DNS ネームサーバーに更新します。

DNSSEC 転送状態の終了

DNSSEC 転送状態を終了する前に、Google Cloud DNS へのネームサーバーの参照(NS および DS)がすべての権威レジストリ ネームサーバーに伝播され、すべての古いネームサーバー DNSSEC リソース レコード(レジストリ親ゾーン NS および DS レコードの他に、古いゾーンの DNSKEY、NSEC/NSEC3、および RRSIG も含む)の TTL が期限切れになるまで待機します

その後、ゾーンの DNSSEC 状態を「転送」から「オン」に変更できます。このように変更すると、ゾーンに手動で追加した DNSKEY が削除され、ゾーンからの自動 ZSK ローテーションが有効になります。通常、ゾーンは 1 週間後に安全に DNSSEC 転送状態を終了できます。ゾーンを 1~2 か月よりも長く DNSSEC 転送状態にしておくことはできません。

また、レジストラから古い DNS オペレーターのゾーンの DS レコードを削除する必要もあります。

Google Cloud DNS からの DNSSEC 署名ゾーンの移行

DNSSEC 署名ゾーンを別の DNS オペレーターに移行する前に、使用している KSK アルゴリズムがサポートされていることを確認してください。サポートされていない場合は、ゾーンを移行して新しいネームサーバーを使用するようにレジストラでネームサーバー レコードを更新する前に、ドメイン レジストラで DNSSEC を無効にしてください

同じ KSK(および可能であれば同じ ZSK)アルゴリズムがサポートされており、既存の DNSKEY を新しいゾーンにコピーする手段がある場合は、DNSSEC が有効な状態で移行を実行できます。このためには次の手順を実行します。

  1. DNSSEC 状態を「オン」から「転送」に変更します。これにより、ZSK ローテーションが停止します。

  2. ゾーンファイル(DNSKEY を含む)をエクスポートし、新しいゾーンにインポートします。

  3. DNSKEY(KSK と ZSK の両方)がインポートされていない場合は、手動で追加します。

    • dig コマンドを使用して、ゾーンの Cloud DNS ネームサーバーに対し DNSKEY レコードを照会します。

      dig DNSKEY myzone.example.com. @ns-cloud-e1.googledomains.com.
      
  4. 新しいゾーンの DNSSEC 署名を有効にし、新しい KSK の DS レコードをレジストラに追加します。

    • レジストラで複数 DS レコードをサポートできない場合は、手順 6 でこの操作を行います。
  5. (オプション)新しいゾーンの新しい DNSKEY を Cloud DNS にインポートします。

    • 手順 3 のコマンドに類似した dig コマンドをこのために使用できますが、Cloud DNS からエクスポートした DNSKEY はスキップします。
  6. 新しい DNS オペレーターを使用するために、レジストラでネームサーバー レコードを更新します。

    • レジストラで DS レコードの置換だけを実行できる場合は、この時点で置換します。

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

もう一方で必要な手順をすべて完了したら、DNSSEC の状態を「オフ」に更新して DNSSEC を無効にし(あるいは Cloud DNS から単にゾーンを削除し)、レジストラから Cloud DNS ゾーンの DS レコードを削除します

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...

Cloud DNS のドキュメント