Descripción general de DNS

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

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

Conceptos generales de DNS

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, como A, AAAA, CNAME, etc. Un servidor no autorizado construye un archivo en caché 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", en primer lugar, el agente de resolución recurrente debe determinar quién tiene la autoridad para "." (la zona raíz del DNS). Luego, les pregunta a esos servidores de nombres quién tiene autoridad para ".com". Por último, les pregunta a esos servidores de nombres quién tiene autoridad para "google.com." y muestra el rdata para el registro A al cliente.

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. 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 delegar un subdominio a un servidor de nombres diferente mediante registros NS. 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.
DNS de horizonte dividido
Horizonte dividido es un término que se usa para describir un caso en que se crean dos zonas para el mismo dominio, una para que la utilice la red interna y la otra para la red externa (generalmente, Internet). 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 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 dirección, que asigna nombres de host a su dirección IPv4
  • AAAA: registro de dirección IPv6, que asigna 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 indicador, 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 del 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 HAY DATOS" 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.

Ejemplo: Supongamos que hay dos subdominios, example.com y subdomain.example.com. 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 HAY DATOS", 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. Como resultado, vuelven a intentar las consultas. A su vez, consultan todos los servidores de nombres de Cloud Console 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, eres libre de cambiar manualmente 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. Es un paquete de especificaciones IETF que proporciona autenticación de datos de DNS, denegación de existencia autenticada y también 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 general de términos de DNS, consulta RFC 7719.