Cloud DNS-Serverrichtlinien anwenden

Auf dieser Seite wird beschrieben, wie Sie Cloud DNS-Serverrichtlinien konfigurieren und mit VPC-Netzwerken (Virtual Private Cloud) verwenden. Bevor Sie diese Seite verwenden, lesen Sie die Übersicht zu DNS-Serverrichtlinien.

Hinweise

Für die Cloud DNS API müssen Sie ein Google Cloud-Projekt erstellen und die Cloud DNS API aktivieren.

Wenn Sie eine Anwendung erstellen, die die REST API verwendet, müssen Sie auch eine OAuth 2.0-Client-ID anlegen.

  1. Falls noch nicht geschehen, registrieren Sie sich für ein Google-Konto.
  2. Aktivieren Sie die Cloud DNS API in der Google Cloud Console. Sie können ein vorhandenes Compute Engine- oder App Engine-Projekt auswählen oder ein neues Projekt erstellen.
  3. Für Anfragen an die REST API musst du eine OAuth 2.0-ID erstellen.
  4. Notieren Sie sich im Projekt die folgenden Informationen, die in späteren Schritten eingegeben werden müssen:
    • Die Client-ID (xxxxxx.apps.googleusercontent.com).
    • Die Projekt-ID, die Sie verwenden möchten. Die ID finden Sie in der Google Cloud Console oben auf der Seite Übersicht. Sie können auch den Nutzer nach dem Projektnamen fragen, der in Ihrer Anwendung verwendet werden soll.

Wenn Sie die Google Cloud CLI zuvor noch nicht ausgeführt haben, müssen Sie mit dem folgenden Befehl den Projektnamen angeben und bei der Google Cloud Console authentifizieren:

gcloud auth login

Wenn Sie ein anderes Projekt als zuvor auswählen möchten, geben Sie in der Befehlszeile die Option --project an.

DNS-Serverrichtlinien erstellen

Jedes DNS-Serverrichtlinienobjekt kann eine der folgenden Serverrichtlinien definieren:

Jedes VPC-Netzwerk kann auf maximal eine DNS-Serverrichtlinie verweisen. Wenn Sie die Weiterleitung sowohl für eingehenden als auch für ausgehenden Traffic für ein VPC-Netzwerk definieren müssen, erstellen Sie eine Richtlinie, die sowohl eingehenden als auch ausgehenden Traffic definiert.

Serverrichtlinie für eingehenden Traffic erstellen

So erstellen Sie eine Serverrichtlinie für eingehenden Traffic: Cloud DNS erstellt eine Reihe von Weiterleitungs-IP-Adressen für eingehenden Traffic aus den primären IPv4-Adressbereichen von Subnetzen in jedem VPC-Netzwerk, für das die Richtlinie gilt. Nachdem Sie Ihre Richtlinie erstellt haben, können Sie die Einstiegspunkte auflisten, die von Cloud DNS erstellt werden.

gcloud

Führen Sie den Befehl dns policies create aus, um eine Richtlinie für eingehende Server zu erstellen:

gcloud dns policies create NAME \
    --description=DESCRIPTION \
    --networks=VPC_NETWORK_LIST \
    --enable-inbound-forwarding

Ersetzen Sie Folgendes:

  • NAME: ein Name für die Richtlinie.
  • DESCRIPTION: eine Beschreibung der Richtlinie
  • VPC_NETWORK_LIST: eine durch Kommas getrennte Liste von VPC-Netzwerken, in denen eingehende Weiterleitungsadressen erstellt werden müssen

Terraform

resource "google_dns_policy" "default" {
  name                      = "example-inbound-policy"
  enable_inbound_forwarding = true

  networks {
    network_url = google_compute_network.default.id
  }
}

resource "google_compute_network" "default" {
  name                    = "network"
  auto_create_subnetworks = false
}

Serverrichtlinie für ausgehenden Traffic erstellen

Wenn Sie eine Liste alternativer Nameserver für ein VPC-Netzwerk angeben möchten, können Sie eine Serverrichtlinie für ausgehenden Traffic erstellen.

gcloud

Führen Sie den Befehl dns policies create aus, um eine Richtlinie für ausgehende Server zu erstellen:

