Configura i criteri dei server Cloud DNS

Questa pagina descrive come configurare i criteri dei server Cloud DNS e utilizzarli con le reti Virtual Private Cloud (VPC). Prima di utilizzare questa pagina, consulta la panoramica dei criteri dei server DNS.

Prima di iniziare

L'API Cloud DNS richiede di creare un progetto Google Cloud e di abilitare l'API Cloud DNS.

Se stai creando un'applicazione che utilizza l'API REST, devi anche creare un ID client OAuth 2.0.

  1. Se non ne hai già uno, crea un Account Google.
  2. Abilita l'API Cloud DNS nella console Google Cloud. Puoi scegliere un progetto Compute Engine o App Engine esistente oppure crearne uno nuovo.
  3. Se devi effettuare richieste all'API REST, devi creare un ID OAuth 2.0. Consulta Configurare OAuth 2.0.
  4. Nel progetto, prendi nota delle seguenti informazioni che dovrai inserire nei passaggi successivi:
    • L'ID client (xxxxxx.apps.googleusercontent.com).
    • L'ID progetto che vuoi utilizzare. Puoi trovare l'ID nella parte superiore della pagina Panoramica della console Google Cloud. Puoi anche chiedere all'utente di fornire il nome del progetto che vuole utilizzare nella tua app.

Se non hai mai eseguito Google Cloud CLI, devi eseguire il seguente comando per specificare il nome del progetto e autenticarti con la console Google Cloud:

gcloud auth login

Per scegliere un progetto diverso da quello scelto in precedenza, specifica l'opzione --project nella riga di comando.

Crea i criteri del server DNS

Ogni oggetto criterio del server DNS può definire uno dei seguenti criteri del server:

Ogni rete VPC può fare riferimento a un solo criterio del server DNS. Se devi definire l'inoltro sia in entrata che in uscita per una rete VPC, crea un criterio che definisca sia un criterio in entrata che uno in uscita.

Crea un criterio del server in entrata

Per creare un criterio del server in entrata, segui queste istruzioni. Cloud DNS crea un insieme di indirizzi IP di inoltro in entrata dagli intervalli di indirizzi IPv4 primari delle subnet in ogni rete VPC a cui si applica il criterio. Dopo aver creato il criterio, puoi elencare i punti di contatto creati da Cloud DNS.

gcloud

Per creare un criterio del server in entrata, esegui il comando dns policies create:

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

Sostituisci quanto segue:

  • NAME: un nome per il criterio
  • DESCRIPTION: una descrizione del criterio
  • VPC_NETWORK_LIST: un elenco separato da virgole di reti VPC in cui devono essere creati gli indirizzi di inoltro in entrata

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
}

Crea un criterio del server in uscita

Per specificare un elenco di server DNS alternativi per una rete VPC, puoi creare un criterio del server in uscita.

gcloud

Per creare un criterio del server in uscita, esegui il comando dns policies create:

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

Sostituisci quanto segue:

  • NAME: un nome per il criterio
  • DESCRIPTION: una descrizione del criterio
  • VPC_NETWORK_LIST: un elenco separato da virgole di reti VPC che eseguono query sui server dei nomi alternativi
  • ALTERNATIVE_NAMESERVER_LIST: un elenco di indirizzi IP separati da virgole che puoi utilizzare come server DNS alternativi. Il routing privato viene utilizzato solo per i server DNS alternativi con indirizzi RFC 1918
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST: un elenco separato da virgole di indirizzi IP che puoi utilizzare come nameserver alternativi, a cui accedi utilizzando il routing privato

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
}

Crea un criterio del server per entrambi

gcloud

Per creare un criterio del server DNS sia per l'inoltro in entrata sia per quello in uscita, esegui il comando dns policies create:

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

