Trabaja con Cloud DNS

En esta página, se muestra cómo realizar la configuración de DNS para un dominio con Cloud DNS y Cloud Tools for PowerShell. Se explica un ejemplo sencillo de cómo crear una zona administrada a fin de controlar un dominio y sus subdominios y, luego, agregar registros de recursos a la zona para proporcionar información que determine el comportamiento del servidor DNS cuando se administran las solicitudes a los dominios de la zona.

En este documento, se da por hecho que tienes un nombre de dominio y una dirección IP a la que puedes dirigirlo. Si no es así, puedes registrar un nombre de dominio mediante Google Domains o algún otro registrador de dominios que prefieras.

Consulta la referencia del cmdlet para Cloud Tools for PowerShell a fin de obtener más información sobre los cmdlets de Cloud DNS. Para obtener más información sobre Cloud DNS en general, consulta la descripción general de Cloud DNS.

Crea una zona administrada para tu dominio

La totalidad del espacio de nombres DNS se compone de varios dominios en los que pronto se incluirá tu propio nombre de dominio. Las zonas administradas en Cloud DNS realizan modelos de las zonas DNS y se entregan como contenedores a fin de organizar los registros DNS (como las entradas A, CNAME o TXT) para el mismo sufijo de nombre de DNS. Por ejemplo, los registros para "example.com." y los subdominios como "first.example.com." pueden estar en la misma zona, ya que comparten el sufijo "example.com.". Ten en cuenta el punto final, que es necesario y significa un nombre de DNS absoluto.

A fin de comenzar, configura una zona administrada con la que organices los registros DNS que crearás para tu nombre de dominio. Puedes crear una zona administrada nueva y agregarla a tu proyecto de la consola con el selector Add-GcdManagedZone:

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

Esto crea una zona nueva con los detalles especificados y la agrega al proyecto actual de la configuración de la CLI de gcloud activa, aunque también tienes la opción de especificar un ID del proyecto diferente si lo deseas. Además, se crean registros NS y SOA predeterminados en la zona.

Sin embargo, para publicar los registros nuevos en la zona en Internet, también debes actualizar los servidores de nombres de tu dominio a fin de usar Cloud DNS. Incluso si tu dominio está registrado en Google Domains, necesitarás actualizar sus servidores de nombres.

Puedes buscar los servidores de nombres de Cloud DNS asignados a tu dominio con el cmdlet Get-GcdManagedZone en la zona administrada que controla el dominio para mostrar la información de la zona:

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

Agrega y quita conjuntos de registros de recursos

En los registros de recursos DNS, se ofrece información que determina el comportamiento del servidor DNS cuando administra solicitudes enviadas a un dominio. Por ejemplo, los registros DNS se pueden usar para indicarle al servidor en qué dirección IP se resuelve un dominio, los servidores de intercambio de correo electrónico que se pueden usar en un dominio y mucho más.

En Cloud DNS, puedes agregar registros DNS a una zona o quitarlos de allí para configurar este comportamiento. Para agregar o quitar conjuntos de registros de recursos inmutables, no operes directamente en los registros de una zona. En su lugar, puedes crear registros de recursos independientes o recuperar los existentes con los cmdlets New-GcdResourceRecordSet y Get-GcdResourceRecordSet respectivamente y, luego, enviar solicitudes de cambio con estos registros a una zona específica mediante el cmdlet Add-GcdChange.

Crea conjuntos de registros de recursos

Puedes usar el cmdlet auxiliar New-GcdResourceRecordSet para crear un conjunto de registros de recursos que puedes agregar a un cambio y, luego, agregar o quitar de una zona administrada.

Por ejemplo, si deseas crear un registro A para dirigir tu dominio a una dirección IPv4 externa en el formato #.#.#.# (Si tienes una dirección IPv6, usa un registro AAAA), puedes usar el siguiente comando:

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

Del mismo modo, puedes usar el siguiente comando a fin de crear un registro CNAME para el subdominio www en el que "www.example.com." se resuelva en la misma IP y se comporte de la misma forma que "example.com.":

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

Los tipos de registros de recursos admitidos que puedes crear y, luego, incluir en los cambios de una zona son A, AAAA, CNAME, MX, NAPTR, NS, PTR, SOA, SPF, SRV y TXT. Si necesitas ayuda para decidir qué registros necesitas y cómo crearlos, consulta Formatos de registro de recursos admitidos para Cloud DNS.

Recupera conjuntos de registros de recursos

Si deseas recuperar un conjunto de registros de recursos existente en una zona, puedes usar el cmdlet Get-GcdResourceRecordSet para mostrar todos los registros de una zona y, luego, indexar los resultados:

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

Si solo deseas recuperar registros de un tipo específico, puedes filtrar los resultados según corresponda:

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

Aplica cambios a una zona administrada

Los inicializadores New-GcdResourceRecordSet y Get-GcdResourceRecordSet muestran conjuntos de registros de recursos, pero no agregan registros a ningún conjunto ni los quitan. Para ello, usa el selector Add-GcdChange:

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

Por ejemplo, para agregar los registros A y CNAME que creaste anteriormente en nuestra zona, ejecuta el siguiente comando:

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

Si después quisiste cambiar la dirección IPv4 en la que se resuelve tu dominio, puedes crear un registro de tipo A nuevo y agregarlo a la zona administrada mientras borras el registro A anterior:

$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

Cada llamada al compilador de Add-GcdChange muestra el objeto de solicitud de cambio recién ejecutado. También puedes pasar al elemento Add-GcdChange del objeto de una solicitud de cambio para que se ejecute directamente, en lugar de listas de conjuntos de registros de recursos:

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

No se recomienda crear objetos de solicitud de cambio de forma manual, pero es útil si deseas volver a aplicar un cambio realizado anteriormente o en una zona diferente. Puedes recuperar todos los objetos de solicitud de cambio anteriores que se aplicaron a una zona con el cmdlet Get-GcdChange:

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

Puedes elegir un cambio específico si indexas el resultado anterior o especificar qué cambio se debe recuperar con un ChangeId. Por lo general, las solicitudes de cambio se numeran de 0 en adelante según el orden en que se enviaron a la zona:

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

Borra zonas administradas

A veces, es posible que desees quitar una zona administrada por completo. Esto puede ser por varias razones. Quizás hayas administrado la zona "user1-zone" para el subdominio "user1.example.com.", pero user1 borra su cuenta, en cuyo caso deseas quitar este subdominio y todos los registros DNS asociados.

Para quitar una zona administrada de tu proyecto, usa el cmd Remove-GcdManagedZone:

Remove-GcdManagedZone -Zone "user1-zone"

Si se completa correctamente, el comando no muestra nada.

Sin embargo, este cmdlet no trabaja de inmediato en lo que Cloud DNS considera zonas administradas "no vacías" o zonas que contienen registros tipo no NS o no SOA (registros no predeterminados). Por ejemplo, no podrás borrar "my-new-zone", a la que agregaste registros de tipo A y CNAME, sin otorgar permiso al cmdlet durante el procesamiento o usar el interruptor -Force:

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

El compilador de Remove-GcdManagedZone también acepta entradas de canalización para las zonas que se borrarán. Por ejemplo, con el siguiente comando, se borran forzadamente todas las zonas administradas del proyecto actual. Esto puede ser útil si ya no conservas ninguno de los dominios configurados en un proyecto:

Get-GcdManagedZone | Remove-GcdManagedZone -Force