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.

Hinweis

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 müssen Sie eine OAuth 2.0-ID erstellen: OAuth 2.0 einrichten.
  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 in jedem VPC-Netzwerk, für das die Richtlinie gilt, eine Reihe von Weiterleitungs-IP-Adressen für eingehenden Traffic. 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

Dabei gilt:

  • 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

Sie können eine Serverrichtlinie für ausgehenden Traffic erstellen, um die Reihenfolge der Namensauflösung eines VPC-Netzwerks zu ändern, indem Sie alle DNS-Abfragen an einen alternativen Nameserver weiterleiten. Führen Sie hierzu folgende Schritte aus: Bevor Sie beginnen, sollten Sie sich mit den Unterschieden zwischen Standard- und privatem Routing und den Netzwerkanforderungen an alternative Nameserver vertraut machen.

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

Dabei gilt:

  • 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

Dabei gilt:

  • 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-Anfragen 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 festlegt, wird die Reihenfolge der Namensauflösung jedes VPC-Netzwerks aktualisiert, um alle Anfragen an einen alternativen Nameserver weiterzuleiten.

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

Dabei gilt:

  • 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.

Netzwerkanforderungen an alternative Nameserver

Wenn Cloud DNS Anfragen an alternative Nameserver sendet, werden Pakete mit den in der folgenden Tabelle aufgeführten Quellbereichen gesendet:

Alternativer Nameserver-Typ Quellbereiche

Nameserver 1

Eine interne IP-Adresse einer Google Cloud-VM im selben VPC-Netzwerk mit der ausgehenden Richtlinie.

Nameserver 2

IP-Adresse eines lokalen Systems, das über Cloud VPN oder Cloud Interconnect mit dem VPC-Netzwerk verbunden ist.

Weitere Informationen dazu, welche IP-Adressen unterstützt werden, finden Sie unter Alternative Nameserver und Routingmethoden.

35.199.192.0/19

Cloud DNS verwendet den Quellbereich 35.199.192.0/19 für alle Kunden. Dieser Bereich ist nur über ein Google Cloud-VPC-Netzwerk oder über ein lokales Netzwerk erreichbar, das mit einem VPC-Netzwerk verbunden ist.

Nameserver 3

Eine externe IP-Adresse eines DNS-Nameservers, auf die über das Internet zugegriffen werden kann oder die externe IP-Adresse einer Google Cloud-Ressource, z. B. die externe IP-Adresse einer VM in einem anderen VPC-Netzwerk.

Google Public DNS-Quellbereiche

Alternative Nameserver vom Typ 1 und 2

Für den Zugriff auf Cloud DNS ist der Zugriff auf einen alternativen Nameserver vom Typ 1 oder Typ 2 erforderlich. Diese Anforderungen sind unabhängig davon, ob der Nameserver eine RFC 1918-IP-Adresse ist, Sie das Standardrouting oder wenn Sie privates Routing verwenden:

  • Firewallkonfiguration für 35.199.192.0/19

    Erstellen Sie für Nameserver des Typs 1 eine Firewallregel für zulässigen eingehenden Traffic für TCP- und UDP-Port 53. Gilt für Ihre alternativen Nameserver in jedem VPC-Netzwerk, das für die Verwendung einer ausgehenden Richtlinie konfiguriert ist, die den Nameserver angibt. Konfigurieren Sie für Nameserver vom Typ 2 eine lokale Netzwerk-Firewall und ähnliche Geräte, um den TCP- und UDP-Port 53 zuzulassen.

  • Weiterleitung zum alternativen Nameserver

    Für Typ-1-Nameserver verwendet Cloud DNS eine Subnetzroute, um auf den Nameserver im VPC-Netzwerk zuzugreifen, das für die Verwendung einer ausgehenden Richtlinie konfiguriert ist, die den Nameserver angibt. Für Nameserver vom Typ 2 verwendet Cloud DNS entweder benutzerdefinierte dynamische oder benutzerdefinierte statische Routen, mit Ausnahme von getaggten statischen Routen, um auf den Nameserver zuzugreifen.

  • Route zu 35.199.192.0/19 über dasselbe VPC-Netzwerk zurückgeben

    Für Nameserver-Typ 1 fügt Google Cloud automatisch eine spezielle Rückgaberoute für das Ziel 35.199.192.0/19 hinzu. Bei Nameservern vom Typ 2 muss Ihr lokales Netzwerk eine Route für das Ziel 35.199.192.0/19 haben, deren nächster Hop sich im selben VPC-Netzwerk und in derselben Region befindet wie die Anfrage. Dies erfolgt durch einen Cloud VPN-Tunnel oder Cloud Interconnect-Anhang (VLAN). Informationen zum Erfüllen dieser Anforderung finden Sie unter Rückwegroutenstrategien für Nameserver vom Typ 2.

  • Direkte Antwort vom alternativen Nameserver

    Für Cloud DNS muss der alternative Nameserver, der Pakete empfängt, derjenige sein, der Antworten an 35.199.192.0/19 sendet. Wenn Ihr Nameserver die Anfrage an einen anderen Nameserver sendet und dieser andere Nameserver auf 35.199.192.0/19 antwortet, ignoriert Cloud DNS die Antwort. Aus Sicherheitsgründen erwartet Google Cloud, dass die Quelladresse der DNS-Antwort jedes alternativen Nameservers mit der IP-Adresse des alternativen Nameservers übereinstimmt.

Rückwegroutenstrategien für Nameserver vom Typ 2 zurück

Antworten von Nameserver-2-Servern können nicht über das Internet, ein anderes VPC-Netzwerk oder eine andere Region gesendet werden (auch im selben VPC-Netzwerk). Antworten müssen in dieselbe Region und dasselbe VPC-Netzwerk zurückgegeben werden. Allerdings können sie einen beliebigen Cloud VPN-Tunnel oder Cloud Interconnect-Anhang (VLAN) in derselben Region und im selben Netzwerk verwenden.

  • Erstellen Sie für Cloud VPN-Tunnel, die statisches Routing verwenden, manuell eine Route in Ihrem lokalen Netzwerk, deren Ziel 35.199.192.0/19 und deren nächster Hop der Cloud VPN-Tunnel ist. Für Cloud VPN-Tunnel, die richtlinienbasiertes Routing verwenden, konfigurieren Sie die lokale Trafficauswahl des Cloud VPN und die Remote-Trafficauswahl des lokalen VPN-Gateways so, dass 35.199.192.0/19 enthalten ist.
  • Für Cloud VPN-Tunnel, die dynamisches Routing verwenden, und für Cloud Interconnect konfigurieren Sie ein benutzerdefiniertes Route Advertisement für 35.199.192.0/19 der BGP-Sitzung auf dem Cloud Router, der den Tunnel oder Interconnect-Anhang (VLAN) verwaltet.

Alternative Nameserver vom Typ 3

Wenn Cloud DNS mit einer Standardweiterleitung auf eine externe IP-Adresse zugreift, erwartet sie, dass der alternative Nameserver entweder ein System im Internet, öffentlich zugänglich oder eine externe IP-Adresse einer Google Cloud-Ressource ist.

Ein alternativer Typ-3-Nameserver beispielsweise enthält die externe IP-Adresse einer VM in einem anderen VPC-Netzwerk.

Privates Routing an alternative Nameserver von Typ 3 wird nicht unterstützt.

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.