Utilizzo di Cloud DNS

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questa pagina mostra come configurare le impostazioni DNS per un dominio utilizzando Cloud DNS e Cloud Tools for PowerShell. Guarda un semplice esempio di creazione di una zona gestita per gestire un dominio e i suoi sottodomini, quindi l'aggiunta di record di risorse alla zona per fornire informazioni che determinano il comportamento del server DNS nella gestione delle richieste ai domini della zona.

Questo documento presuppone che tu abbia un nome di dominio e un indirizzo IP a cui puoi puntare il nome di dominio. In caso contrario, puoi registrare un nome di dominio tramite Google Domains o un altro registrar di domini a tua scelta.

Per saperne di più sui cmdlet di Cloud DNS, consulta il riferimento cmdlet di Cloud Tools for PowerShell. Per scoprire di più su Cloud DNS in generale, leggi la Panoramica di Cloud DNS.

Creare una zona gestita per il tuo dominio

L'intero spazio dei nomi DNS è composto da molti domini, che presto includeranno il tuo nome di dominio. Le zone gestite nelle Cloud DNS modellano le zone DNS e fungono da container per organizzare i record DNS (ad esempio voci A, CNAME o TXT) per lo stesso suffisso di nome DNS. Ad esempio, i record per "example.com." e sottodomini come "first.example.com." potrebbero trovarsi nella stessa zona perché condividono il suffisso "example.com.". Osserva il punto finale, che è necessario e indica un nome DNS assoluto.

Per iniziare, configura una zona gestita per organizzare i record DNS che creerai per il tuo nome di dominio. Puoi creare una nuova zona gestita e aggiungerla al tuo progetto nella console Google Cloud utilizzando il cmdlet Add-GcdManagedZone:

Add-GcdManagedZone `
    -Name "my-new-zone" `
    -DnsName "example.com." `
    -Description "This is my first zone."

Viene creata una nuova zona con i dettagli specificati e la aggiunge al progetto attuale della configurazione dell'interfaccia a riga di comando gcloud attiva, anche se puoi anche specificare un ID progetto diverso se lo desideri. Questo crea inoltre record NS e SOA predefiniti nella zona per te.

Tuttavia, per pubblicare i nuovi record nella zona su Internet, devi anche aggiornare i server dei nomi del tuo dominio in modo che utilizzino Cloud DNS. Anche se il tuo dominio è registrato con Google Domains, devi comunque aggiornare i server dei nomi.

Puoi trovare i server dei nomi Cloud DNS assegnati al tuo dominio utilizzando il cmdlet Get-GcdManagedZone nella zona gestita che regola il dominio per restituire informazioni sulla zona:

Get-GcdManagedZone -Zone "my-new-zone"

Aggiunta e rimozione di set di record di risorse

I record di risorse DNS forniscono informazioni che descrivono il comportamento del server DNS quando gestisce le richieste inviate a un dominio. Ad esempio, i record DNS possono essere utilizzati per comunicare al server l'indirizzo IP a cui un dominio si risolve, indicare i server di scambio di posta utilizzabili per un dominio e molto altro ancora.

In Cloud DNS, puoi aggiungere o rimuovere i record DNS in una zona per configurare tale comportamento. Per aggiungere o rimuovere set di record di risorse immutabili, non lavori direttamente nei record di una zona. Puoi invece creare record di risorse indipendenti o recuperare quelli esistenti utilizzando rispettivamente i cmdlet New-GcdResourceRecordSet e Get-GcdResourceRecordSet e poi inviare richieste di modifica con questi record a una zona specifica utilizzando il cmdlet Add-GcdChange.

Creazione di set di record di risorse

Puoi utilizzare il cmdlet helper New-GcdResourceRecordSet per creare un set di record di risorse che puoi inserire all'interno di una modifica e quindi aggiungere o rimuovere da una zona gestita.

Ad esempio, se vuoi creare un record A per puntare il tuo dominio a un indirizzo IPv4 esterno nel formato #.#.#.# (se hai un indirizzo IPv6, utilizza un record AAAA), puoi utilizzare il comando seguente:

$ARecord = New-GcdResourceRecordSet `
    -Name "example.com." -Rrdata "107.1.23.134" -Type "A"

Analogamente, per creare un record CNAME per il sottodominio www in modo che &www.example.com." si risolva nello stesso IP e si comporti lo stesso di "example.com." puoi usare il seguente comando:

