1. Introducción
En este codelab, se te guiará para configurar zonas de reenvío de salida de Cloud DNS con un nombre de dominio completamente calificado (FQDN) como destino de reenvío. Esta función te permite dirigir el tráfico de DNS a direcciones IP resueltas desde un nombre de DNS, en lugar de codificar direcciones IP de forma fija en la configuración de tu zona de reenvío. Esto es especialmente útil cuando cambian las direcciones IP del solucionador de DNS de backend, ya que puedes actualizar el registro DNS del FQDN y Cloud DNS detectará los cambios automáticamente.
Al final de este codelab, podrás configurar zonas de reenvío de Cloud DNS que usen lo siguiente:
- Un objetivo de FQDN que coincida con una zona privada con registros A/AAAA
- Un objetivo de FQDN respaldado por políticas de enrutamiento de Cloud DNS (ubicación geográfica o round robin ponderado) para la afinidad regional o la distribución del tráfico
Descripción general del reenvío de FQDN
El reenvío de Cloud DNS te permite resolver nombres de DNS privados alojados fuera de Google Cloud Platform (por ejemplo, en las instalaciones o en otras nubes) desde los recursos de Google Cloud Platform. Tradicionalmente, esta opción admitía el reenvío a una lista de direcciones IP de destino. El reenvío de FQDN extiende esto, ya que te permite especificar un FQDN como destino de reenvío en una zona de reenvío.
Cuando se especifica un FQDN, Cloud DNS lo resuelve en direcciones IP mediante una búsqueda interna, que usa la lógica de resolución de la red de origen. Esto significa que el destino del FQDN puede coincidir con una zona privada, una política de enrutamiento de DNS (ubicación geográfica o round robin ponderado), o incluso un nombre de dominio público de Internet. Luego, Cloud DNS reenvía la consulta a la IP de destino resuelta.
Qué compilarás
Reenvío de FQDN regional con una nueva zona privada
Crearás una configuración que logre afinidad regional para el tráfico de DNS. Esto implica crear una zona de DNS privada y configurar una política de enrutamiento de geolocalización en ella y, luego, vincular una zona de reenvío a este objetivo de FQDN. Esto garantiza que el tráfico de una región específica (por ejemplo, us-east1) se reenvíe a un servidor DNS regional correspondiente.
Reenvío de FQDN con una zona privada existente
Aprenderás a crear una zona de reenvío que se oriente a un FQDN respaldado por un registro A/AAAA dentro de una zona de DNS privada existente. Esto demuestra el reenvío de consultas a direcciones IP definidas de forma estática que se resuelven con un destino de reenvío de FQDN.
Qué aprenderás
El concepto de redirección de FQDN
Comprenderás que el reenvío de FQDN extiende el reenvío de DNS, ya que te permite especificar un destino de reenvío de FQDN en lugar de solo direcciones IP como destinos de reenvío para las consultas salientes.
Beneficios del reenvío de FQDN
Descubrirás que esta función elimina la necesidad de actualizaciones manuales cuando cambian las direcciones IP del agente de resolución de DNS del backend, ya que Cloud DNS detecta automáticamente los cambios del registro DNS del FQDN. También permite una escalabilidad más flexible de la infraestructura de DNS, ya que permite que los servidores DNS estén detrás de un nombre compartido o se escalen de forma dinámica.
Integración con las políticas de enrutamiento de Cloud DNS
Aprenderás cómo se puede combinar el reenvío de FQDN con las políticas de enrutamiento de Cloud DNS (ubicación geográfica o round robin ponderado) para lograr afinidad regional, optimizar el rendimiento de las implementaciones geográficamente diversas y distribuir el tráfico según las ponderaciones configuradas.
Sintaxis de comandos de Google Cloud CLI
Te familiarizarás con el comando gcloud dns managed-zones create
y sus marcas relevantes (--forwarding-targets
, --private-forwarding-targets
) para configurar zonas de reenvío de FQDN.
Requisitos previos
Para completar este codelab, necesitas lo siguiente:
- Una Cuenta de Google
- Un proyecto de Google Cloud con la facturación habilitada.
- La herramienta de línea de comandos de gcloud instalada y configurada
- Conocimientos básicos de Cloud DNS y de los conceptos de DNS
2. Cómo prepararte
Comprende las situaciones de reenvío de FQDN
El reenvío de FQDN de Cloud DNS admite varias situaciones de uso:
- Zona privada con registro A/AAAA: Si el FQDN coincide con un registro A/AAAA en una zona privada, las direcciones IP resueltas se agregan a la lista de reenvío, y el comportamiento es idéntico al reenvío a direcciones IP de destino directamente.
- Zona privada con política de ubicación geográfica: Las políticas de ubicación geográfica te permiten especificar la ubicación geográfica de origen y proporcionar las respuestas correspondientes, lo que verifica la distribución del tráfico en función de la ubicación geográfica. Esto es clave para el reenvío y la afinidad de DNS regionales.
- Zona privada con política de round robin ponderado (WRR): Las políticas de WRR permiten especificar diferentes ponderaciones por dirección IP para un nombre de DNS y verificar que el tráfico se distribuya según las ponderaciones configuradas.
- Zona pública con registro A/AAAA: Si el FQDN no coincide con ningún nombre privado visible para la misma red, Cloud DNS intenta resolverlo con la Internet pública.
Información sobre el comando de Google Cloud CLI para el reenvío de FQDN
Para crear una zona de reenvío con un destino de reenvío de FQDN con los comandos de la CLI de gcloud, usarás el comando gcloud dns managed-zones create
. Las marcas de clave para especificar un objetivo de FQDN son --forwarding-targets
o --private-forwarding-targets
. Consulta el documento para obtener detalles sobre los métodos de enrutamiento estándar y privado.
--forwarding-targets
: Es una lista de direcciones IPv4/IPv6 o un nombre de dominio del servidor de nombres de destino al que la zona reenviará las consultas. Se ignora para la visibilidad pública. Las direcciones que no sean RFC1918 se reenvían al destino a través de Internet. Las direcciones RFC1918 se reenvían a través de la VPC.--private-forwarding-targets
: Es una lista de direcciones IPv4/IPv6 o un nombre de dominio del servidor de nombres de destino al que la zona reenviará las consultas. Se ignora para la visibilidad pública. Se llegará a todas las direcciones especificadas para este parámetro a través de la VPC.
Sintaxis de muestra:
gcloud dns managed-zones create NAME \
--description=DESCRIPTION \
--dns-name=DNS_SUFFIX \
--networks=VPC_NETWORK_LIST \
--forwarding-targets=DEFAULT_FQDN_TARGET \
--visibility=private
Ten en cuenta que puedes especificar --private-forwarding-targets
en lugar de --forwarding-targets
.
Configura tu proyecto de Google Cloud Platform
Accede a gcloud CLI.
gcloud auth login
Crear un proyecto
gcloud projects create my-codelab-project
Habilita la API de Cloud DNS. Es posible que esto tarde unos minutos en aplicarse.
gcloud services enable dns.googleapis.com
En este codelab, se usa la red de VPC predeterminada que se crea con un proyecto nuevo. También puedes crear una red nueva para usarla en su lugar.
3. Configura el reenvío de FQDN regional (con una nueva zona privada)
En esta situación, se muestra cómo lograr el reenvío de DNS regional, lo que garantiza que el tráfico de una región específica se reenvíe a un servidor DNS dentro de esa misma región.
Crea una zona de DNS privada
Primero, crea una zona de DNS privada (por ejemplo, foo.com) que alojará tu FQDN y su política de enrutamiento de geolocalización asociada. Esta zona debe ser visible para tu red predeterminada.
gcloud dns managed-zones create my-zone \
--description="Private Zone for FQDN outbound DNS forwarding." \
--dns-name=foo.com. \
--networks=default \
--visibility=private
Crea un conjunto de registros de política de enrutamiento de geolocalización en la zona privada
A continuación, crea un conjunto de registros (por ejemplo, geo.foo.com) en mi-zona y aplica una política de enrutamiento de ubicación geográfica. En este ejemplo, se configuran las direcciones IP para asia-east1 y asia-west1.
gcloud dns record-sets create geo.foo.com. \
--ttl="30" \
--type="A" \
--zone="my-zone" \
--routing-policy-type="GEO" \
--routing-policy-data="asia-east1=192.168.0.1;us-central1=192.168.0.2"
Nota: Si el geovallado está inhabilitado (configuración predeterminada y recomendada), las consultas se dirigirán a la región en buen estado más cercana si un destino en la región original no está en buen estado.
Crea una zona de reenvío con el objetivo de FQDN
Crea una zona de reenvío (geo.test.com.) visible en la misma red predeterminada y establece geo.foo.com. (el FQDN con la política de enrutamiento de geolocalización) como su destino de reenvío.
gcloud dns managed-zones create my-geo-fwd-zone \
--description="Forwarding zone for FQDN outbound DNS forwarding for routing policy." \
--dns-name=geo.test.com. \
--networks=default \
--private-forwarding-targets=geo.foo.com. \
--visibility=private
Ahora, cualquier consulta de DNS que coincida con geo.test.com se reenvía a la IP resuelta (por ejemplo, 192.168.0.1 o 192.168.0.2) de geo.foo.com, según la región de origen de la consulta.
4. Configura el reenvío de FQDN (con una zona privada existente)
Tener una zona de DNS privada existente
Supongamos que ya tienes una zona de DNS privada llamada mi-zona (foo.com.) que es visible para la red predeterminada.
Crea un registro de recursos DNS dentro de esta zona privada
Crea un registro de tipo A para a.foo.com. en tu my-zone existente.
gcloud dns record-sets create a.foo.com. \
--ttl="30" \
--type="A" \
--zone="my-zone" \
--rrdatas=1.2.3.4
Crea una zona de reenvío y especifica el destino del FQDN
Al igual que en el caso del FQDN regional, crea una zona de reenvío y especifica a.foo.com. como el destino de reenvío.
gcloud dns managed-zones create my-a-fwd-zone \
--description="Forwarding zone for FQDN outbound DNS forwarding for A record." \
--dns-name=a.test.com. \
--networks=default \
--private-forwarding-targets=a.foo.com. \
--visibility=private
Cualquier consulta de DNS que coincida con a.test.com. se reenviará a las direcciones IP resueltas 1.2.3.4 de a.foo.com.
5. Limpia
Para poder borrar una zona privada, primero se deben borrar todos los ResourceRecordSets dentro de ella (con la excepción de los registros NS y SOA, que se generan automáticamente y siempre deben existir en la zona privada).
Borra la política de enrutamiento de geolocalización en la zona privada.
gcloud dns record-sets delete "geo.foo.com." --type="A" --zone="my-zone"
Borra el registro A en la zona privada.
gcloud dns record-sets delete "a.foo.com." --type="A" --zone="my-zone"
Borra la zona privada.
gcloud dns managed-zones delete "my-zone"
Borra la zona de reenvío de la política de enrutamiento de ubicación geográfica.
gcloud dns managed-zones delete "my-geo-fwd-zone"
Borra la zona de reenvío del registro A.
gcloud dns managed-zones delete "my-a-fwd-zone"
6. Felicitaciones
¡Felicitaciones! Aprendiste a usar correctamente el reenvío de DNS saliente de FQDN.