Registros y supervisión

En esta página, se brinda información sobre el registro y las métricas de supervisión de Cloud DNS, incluidas las zonas privadas y de reenvío. Además, se brindan instrucciones para supervisar la propagación de los cambios del DNS público.

Registro de DNS privado

El registro de DNS privado realiza un seguimiento de las consultas que resuelven los servidores de nombres en tus redes de nube privada virtual. Las consultas directas de una entidad externa a una zona pública no se registran porque se manejan mediante un servidor de nombres público.

Las consultas registradas pueden provenir de máquinas virtuales (VM) de Compute Engine, contenedores de Google Kubernetes Engine en la misma red de VPC, zonas de intercambio de tráfico o clientes locales mediante el reenvío del DNS entrante. Las consultas se resuelven a través de zonas de DNS privadas, zonas de DNS de reenvío, un servidor de nombre alternativo, zonas de DNS de GCP internas o zonas de DNS externas.

Los registros pertenecen al proyecto que es propietario de la red en la que se llevó a cabo la consulta. En el caso de una VPC compartida, los registros pertenecen al proyecto host porque es el propietario de la red.

Inhabilita y habilita los registros

Utiliza políticas de DNS para habilitar el registro en tus redes.

Habilita el registro en una red sin política de DNS

gcloud dns policies create policy-name \
    --networks=network \
    --enable-logging \
    --description=description

Reemplaza las siguientes opciones de comando:

  • networks: Es una o más redes en una lista separada por comas
  • description: Es una descripción de la política

Habilita el registro en una red con política de DNS existente

gcloud dns policies update policy-name \
    --networks=network \
    --enable-logging

Reemplaza la siguiente opción de comando:

  • networks: Es una o más redes en una lista separada por comas

Inhabilita el registro

Esto inhabilita el registro, pero no elimina la política. Como alternativa, puedes borrar la política por completo.

gcloud dns policies update policy-name \
    --networks=network \
    --no-enable-logging

Reemplaza la siguiente opción de comando:

  • networks: Es una o más redes en una lista separada por comas

Cómo ver registros

Ve a la página del visor de registros de Cloud DNS en Google Cloud Console.
Ir a la página Visor de registros

Formato de registro

Cada entrada de registro contiene los siguientes campos, si corresponde. Algunos de los campos también se comparten con las métricas de supervisión.

Campo Tipo de campo Descripción Utilizado en las métricas
source_type String Origen de la consulta: “inbound-forwarding”, “gce-vm”
location String Región de GCP (p. ej., “us-east1”) desde la que se entrega la respuesta
project_id String ID del proyecto de GCP de la red desde la que se recibió la respuesta
target_type String Tipo de destino que resuelve la consulta de DNS: “zona privada”, “zona de reenvío”, “política de reenvío”, “zona de intercambio de tráfico”, “interna”, “externa”
target_name String El nombre del destino; p. ej., nombre de la zona, nombre de la política, nombre de la zona interna, nombre de dominio externo
queryName String/DNS Nombre de la consulta de DNS, RFC 1035 4.1.2 No
queryType String/DNS Tipo de consulta de DNS, RFC 1035 4.1.2 No
responseCode Número/DNS Código de respuesta, RFC 1035 4.1.1 No
rdata String/DNS Respuesta de DNS en formato de presentación, RFC 1035 5.1, truncados a 260 bytes No
authAnswer Booleano/DNS Respuesta autorizada, RFC 1035 No
sourceNetwork String/Origen Red desde la que la consulta llegó al sistema No
vmInstanceId Número/Origen ID de la instancia de VM de Compute Engine, aplicable solo a las consultas iniciadas por las VM de Compute Engine No
vmInstanceName String/Origen Nombre de la instancia de VM de Compute Engine, aplicable solo a las consultas iniciadas por las VM de Compute Engine No
vmProjectId String/Origen ID del proyecto de GCP de la red desde la que se envió la consulta, aplicable solo a las consultas iniciadas por las VM de Compute Engine. No
vmZoneName String/Origen Nombre de la zona de la VM desde la que se envió la consulta, solo aplicable para las consultas iniciadas por las VM de Compute Engine. No
sourceIP String/Origen IP que originó la consulta No
destinationIP String/Destino IP de destino, aplicable solo a casos de reenvío. No
protocol String/DNS “TCP” | “UDP” No
egressError String Error del proxy de salida, el error real informado por el proxy de salida como se recibió desde el servidor DNS local. Este campo se puede usar para diferenciar un SERVFAIL real que muestre el DNS local de un error de red que haya experimentadoo el proxy de salida. No

