Usar almacenamiento de registros y monitorización

En esta página se proporciona información sobre las métricas de registro y monitorización de Cloud DNS, incluidas las zonas públicas, las zonas privadas, y las zonas de reenvío .También se incluyen instrucciones para monitorizar la propagación de los cambios de DNS públicos.

Usar el registro de Cloud DNS

El registro de Cloud DNS monitoriza las consultas que los servidores de nombres resuelven para tus redes de nube privada virtual (VPC), así como las consultas de una entidad externa directamente a una zona pública.

Las consultas registradas pueden proceder de instancias de máquinas virtuales de Compute Engine, contenedores de Google Kubernetes Engine en la misma red VPC, zonas de peering o clientes locales que usen el reenvío de DNS entrante. Las zonas DNS privadas, las zonas DNS de reenvío, los servidores de nombres alternativos, las zonas DNS internas o las zonas DNS externas pueden resolver las consultas.Google Cloud

Los registros de logs pertenecen al proyecto propietario de la red o de la zona pública que ha enviado la solicitud. En el caso de la VPC compartida, los registros pertenecen al proyecto host porque este es el propietario de la red.

Habilitar e inhabilitar el registro de zonas gestionadas privadas

Usa políticas de DNS para habilitar o inhabilitar el registro de tus redes. Si habilitas el registro de consultas, se registrará cada consulta de DNS a una zona gestionada privada de Cloud DNS.

Para habilitar el registro de una red que no tenga una política de DNS, ejecuta el comando dns policies create.

gcloud

gcloud dns policies create POLICY_NAME \
    --networks=NETWORK \
    --enable-logging \
    --description=DESCRIPTION

Haz los cambios siguientes:

  • POLICY_NAME: el nombre de la política de DNS
  • NETWORK: una o varias redes en una lista separada por comas
  • DESCRIPTION: una descripción de la política

Para habilitar el registro de una red que ya tiene una política de DNS, ejecuta el comando dns policies update.

gcloud

gcloud dns policies update POLICY_NAME \
    --networks=NETWORK \
    --enable-logging

Haz los cambios siguientes:

  • POLICY_NAME: el nombre de la política de DNS
  • NETWORK: una o varias redes en una lista separada por comas

Para desactivar el registro sin cambiar la política, ejecuta el comando dns policies update.

gcloud

gcloud dns policies update POLICY_NAME \
    --networks=NETWORK \
    --no-enable-logging

Haz los cambios siguientes:

  • POLICY_NAME: el nombre de la política de DNS
  • NETWORK: una o varias redes en una lista separada por comas

Para eliminar la política por completo, ejecuta el comando dns policies delete.

gcloud

gcloud dns policies delete POLICY_NAME \

Sustituye POLICY_NAME por el nombre de la política de DNS que quieras eliminar.

Habilitar e inhabilitar el registro de zonas públicas gestionadas

Para activar el registro de una zona pública gestionada, ejecuta el comando dns managed-zones update.

gcloud

gcloud dns managed-zones update ZONE_NAME --log-dns-queries \

Sustituye ZONE_NAME por el nombre de la zona gestionada de DNS para la que quieras habilitar el registro.

Para desactivar el registro de una zona pública gestionada, ejecuta el comando dns managed-zones update.

gcloud

gcloud dns managed-zones update ZONE_NAME --no-log-dns-queries \

Sustituye ZONE_NAME por el nombre de la zona gestionada de DNS para la que quieras inhabilitar el registro.

Ver registros

Puedes ver los registros en la Google Cloud consola.

Consola

En la Google Cloud consola, ve a la página Explorador de registros.

Ir a Explorador de registros

Ver los campos de formato de registro

Cada entrada de registro tiene los siguientes campos, si procede. Algunos de los campos también se comparten con las métricas de monitorización.

Campo Tipo de campo Descripción Se usa en las métricas
alias_query_response_code (Vista previa) Cadena El código de respuesta devuelto por la consulta para resolver el nombre canónico del registro ALIAS
authAnswer Booleano/DNS Respuesta autorizada, RFC 1035 No
destinationIP Cadena/Objetivo Dirección IP de destino, solo aplicable a los casos de reenvío No
egressError Cadena

Error de proxy de salida. El error real notificado por el proxy de salida se ha recibido del servidor DNS local.

Este campo se puede usar para diferenciar un SERVFAIL real devuelto por el DNS local de un error de red detectado por el proxy de salida.

No
healthyIps Cadena

Conjunto de direcciones IP del ResourceRecordSet que se sabe que son HEALTHY para Cloud DNS en el momento de la consulta.

No
location Cadena Google Cloud , por ejemplo, us-east1, desde la que se ha servido la respuesta
project_id Cadena Google Cloud ID de proyecto de la red desde la que se ha recibido la consulta.
protocol Cadena o DNS TCP, UDP No
queryName Cadena o DNS Nombre de consulta de DNS, RFC 1035 4.1.2 No
queryType Cadena o DNS Tipo de consulta de DNS, RFC 1035 4.1.2 No
responseCode Número o DNS Código de respuesta, RFC 1035 4.1.1 No
rdata Cadena o DNS Respuesta de DNS en formato de presentación, RFC 1035 5.1, truncada a 260 bytes No
sourceIP Cadena/fuente IP de origen de la consulta No
sourceNetwork Cadena/fuente Red desde la que la consulta ha llegado a nuestro sistema. No
source_type Cadena Fuente de la consulta: inbound-forwarding, gce-vm, internet, peering-zone, fqdn-forwarding-target No
target_name Cadena El nombre de destino, por ejemplo, el nombre de la zona, el nombre de la política, el nombre de la zona interna o el nombre de dominio externo.
target_type Cadena Tipo de destino que resuelve la consulta de DNS: private-zone, forwarding-zone, forwarding-policy, peering-zone, internal, external
unHealthyIps Cadena