gcloud dns policies create NAME \
    --description=DESCRIPTION \
    --networks=VPC_NETWORK_LIST \
    --alternative-name-servers=ALTERNATIVE_NAMESERVER_LIST \
    --private-alternative-name-servers=PRIVATE_ALTERNATIVE_NAMESERVER_LIST

Ersetzen Sie Folgendes:

  • NAME: ein Name für die Richtlinie.
  • DESCRIPTION: eine Beschreibung der Richtlinie
  • VPC_NETWORK_LIST: eine durch Kommas getrennte Liste von VPC-Netzwerken, die die alternativen Nameserver abfragen
  • ALTERNATIVE_NAMESERVER_LIST: eine durch Kommas getrennte Liste von IP-Adressen, die Sie als alternative Nameserver verwenden können. Privates Routing wird nur für alternative Nameserver mit RFC 1918-Adressen verwendet.
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST: eine durch Kommas getrennte Liste von IP-Adressen, die Sie als alternative Nameserver verwenden können und die über ein privates Routing zugänglich sind

Terraform

resource "google_dns_policy" "default" {
  name = "example-outbound-policy"

  alternative_name_server_config {
    target_name_servers {
      ipv4_address    = "172.16.1.10"
      forwarding_path = "private"
    }
    target_name_servers {
      ipv4_address = "172.16.1.20"
    }
  }

  networks {
    network_url = google_compute_network.default.id
  }
}

resource "google_compute_network" "default" {
  name                    = "network"
  auto_create_subnetworks = false
}

Serverrichtlinie für beides erstellen

gcloud

Führen Sie den Befehl dns policies create aus, um eine DNS-Serverrichtlinie für die eingehende und ausgehende Weiterleitung zu erstellen:

gcloud dns policies create NAME \
    --description=DESCRIPTION \
    --networks=VPC_NETWORK_LIST \
    --alternative-name-servers=ALTERNATIVE_NAMESERVER_LIST \
    --private-alternative-name-servers=PRIVATE_ALTERNATIVE_NAMESERVER_LIST \
    --enable-inbound-forwarding

Ersetzen Sie Folgendes:

  • NAME: ein Name für die Richtlinie.
  • DESCRIPTION: eine Beschreibung der Richtlinie
  • VPC_NETWORK_LIST: Eine durch Kommas getrennte Liste von VPC-Netzwerken, in denen eingehende Weiterleitungsadressen erstellt werden und die alternative Nameserver abfragen müssen
  • ALTERNATIVE_NAMESERVER_LIST: eine durch Kommas getrennte Liste von IP-Adressen, die Sie als alternative Nameserver verwenden können. Privates Routing wird nur für alternative Nameserver mit RFC-1918-Adressen verwendet.
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST: eine durch Kommas getrennte Liste von IP-Adressen, die Sie als alternative Nameserver verwenden können und die über ein privates Routing zugänglich sind

Terraform

resource "google_dns_policy" "example_policy" {
  name                      = "example-policy"
  enable_inbound_forwarding = true

  enable_logging = true

  alternative_name_server_config {
    target_name_servers {
      ipv4_address    = "172.16.1.10"
      forwarding_path = "private"
    }
    target_name_servers {
      ipv4_address = "172.16.1.20"
    }
  }

  networks {
    network_url = google_compute_network.network_1.id
  }
  networks {
    network_url = google_compute_network.network_2.id
  }
}

resource "google_compute_network" "network_1" {
  name                    = "network-1"
  auto_create_subnetworks = false
}

resource "google_compute_network" "network_2" {
  name                    = "network-2"
  auto_create_subnetworks = false
}

Weiterleitungs-Einstiegspunkte für eingehenden Traffic auflisten

Wenn eine Serverrichtlinie für eingehenden Traffic auf ein VPC-Netzwerk angewendet wird, erstellt Cloud DNS eine Reihe regionaler interner IP-Adressen, die als Ziele dienen, an die Ihre lokalen Systeme oder Namensauflöser DNS-Abfragen senden können. Diese Adressen dienen als Einstiegspunkte für die Reihenfolge der Namensauflösung Ihres VPC-Netzwerks.

Google Cloud-Firewallregeln gelten nicht für die regionalen internen Adressen, die als Einstiegspunkte für Weiterleitungen von eingehendem Traffic dienen. Cloud DNS akzeptiert TCP- und UDP-Traffic auf Port 53 automatisch.

