Descripción general de DNS

En esta página, se proporciona una descripción general del sistema de nombres de dominio (DNS).

Para obtener un resumen de Cloud DNS, consulta la descripción general de Cloud DNS. Para conocer los términos clave relacionados con Cloud DNS, consulta Términos clave.

DNS es una base de datos distribuida y jerárquica que almacena direcciones IP y otros datos, y permite buscarlos por nombre.

En otras palabras, DNS es un directorio de nombres de dominio fáciles de leer que se traducen en direcciones IP numéricas que usan las computadoras para comunicarse entre sí. Por ejemplo, cuando escribes una URL en un navegador, DNS convierte la URL en una dirección IP de un servidor web asociado con ese nombre. Los directorios de DNS se almacenan y distribuyen en todo el mundo, en servidores de nombres de dominio que se actualizan periódicamente.

Los siguientes conceptos son útiles cuando se trabaja con DNS.

Tipos de servidor DNS

Un servidor DNS almacena una base de datos de nombres de dominio y procesa los nombres de dominio en función de consultas de DNS que provienen de un cliente en una red.

Servidor autorizado

Un servidor autorizado es un servidor que contiene los registros de nombres de DNS, incluidos A, AAAA y CNAME.

Un servidor no autorizado construye un archivo de caché en basado en consultas anteriores de dominios. No contiene registros de nombres originales.

Agente de resolución recurrente

Un agente de resolución recurrente es el servidor que envía una consulta al servidor autorizado o no autorizado para su resolución. Un agente de resolución recurrente se denomina de esa forma porque realiza cada consulta para un nombre determinado y muestra el resultado final.

Esto se diferencia de un agente de resolución iterativo, que solo muestra una referencia a los próximos servidores DNS que podrían tener la respuesta.

Por ejemplo, cuando se resuelve el nombre google.com., el agente de resolución recurrente debe determinar quién está autorizado para . (la zona raíz de DNS). Luego, les pregunta a esos servidores de nombres quién tiene autoridad para .com.. Por último, se les solicita a esos servidores de nombres que están autorizados para google.com. y que a su cliente se muestran los rdata del A.

A continuación, se muestra un ejemplo de un agente de resolución recurrente en acción. Si ejecutas dig +trace google.com, el agente de resolución recurrente realiza la siguiente acción (8.8.8.8/DNS público de Google es uno de esos agentes de resolución):

 dig +trace google.com
; <<>> DiG 9.11.5-P4-5.1-Debian <<>> +trace google.com
;; global options: +cmd
.           168383  IN  NS  a.root-servers.net.
.           168383  IN  NS  b.root-servers.net.
.           168383  IN  NS  c.root-servers.net.
.           168383  IN  NS  d.root-servers.net.
.           168383  IN  NS  e.root-servers.net.
.           168383  IN  NS  f.root-servers.net.
.           168383  IN  NS  g.root-servers.net.
.           168383  IN  NS  h.root-servers.net.
.           168383  IN  NS  i.root-servers.net.
.           168383  IN  NS  j.root-servers.net.
.           168383  IN  NS  k.root-servers.net.
.           168383  IN  NS  l.root-servers.net.
.           168383  IN  NS  m.root-servers.net.
.           168383  IN  RRSIG   NS 8 0 518400 20190810170000 20190728160000 59944 .
    ITqCp5bSKwoG1P76GpNfDanh4fXxOtHuld5SJzEm9ez0U/K7kpmBm4TE
    cw82zuqtZlqiGOuq+90KHJEhD1fdX3FujgDqe3kaY/41LgFIo76RBeMP
    CorYg29lKQOBf7pLPiJWewFmnLsRXsvENzxNXl9mynX80EQSS2YlCWpr
    47i2j5SFpGDzmxls7LinB4VvwVLhy0FPwBaVc5NVqQoFS5ZkfKXCUz8x
    urExPT2OtPJeDiGzrQGmT6vDbYZtJRWWGK5tPIKZQyF/08YSJlrjebNa
    1nKZVN8SsO8s7elz6JGmdoM6D/1ByLNFQmKvU55ikaVSnXylqixLbJQI 7LyQoA==
;; Received 525 bytes from 127.0.0.1#53(127.0.0.1) in 22 ms

com.            172800  IN  NS  a.gtld-servers.net.
com.            172800  IN  NS  b.gtld-servers.net.
com.            172800  IN  NS  c.gtld-servers.net.
com.            172800  IN  NS  d.gtld-servers.net.
com.            172800  IN  NS  e.gtld-servers.net.
com.            172800  IN  NS  f.gtld-servers.net.
com.            172800  IN  NS  g.gtld-servers.net.
com.            172800  IN  NS  h.gtld-servers.net.
com.            172800  IN  NS  i.gtld-servers.net.
com.            172800  IN  NS  j.gtld-servers.net.
com.            172800  IN  NS  k.gtld-servers.net.
com.            172800  IN  NS  l.gtld-servers.net.
com.            172800  IN  NS  m.gtld-servers.net.
com.            86400   IN  DS  30909 8 2
    E2D3C916F6DEEAC73294E8268FB5885044A833FC5459588F4A9184CF C41A5766