Conjunto de direcciones IP del ResourceRecordSet que Cloud DNS conoce como UNHEALTHY en el momento de la consulta.

No
vmInstanceId Número/Fuente ID de la instancia de VM de Compute Engine. Solo se aplica a las consultas iniciadas por VMs de Compute Engine. No
vmInstanceName Cadena/fuente Nombre de la instancia de VM de Compute Engine. Solo se aplica a las consultas iniciadas por VMs de Compute Engine. No
vmProjectId Cadena/fuente Google Cloud ID de proyecto de la red desde la que se envió la consulta. Solo se aplica a las consultas iniciadas por máquinas virtuales de Compute Engine. No
vmZoneName Cadena/fuente Nombre de la zona de la VM desde la que se envió la consulta. Solo se aplica a las consultas iniciadas por VMs de Compute Engine. No

Precios

Todos los registros de Cloud DNS se escriben en Cloud Logging. Cloud DNS no aplica ningún cargo independiente por este servicio. Sin embargo, estos registros pueden generar costes de almacenamiento adicionales en función del tamaño de los registros que se escriban y almacenen.

A efectos de cálculo, Cloud DNS escribe aproximadamente 5 MB de datos de registro para procesar 10.000 consultas de DNS.

Para obtener información sobre los precios de Cloud Logging, consulta la página Precios de Google Cloud Observability: Cloud Logging.

Solucionar problemas con el reenvío de consultas salientes

Si recibes registros que contienen SERVFAIL y en los que faltan determinados campos, como destinationIP, egressIP y egressError, consulta la sección relacionada de la documentación sobre solución de problemas.

Monitorizar métricas

Cloud DNS exporta métricas de monitorización a Cloud Monitoring.

Puedes monitorizar la tasa de consultas y respuestas de DNS que apuntan a zonas privadas, zonas de reenvío, reenvío de políticas, zonas internas Google Cloud y a Internet. Monitoring está disponible en la Google Cloud consola página Monitoring y en la API Cloud Monitoring.

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

La etiqueta response_code es de tipo string y puede tener los valores NOERROR, FORMERR, SERVFAIL, NXDOMAIN, NOTIMP y UNKNOWN. Para ver las definiciones de estos códigos, consulta los códigos de respuesta de DNS de IANA.

La métrica se exporta con el tipo de recurso dns_query mediante los campos correspondientes del formato de registro.

Métricas de detección de amenazas de DNS

Cuando tienes un detector de amenazas de DNS monitorizando tu red de VPC, el detector exporta métricas que se pueden examinar con Cloud Monitoring.

Hay dos tipos de métricas disponibles:

  • networksecurity.googleapis.com/protectivedns/sent_dns_log_count: registros de consultas de DNS que se envían a tu proveedor para que los inspeccione.
  • networksecurity.googleapis.com/protectivedns/received_dns_log_count: número de registros de amenazas detectados. Esta métrica incluye la gravedad y el tipo de amenaza.

Monitorizar la propagación de DNS

Cuando usas la CLI de Google Cloud o la API REST para hacer cambios, estos se marcan inicialmente como pendientes hasta que se completa la operación. Puedes usar la CLI de gcloud o la API REST para comprobar el estado de los cambios o consultar el historial de cambios.

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

Lista de cambios de una zona gestionada

Para enumerar los cambios de una zona gestionada, ejecuta el comando dns record-sets changes list.

gcloud

gcloud dns record-sets changes list --zone=ZONE

Sustituye ZONE por el nombre de la zona gestionada cuyos conjuntos de registros quieras gestionar.

Verificar la propagación de DNS

Para monitorizar y verificar que el servidor de nombres DNS ha recogido los cambios, puedes usar los comandos watch y dig. En el siguiente ejemplo se muestra cómo buscar tu servidor de nombres y comprobar cuándo ha recogido un cambio en un registro MX uno de los servidores de nombres de tu zona gestionada.

Para buscar los servidores de nombres de tu zona, ejecuta el comando dns managed-zones describe:

gcloud

gcloud dns managed-zones describe ZONE_NAME

Sustituye ZONE_NAME por el nombre de tu zona de Cloud DNS.

Para comprobar si los registros ya están disponibles en tu servidor de nombres autoritativo, ejecuta el siguiente comando dig:

gcloud

watch dig example.com in MX @ZONE_NAME_SERVER

Sustituye ZONE_NAME_SERVER por uno de los servidores de nombres de la zona gestionada.

El comando watch ejecuta el comando dig cada 2 segundos de forma predeterminada. Puedes usar este comando para determinar cuándo recoge tu servidor de nombres autoritativo el cambio, lo que debería ocurrir en un plazo de 120 segundos. Una vez que el servidor de nombres autoritativo haya aplicado el cambio, los solucionadores de DNS podrán empezar a recoger el nuevo registro. Los resolvedores que ya tienen en caché el registro anterior esperan a que caduque el valor TTL anterior del registro.

Para ejecutar dig en el servidor de nombres de tu sistema, puedes quitar @<address> del comando dig. Si quieres monitorizar la propagación a otros servidores de nombres, puedes cambiar el address para que apunte a otros servidores de nombres.

Siguientes pasos