Sostituisci quanto segue:

  • NAME: un nome per il criterio
  • DESCRIPTION: una descrizione del criterio
  • VPC_NETWORK_LIST: un elenco separato da virgole di reti VPC in cui devono essere creati indirizzi di inoltro in entrata e che devono eseguire query sui server dei nomi alternativi
  • ALTERNATIVE_NAMESERVER_LIST: un elenco delimitato da virgole di indirizzi IP che puoi utilizzare come server DNS alternativi. Il routing privato viene utilizzato solo per i server DNS alternativi con indirizzi RFC 1918.
  • PRIVATE_ALTERNATIVE_NAMESERVER_LIST: un elenco delimitato da virgole di indirizzi IP che puoi utilizzare come server DNS alternativi, a cui puoi accedere utilizzando il routing privato.

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
}

Elenca i punti di contatto dei corrieri in entrata

Quando un criterio del server in entrata viene applicato a una rete VPC, Cloud DNS crea un insieme di indirizzi IP interni regionali che fungono da destinazioni a cui i sistemi on-premise o i resolver dei nomi possono inviare query DNS. Questi indirizzi fungono da punti di contatto per l'ordine di risoluzione dei nomi della rete VPC.

Le regole del firewall di Google Cloud non si applicano agli indirizzi interni regionali che fungono da punti di contatto per i forwarder in entrata. Cloud DNS accetta automaticamente il traffico TCP e UDP sulla porta 53.

Ogni inoltro in entrata accetta e riceve query dai tunnel Cloud VPN o dagli allegati (VLAN) Cloud Interconnect nella stessa regione dell'indirizzo IP interno regionale. Le istanze VM possono accedere al forwarder entrante tramite uno degli indirizzi IP interni della stessa rete VPC. Per accedere al forwarding in entrata, l'interfaccia di rete deve avere un indirizzo IP esterno o una subnet della NIC deve avere l'accesso privato Google abilitato.

gcloud

Per elencare l'insieme di indirizzi IP interni regionali che fungono da entry point per il forwarding in entrata, esegui il comando compute addresses list:

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

Aggiorna i criteri DNS

Le seguenti sezioni forniscono informazioni su come modificare le reti VPC e attivare o disattivare il reindirizzamento in entrata.

Modificare le reti VPC

L'elenco seguente descrive cosa accade quando modifichi l'elenco delle reti VPC a cui si applica un criterio DNS:

  • Se il criterio specifica un criterio in entrata, i punti di contatto per i forwarder in entrata vengono creati nelle reti VPC in base alle esigenze.
  • Se il criterio specifica un criterio in uscita, l'ordine di risoluzione dei nomi di ogni rete VPC viene aggiornato in modo da includere i server DNS alternativi specificati.

gcloud

Per modificare l'elenco delle reti a cui si applica un criterio del server DNS, esegui il comando dns policies update:

gcloud dns policies update NAME \
    --networks=VPC_NETWORK_LIST

Sostituisci quanto segue:

  • NAME: un nome per il criterio
  • VPC_NETWORK_LIST: un elenco separato da virgole di reti VPC a cui si applica il criterio. L'elenco di reti VPC specificato sostituisce l'elenco precedente

Attivare o disattivare il inoltro in entrata

Puoi attivare l'inoltro in entrata per un criterio del server DNS che definisce solo un criterio in uscita (server dei nomi alternativo). Puoi anche disattivare il forwarding in entrata per un criterio DNS esistente.

gcloud

Per attivare l'inoltro in entrata per un criterio del server DNS, esegui il comando dns policies update:

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

Per disattivare l'inoltro in entrata per un criterio del server DNS, esegui il comando dns policies update:

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

Sostituisci NAME con il nome del criterio.

Elenca i criteri DNS

gcloud

Per elencare i criteri del server DNS nel progetto, esegui il comando dns policies list:

gcloud dns policies list

Eliminare un criterio DNS

gcloud

Per eliminare un criterio del server, esegui il comando dns policies delete:

gcloud dns policies delete NAME

Sostituisci NAME con il nome del criterio da eliminare.

Passaggi successivi