com.            86400   IN  RRSIG   DS 8 1 86400 20190811170000 20190729160000 59944 .
    KXPRdZspxd6hZYRFx3cj7Yp3d6HDzOG5CmoK46ZrrlKnZkCYMPKzyFQ2
    15pA+jZ37MbQbhe6+S+C4AHWqv95DDsue85ha3ZmWGhnJxcLnDaL5Twp
    Z/W/a+1cTHhhbMZua1riw74mqvzRAF1kVerj7jrvWnOAOZCh69Dr4AFJ
    gRN4MAn+wCZDmPQCtkcGVJ9vyNV7Xra45B4ISqEo0xi8CXewp9cc+aW5
    TSjFRhj1RM9d3k+3Mrq6AAV8dVgWofYTg6Ihph/SfoIx4TrTrEbgfdsv
    MvuLPXvK6Y7oSh5WknbFduw7HQdo1jH3/QR54FORswBJT8VmYD7Zii88 tAjbRQ==
;; Received 1170 bytes from 192.58.128.30#53(j.root-servers.net) in 2 ms

google.com.     172800  IN  NS  ns2.google.com.
google.com.     172800  IN  NS  ns1.google.com.
google.com.     172800  IN  NS  ns3.google.com.
google.com.     172800  IN  NS  ns4.google.com.
    CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN NSEC3 1 1 0 -
    CK0Q1GIN43N1ARRC9OSM6QPQR81H5M9A NS SOA RRSIG DNSKEY NSEC3PARAM
    CK0POJMG874LJREF7EFN8430QVIT8BSM.com. 86400 IN RRSIG NSEC3 8 2
    86400 20190803044434 20190727033434 17708 com.
    rMmiNL7bYvJpB3Bc+WnqS2iiczm2PwxBvJcl7SL/vcTj88GsxM1ycTSV
    PsHZHxfrv1dv2C5BCSZ+mzeVBu8upLoeraQy+UVf3VXyt3i3rNGzcXYV
    8HSrHcXrRoAJopFim3Ge1xdZ+uERg3cTIcN2tJxxkCeqt/EcUTqtQl8t EAc=
    S84BDVKNH5AGDSI7F5J0O3NPRHU0G7JQ.com. 86400 IN NSEC3 1 1 0 -
    S84CFH3A62N0FJPC5D9IJ2VJR71OGLV5 NS DS RRSIG
    S84BDVKNH5AGDSI7F5J0O3NPRHU0G7JQ.com. 86400 IN RRSIG NSEC3
    8 2 86400 20190804045723 20190728034723 17708 com.
    jypPsaWVop9rzuf70CFYyiK0hliiJ+YYtkjgb3HVj9ICc57kLmv9DkvG
    DddF5GBQpqNEakzyJtya179MAdDT7RhJB4XfmY6fu5I5QTeIjchfP5wt
    7gU1AL7cqTmBAo2RWu62vtUytV09+O3KGFq5O+Cwr11dSTfq1yYyw6YW cMI=
;; Received 772 bytes from 192.41.162.30#53(l.gtld-servers.net) in 2 ms

google.com.     300 IN  A   172.217.7.14
;; Received 55 bytes from 216.239.32.10#53(ns1.google.com) in 13 ms

Cada cliente de DNS consulta un servidor de nombres. Un agente de resolución recurrente consulta otros servidores de nombres hasta llegar a un servidor de nombres de nivel superior si es necesario. El registro NS de una zona en un servidor de nivel superior dirige al agente de resolución "hacia abajo" a otro servidor de nombres, y finalmente llega a un servidor de nombres que almacenó en caché la zona o el servidor autorizado para la zona.

Zonas

Zona pública

Una zona pública es visible para Internet. Puedes crear registros DNS en una zona pública para publicar tu servicio en Internet. Por ejemplo, puedes crear un registro A en una zona pública llamada example.com. (ten en cuenta el punto final) para tu sitio web público www.example.com..

Zona privada

Una zona privada es cualquier zona que no se puede consultar a través de la Internet pública.

Subzona delegada

El DNS permite al propietario de una zona usar registros NS para delegar un subdominio a un servidor de nombres diferente. Los agentes de resolución siguen estos registros y envían consultas para el subdominio al servidor de nombres de destino especificado en la delegación.

Por ejemplo, puedes crear zonas separadas para example.com y subdomain.example.com, cada una con su propio servidor de nombres autorizado. Debido a que subdomain.example.com es un dominio secundario de example.com, el método a fin de habilitar el servidor de nombres autorizado para que el subdominio se ubique desde la zona del dominio superior se llama delegación. La delegación es básicamente un puntero al servidor de nombres autorizado de un subdominio. A fin de habilitar la delegación en Cloud DNS, puedes agregar registros NS para los subdominios en la zona del dominio superior.

DNS de horizonte dividido

El horizonte dividido es un término que se usa para describir una instancia cuando dos zonas, una para que la utilice la red interna y la otra para que la utilice la red externa (generalmente, Internet), se crean para el mismo dominio. El DNS de horizonte dividido te permite brindar respuestas diferentes (conjuntos de registros de recursos diferentes) para el mismo nombre, según quién pregunte.