$CNAMERecord = New-GcdResourceRecordSet `
    -Name "www.example.com." -Rrdata "example.com." -Type "CNAME"

I tipi di record di risorse supportati che puoi creare e includere nelle modifiche a una zona sono A, AAAA, CNAME, MX, NAPTR, NS, PTR, SOA, SPF, SRV e TXT. Per decidere quali record hai bisogno e come crearli, consulta i formati di record di risorse supportati per Cloud DNS.

Recupero dei set di record di risorse

Se vuoi recuperare un set di record di risorse esistente in una zona, puoi utilizzare il cmdlet Get-GcdResourceRecordSet per restituire tutti i record di una zona e poi indicizzare i risultati:

$allRecords = Get-GcdResourceRecordSet -Zone "my-new-zone"
$record0 = $allRecords[0]

Se vuoi solo record di un tipo specifico, puoi filtrare i risultati di conseguenza:

$ARecord = Get-GcdResourceRecordSet -Zone "my-new-zone" -Filter "A"

Applicare modifiche a una zona gestita

I cmdlet New-GcdResourceRecordSet e Get-GcdResourceRecordSet restituiscono entrambi set di record di risorse, ma non aggiungono né eliminano record da nulla. Per farlo, utilizza il cmdlet Add-GcdChange:

Add-GcdChange `
    -Zone "my-new-zone" -Add $record1,$record2 -Remove $record0

Ad esempio, per aggiungere i record A e CNAME creati in precedenza alla nostra zona:

Add-GcdChange -Zone "my-new-zone" -Add $ARecord,$CNAMERecord

Se in seguito vuoi cambiare l'indirizzo IPv4 a cui è risolto il tuo dominio, puoi creare un nuovo record di tipo A e aggiungerlo alla zona gestita eliminando il vecchio record A:

$oldARecord = Get-GcdResourceRecordSet -Zone "my-new-zone" -Filter "A"
$newARecord = New-GcdResourceRecordSet `
    -Name "example.com." -Rrdata "104.1.34.167" -Type "A"
Add-GcdChange -Zone "my-new-zone" -Remove $oldARecord -Add $newARecord

Ogni chiamata al cmdlet Add-GcdChange restituisce l'oggetto di richiesta di modifica appena eseguito. Puoi anche passare il cmdlet Add-GcdChange per l'esecuzione diretta di un oggetto della richiesta di modifica anziché gli elenchi di set di record di risorse:

Add-GcdChange -Zone "my-new-zone" -ChangeRequest $change0

La creazione manuale di oggetti di richiesta di modifica non è consigliata, ma sono utili se vuoi applicare nuovamente una modifica apportata in precedenza o una apportata in una zona diversa. Puoi recuperare tutti gli oggetti precedenti della richiesta di modifica applicati a una zona utilizzando il cmdlet Get-GcdChange:

$allChanges = Get-GcdChange -Zone "my-new-zone"

Puoi scegliere una modifica specifica indicizzando il risultato precedente o specificare quale modifica recuperare con un ChangeId. Le richieste di modifica sono generalmente numerate da 0 in poi in base all'ordine in cui sono state inviate alla zona:

$firstChange = Get-GcdChange -Zone "my-new-zone" -ChangeId 0
Add-GcdChange -Zone "my-new-zone" -ChangeRequest $firstChange

Eliminazione zone gestite

In alcuni casi, potresti voler rimuovere completamente una zona gestita. Le cause potrebbero essere diverse. Forse hai una zona gestita "user1-zone" per il sottodominio "user1.example.com." ma utente1 elimina il suo account, nel qual caso vuoi rimuovere questo sottodominio e tutti i record DNS associati.

Per rimuovere una zona gestita dal progetto, utilizza il cmdlet Remove-GcdManagedZone:

Remove-GcdManagedZone -Zone "user1-zone"

In caso di esito positivo, il comando non restituisce nulla.

Tuttavia, questo cmdlet non funziona immediatamente su ciò che Cloud DNS considera "zone non vuote" gestite o zone che contengono record di tipo non NS o non SOA (record non predefiniti). Ad esempio, non dovresti eliminare &myt;my-new-zone," a cui hai aggiunto i record di tipo A e CNAME, senza concedere l'autorizzazione al cmdlet durante l'elaborazione o utilizzare l'opzione -Force:

Remove-GcdManagedZone -Zone "my-new-zone" -Force

Il cmdlet Remove-GcdManagedZone accetta anche l'input della pipeline per le zone da eliminare. Ad esempio, il comando seguente elimina forzatamente tutte le zone gestite nel progetto corrente. Questo può essere utile se non stai più gestendo uno dei domini configurati in un progetto:

Get-GcdManagedZone | Remove-GcdManagedZone -Force