Utilizzo di Cloud DNS

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

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

Leggi il cmdlet Cloud Tools for PowerShell riferimento a Scopri di più sui cmdlet di Cloud DNS. Per scoprire di più su Cloud DNS in generale, leggi le Panoramica di Cloud DNS.

Creazione di una zona gestita per il dominio

L'intero spazio dei nomi DNS è composto da molti domini, che a breve includi il tuo nome di dominio. Zone gestite nel modello DNS di Cloud DNS zone e fungono da container per organizzare i record DNS (come A, CNAME TXT) per lo stesso suffisso del nome DNS. Ad esempio, i record per "example.com." e sottodomini come "first.example.com". potrebbe essere nello stesso poiché condivide "example.com". suffisso. Nota il punto finale, necessaria e indica un nome DNS assoluto.

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

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

Questa operazione crea una nuova zona con i dettagli specificati e la aggiunge all'area progetto dell'interfaccia a riga di comando gcloud CLI attiva configurazione, nonostante tu possa scegliere e specificare un ID progetto diverso, se necessario. Questo crea anche NS predefiniti e record SOA nella zona.

Tuttavia, per pubblicare i nuovi record della zona su internet, è necessario anche di aggiornare i server dei nomi del dominio in modo Cloud DNS. Anche se il tuo dominio è registrati con Google Domains, devi comunque aggiornare i propri server dei nomi.

Puoi trovare i server dei nomi di 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 determina il comportamento del server DNS quando gestisce le richieste inviate a un dominio. Ad esempio, i record DNS possono essere utilizzati per indicare al server l'indirizzo IP in cui un dominio si risolve, indicare i server Mail Exchange utilizzabili per un dominio, e molto altro ancora.

In Cloud DNS, puoi aggiungere o rimuovere i record DNS di una zona per configurare tale comportamento. Per aggiungere o rimuovere set di record di risorse immutabili, non operare sui record direttamente in una zona. Piuttosto, crei un ambiente record di risorse esistenti o recuperare quelli esistenti utilizzando l'New-GcdResourceRecordSet e Get-GcdResourceRecordSet cmdlet, quindi invia la modifica richieste con questi record a una zona specifica utilizzando il Add-GcdChange cmdlet.

Creazione di set di record di risorse

Puoi utilizzare il cmdlet helper New-GcdResourceRecordSet per creare una risorsa di un set di record che puoi inserire all'interno di una modifica e poi aggiungerlo o rimuoverlo da un nella zona gestita.

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

$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 risolve allo stesso IP e si comporta come "example.com." puoi utilizzare questo 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 per decidere quali record sono necessari e come crearli, consulta formati di record di risorse supportati Cloud DNS.

Recupero dei set di record di risorse in corso

Se vuoi recuperare un set di record di risorse esistente in una zona, puoi usare il cmdlet Get-GcdResourceRecordSet per restituire tutti i record in una zona e quindi indicizza 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"

Applicazione di modifiche a una zona gestita

I cmdlet New-GcdResourceRecordSet e Get-GcdResourceRecordSet sono entrambi restituiscono set di record di risorse, ma non aggiungono record né li rimuovono qualsiasi cosa. Per farlo, utilizza il cmdlet Add-GcdChange:

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

Ad esempio, per aggiungere alla nostra zona i record A e CNAME che hai creato sopra, procedi nel seguente modo:

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

Se in seguito vuoi cambiare l'indirizzo IPv4 in cui viene risolto il dominio, puoi creare un nuovo record di tipo A e aggiungerlo alla zona gestita mentre 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 il file appena eseguito oggetto richiesta di modifica. Puoi anche passare Add-GcdChange cmdlet di un oggetto di richiesta di modifica da eseguire direttamente al posto di 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 è utile se vuoi applicare di nuovo una modifica apportata in precedenza o in una zona diversa. È possibile recuperare tutti gli oggetti di richieste di modifica passate 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 oppure che modificare da recuperare con un ChangeId. In genere le richieste di modifica sono numerate da 0 in poi in base all'ordine in cui sono stati inviati alla zona:

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

Eliminazione delle zone gestite

A volte potresti voler rimuovere del tutto una zona gestita. Potrebbe essere per per diversi motivi. Forse hai la zona gestita "user1-zone" per sottodominio "utente1.esempio.com." ma user1 elimina il proprio account e in questo caso vuoi rimuovi questo sottodominio e tutti i record DNS associati.

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

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 "non vuoto" zone gestite o zone che contengono account non NS o non SOA (record non predefiniti). Ad esempio, non puoi eliminare "la-nuova-zona", a cui hai aggiunto i record di tipo A e CNAME, senza concedendo l'autorizzazione al cmdlet durante l'elaborazione o l'utilizzo dell'-Force Opzione:

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

Il cmdlet Remove-GcdManagedZone accetta anche input della pipeline per le zone da eliminare. Ad esempio, il seguente comando elimina forzatamente tutte le nel progetto corrente. Questa opzione potrebbe essere utile se non sei più mantenendo qualsiasi dominio impostato in un progetto:

Get-GcdManagedZone | Remove-GcdManagedZone -Force