Jede Weiterleitung von eingehendem Traffic akzeptiert und empfängt Abfragen von Cloud VPN-Tunneln oder Cloud Interconnect-Anhängen (VLANs) in derselben Region wie die regionale interne IP-Adresse. VM-Instanzen können über jede der internen IP-Adressen im selben VPC-Netzwerk auf die eingehende Weiterleitung zugreifen. Für den Zugriff auf die eingehende Weiterleitung muss entweder die Netzwerkschnittstelle eine externe IP-Adresse haben oder für ein Subnetz der NIC muss der private Google-Zugriff aktiviert sein.

gcloud

Um die Gruppe regionaler interner IP-Adressen aufzulisten, die als Einstiegspunkt für die eingehende Weiterleitung dienen, führen Sie den Befehl compute addresses list aus:

gcloud compute addresses list \
    --filter='purpose = "DNS_RESOLVER"' \
    --format='csv(address, region, subnetwork)'

DNS-Richtlinien aktualisieren

Die folgenden Abschnitte enthalten Informationen zum Ändern von VPC-Netzwerken und zum Aktivieren oder Deaktivieren der eingehenden Weiterleitung.

VPC-Netzwerke ändern

In der folgenden Liste wird beschrieben, was geschieht, wenn Sie die Liste der VPC-Netzwerke ändern, für die eine DNS-Richtlinie gilt:

  • Wenn die Richtlinie eine Richtlinie für eingehenden Traffic festlegt, werden in VPC-Netzwerken nach Bedarf Einstiegspunkte für Weiterleitungen von eingehendem Traffic erstellt.
  • Wenn die Richtlinie eine Richtlinie für ausgehenden Traffic angibt, wird die Reihenfolge der Namensauflösung jedes VPC-Netzwerk so aktualisiert, dass die angegebenen alternativen Nameserver enthalten sind.

gcloud

Führen Sie den Befehl dns policies update aus, um die Liste der Netzwerke zu ändern, für die eine DNS-Serverrichtlinie gilt:

gcloud dns policies update NAME \
    --networks=VPC_NETWORK_LIST

Ersetzen Sie Folgendes:

  • NAME: ein Name für die Richtlinie
  • VPC_NETWORK_LIST: eine durch Kommas getrennte Liste von VPC-Netzwerken, auf die die Richtlinie angewendet wird. Die Liste, der von Ihnen angegebenen VPC-Netzwerke, ersetzt die vorherige Liste

Weiterleitung von eingehendem Traffic aktivieren oder deaktivieren

Sie können die Weiterleitung von eingehendem Traffic für eine DNS-Serverrichtlinie aktivieren, die nur eine Richtlinie für ausgehenden Traffic (alternativer Nameserver) definiert. Sie können auch die Weiterleitung von eingehendem Traffic für eine vorhandene DNS-Richtlinie deaktivieren.

gcloud

Führen Sie den Befehl dns policies update aus, um die eingehende Weiterleitung für eine DNS-Serverrichtlinie zu aktivieren:

gcloud dns policies update NAME \
    --enable-inbound-forwarding

Führen Sie den Befehl dns policies update aus, um die eingehende Weiterleitung für eine DNS-Serverrichtlinie zu deaktivieren:

gcloud dns policies update NAME \
    --no-enable-inbound-forwarding

Ersetzen Sie NAME durch den Namen der Richtlinie.

DNS-Richtlinien auflisten

gcloud

Führen Sie den Befehl dns policies list aus, um DNS-Serverrichtlinien in Ihrem Projekt aufzulisten:

gcloud dns policies list

DNS-Richtlinie löschen

gcloud

Führen Sie den Befehl dns policies delete aus, um eine Serverrichtlinie zu löschen:

gcloud dns policies delete NAME

Ersetzen Sie NAME durch den Namen der Richtlinie, die gelöscht werden soll.

Nächste Schritte

  • Informationen zu Lösungen für häufige Probleme, die bei der Verwendung von Cloud DNS auftreten können finden Sie unter Fehlerbehebung.
  • Eine Übersicht über Cloud DNS finden Sie in der Cloud DNS-Übersicht.