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 GCP Console con el cmdlet Add-GcdManagedZone:

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

Con esto, se crea una zona nueva con los detalles especificados y se agrega al proyecto actual de la configuración del SDK de Cloud, 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, a fin de publicar en Internet tus registros nuevos de la zona, debes actualizar los servidores de nombres de tu dominio para usar Cloud DNS. Incluso si tu dominio está registrado con Google Domains, debes 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, crea registros de recursos independientes o recupera los que ya existen con los cmdlets New-GcdResourceRecordSet y Get-GcdResourceRecordSet respectivamente y, luego, envía 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 incluir en un cambio y luego agregarlo a una zona administrada o quitarlo de esta.

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 compatibles que puedes crear y también incluir en los cambios en una zona son A, AAAA, CNAME, MX, NAPTR, NS, PTR, SOA, SPF, SRV y TXT. A fin de obtener ayuda para decidir qué recursos son necesarios y cómo crearlos, consulta los formatos de registros de recursos compatibles de 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

Con los cmdlets New-GcdResourceRecordSet y Get-GcdResourceRecordSet, se muestran conjuntos de registros de recursos, pero no se agregan recursos a ninguna zona ni se quitan de esta. Para ello, usa el cmdlet 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

Todas las llamadas al cmdlet Add-GcdChange muestran el objeto de solicitud de cambio recién ejecutado. También puedes pasar al cmdlet Add-GcdChange un objeto de solicitud de cambio para ejecutarlo 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 cmdlet 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ías borrar "my-new-zone", a la que agregaste los registros 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 cmdlet 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