Por ejemplo, puedes proporcionar la versión de desarrollo/etapa de pruebas de tu aplicación si la consulta proviene de la red de desarrollo, y la versión pública/de producción de tu app si la consulta proviene de la Internet pública.

Registros

Un registro es una asignación entre un recurso DNS y un nombre de dominio. Cada registro DNS individual tiene un tipo (nombre y número), una fecha de vencimiento (tiempo de actividad) y datos específicos del tipo.

Algunos de los tipos de registros más utilizados son los siguientes:

  • A: registro de direcciones, que mapea nombres de host a su dirección IPv4.
  • AAAA: registro de dirección IPv6, que mapea nombres de host a su dirección IPv6.
  • CNAME: registro de nombre canónico, que especifica los nombres de alias.
  • MX: registro de intercambio de correo electrónico, que se utiliza para el enrutamiento de solicitudes a los servidores de correo electrónico.
  • NS: registro de servidor de nombres, que delega una zona de DNS a un servidor autorizado.
  • PTR: registro de puntero, que define un nombre asociado con una dirección IP.
  • SOA: inicio de la autoridad, que se utiliza para designar al servidor de nombres principal y al administrador responsable de una zona. Cada zona alojada en un servidor DNS debe tener un registro SOA (inicio de autoridad). Puedes modificar el registro según sea necesario (por ejemplo, puedes cambiar el número de serie a un número arbitrario para admitir el control de versiones basado en fechas).

Conjuntos de registros

Los registros con el mismo nombre y el mismo tipo, pero con valores de datos diferentes, se denominan conjuntos de registros. Cuando creas un registro, si existe un conjunto con el mismo nombre y tipo, el registro se agrega a este conjunto coincidente. Si el registro no coincide con ningún conjunto, se crea un conjunto nuevo y se anexa a la lista de conjuntos de registros.

Este es un ejemplo de un conjunto de registros que tiene más de un registro con el mismo nombre y tipo:

Nombre de DNS Tipo TTL (segundos) Datos
db-01.dev.gcp.example.com A 50 10.128.1.35
db-01.dev.gcp.example.com A 50 10.128.1.10

Para obtener una lista de los tipos de registros compatibles en Cloud DNS, consulta los tipos de registros DNS compatibles.

Delegación de subdominios

Cuando crees registros, asegúrate de que los registros NS y SOA coincidan entre sí. Si los registros NS y SOA no coinciden, pueden provocar que algunos agentes de resolución rechacen la delegación como no válida y se nieguen a almacenar en caché las respuestas NO DATA a las consultas. Esto puede generar un gran número inesperado de consultas en las zonas administradas públicas por parte de agentes de resolución recurrentes externos cuando los agentes consultan a tus zonas administradas públicas para buscar registros que no existen.

Por ejemplo, supongamos que hay dos subdominios, example.com y subdomain.example.com en Cloud DNS. Los registros NS y SOA para subdomain.example.com no coinciden. Ninguna de las zonas contiene ningún registro AAAA. Cuando algunos agentes de resolución recurrentes externos consultan subdomain.example.com para ver un registro AAAA y reciben una respuesta NO DATA, si los agentes detectan la delegación no válida de subdomain.example.com, se niegan a almacenar en caché la inexistencia de registros AAAA en esa zona. El resultado es un reintento de las consultas. A su vez, consultan todos los servidores de nombres de Cloud DNS para obtener esta información.

Registrador

Un registrador de nombres de dominio es una organización que administra la reserva de nombres de dominio de Internet para las zonas públicas. Un registrador debe estar acreditado por un registro de dominio de nivel superior genérico (gTLD) o un registro de dominio de nivel superior de código de país (ccTLD). Así es como los servidores de nombres de nivel superior acuerdan los registros SOA y actualizan los registros NS de la zona para dirigir solicitudes al almacenamiento en caché o servidores de nombres autorizados.

Número de serie de SOA

El número de serie de SOA es un número de versión para una zona de DNS. Para que todos los servidores de nombres cuenten con la versión más actualizada de una zona, deben tener el mismo número de serie de SOA. Los números de serie de los registros SOA creados en las zonas administradas de DNS monótonamente aumentan con cada cambio de transacción a los conjuntos de registros de una zona.

Sin embargo, puedes cambiar el número de serie de un registro SOA a un número arbitrario; debes incluir una fecha con formato ISO 8601, como se recomienda en RFC 1912.

DNSSEC

La extensión de seguridad del sistema de nombres de dominio (DNSSEC) corrige las vulnerabilidades de los datos de DNS. DNSSEC es un conjunto de especificaciones IETF que proporciona autenticación de datos de DNS, denegación de existencia autenticada e integridad de los datos a clientes de DNS (agentes de resolución). En resumen, DNSSEC proporciona una forma de que el software verifique el origen de los datos de DNS y valide que no se modificaron durante el envío.

Para obtener más detalles sobre DNSSEC, consulta RFC 4033.

Para obtener una lista de términos generales de DNS, consulta RFC 7719.

¿Qué sigue?