Reenvío de salida

Si recibes registros que contienen SERVFAIL a los que les faltan ciertos campos, como destinationIP, egressIP y egressError, consulta la sección relacionada en la documentación de Soluciona problemas.

Métricas de supervisión

En Cloud DNS, se exportan métricas de supervisión a Cloud Monitoring.

Puedes supervisar la frecuencia de las consultas y respuestas de DNS que tienen como destino zonas privadas, zonas de reenvío, políticas de reenvío, zonas de GCP privadas y, también, Internet. La supervisión está disponible en Cloud Monitoring y en la API de Monitoring.

Tipos de recursos y métricas

El DNS privado exporta la métrica delta dns.googleapis.com/query/response_count que contiene la etiqueta response_code para contar la cantidad de consultas por código de respuesta.

La etiqueta response_code es de tipo string, con los siguientes valores posibles: NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP y UNKNOWN. Consulta los RCODE de DNS de la IANA para ver las definiciones de estos códigos.

La métrica se exporta como un recurso de tipo dns_query y utiliza los campos aplicables del formato de registro.

Supervisión de la propagación de DNS

Cuando realizas cambios mediante la herramienta de línea de comandos o la API de REST, inicialmente se marcan como pendientes hasta que se complete la operación. Puedes verificar el estado de los cambios o también obtener un historial de cambios mediante la herramienta de línea de comandos de gcloud o la API de REST.

Una operación se completa (estado: done) cuando Cloud DNS ha actualizado correctamente el sistema que controla los servidores. Es posible que haya retrasos antes de que se actualicen todos los servidores de nombres.

Enumera cambios para una zona administrada

En la línea de comandos

gcloud dns record-sets changes list --zone="myzonename"

Python

def list_changes(project_id, zone_name):
    client = dns.Client(project=project_id)
    zone = client.zone(zone_name)

    changes = zone.list_changes()

    return [(change.started, change.status) for change in changes]

Verifica la propagación de DNS

Puedes usar los comandos watch y dig para supervisar y verificar si el servidor de nombres de DNS captó los cambios. En el siguiente ejemplo, se muestra cómo buscar en tu servidor de nombres y verificar cuando uno de los servidores de nombres de tu zona administrada capta un cambio en un registro MX.

Busca los servidores de nombres de tu zona con el siguiente comando:

gcloud dns managed-zones describe zone-name

Reemplaza la siguiente opción de comando:

  • zone-name: Es el nombre de tu zona de Cloud DNS

Verifica si los registros aún están disponibles en tu servidor de nombres autorizado. Reemplaza your-zone-nameserver por alguno de los servidores de nombres de la zona administrada:

watch dig example.com in MX @your-zone-nameserver

El comando watch ejecuta dig cada 2 segundos de forma predeterminada. Puedes usar este comando para determinar cuándo se recopilará tu cambio mediante el servidor de nombres autorizado, lo que debería suceder dentro de un plazo de 120 segundos. Una vez que se haya recibido el cambio en tu servidor de nombres autorizado, se puede comenzar a recopilar el nuevo registro en los agentes de resolución de DNS. En los agentes en los que ya se dispone del registro anterior almacenado en caché, se espera a que caduque el valor de TTL anterior del registro.

Puedes quitar @<address> del comando dig para ejecutar dig en el servidor de nombres de tu sistema, o bien puedes cambiar la dirección a otros servidores de nombres si deseas supervisar la propagación a servidores de nombres diferentes.

Próximos pasos