DNS records: ¿Cómo funcionan los registros DNS?
El sistema de nombres de dominio (DNS) hace posible que un usuario pueda acceder a la web que desee con tan solo teclear el nombre de un dominio en el navegador. Las unidades de red se comunican en realidad mediante direcciones IP que, sin embargo, son largas y complicadas. Por eso, al usuario le basta con teclear el nombre de la web, que es traducido automáticamente al formato de secuencia numérica. ¿Pero cómo se produce esta traducción?
¿Qué son los registros DNS?
Al introducir una dirección de Internet en el navegador, el sistema primero tiene que encontrar la dirección IP que corresponda con el dominio. A veces, la dirección se encuentra ya en la memoria del propio ordenador, a menudo en las bases de datos del proveedor de Internet o en otros servidores DNS. En caso de duda, incluso, se puede encontrar a través de uno de los grandes root servers o servidores raíz que controlan, como instancia de autoridad, todo el sistema de nombres de dominio. Para realizar una resolución de nombres hay que buscar registros DNS (DNS records o resource records) en las bases de datos del servidor DNS o servidor de nombres, donde cada dirección IP (que el servidor reconozca) tiene asignado un nombre de dominio.
El sistema de nombres de dominio o DNS tiene una estructura jerárquica y descentralizada. En cada nivel hay servidores que se encargan de su llamado espacio de nombres. Esto significa que, para buscar la dirección IP de www.ejemplo.com, el servidor raíz solo puede ayudar revelando qué servidor es el responsable del dominio de nivel superior (top level domain o TLD). Así se va analizando cada uno de los niveles para llevar a cabo la resolución de nombres. Eso significa que la dirección IP de la web o servidor de correo electrónico en cuestión se encuentra, al fin y al cabo, en el host final. De ahí la importancia, para todo administrador de páginas webs, de entender el concepto de los registros de recursos.
El sistema de nombres de dominio o DNS tiene una estructura jerárquica y descentralizada. En cada nivel hay servidores que se encargan de su llamado espacio de nombres. Esto significa que, para buscar la dirección IP de www.ejemplo.com, el servidor raíz solo puede ayudar revelando qué servidor es el responsable del dominio de nivel superior (top level domain o TLD). Así se va analizando cada uno de los niveles para llevar a cabo la resolución de nombres. Eso significa que la dirección IP de la web o servidor de correo electrónico en cuestión se encuentra, al fin y al cabo, en el host final. De ahí la importancia, para todo administrador de páginas webs, de entender el concepto de los registros de recursos.
¿Cómo funcionan los registros DNS?
Los registros DNS se encuentran sobre todo en archivos de zona. Una zona, en el contexto del DNS, es un ámbito de organización. Un dominio puede constar de una sola zona, pero los dominios extensos suelen estar divididos en varias. Cada servidor DNS es el responsable de una zona. Si un cliente desea visitar un dominio concreto, el servidor DNS buscará los registros correspondientes entre los archivos de zona y reenviará la solicitud a otro servidor de un nivel más profundo, repitiendo el proceso hasta llegar al dominio deseado.
Sintaxis de los registros DNS
Los registros de recursos siguen un sistema sencillo, codificado en ASCII. Hay una línea para cada registro DNS. Los registros suelen tener la siguiente forma:
<name> <ttl> <class> <type> <rdlength> <radata>
Cada una de las informaciones se separa de las demás mediante un espacio, pero algunos datos son opcionales, es decir, algunos tipos de registro tienen campos adicionales. ¿Qué indican las etiquetas de registro más importantes?
- <name>: el nombre del dominio es lo que el usuario suele teclear en el navegador, por ejemplo.
- <ttl>: TTL son las iniciales de time to live e indican el tiempo (en segundos) durante el que el registro estará guardado en la memoria caché. Una vez transcurrido este tiempo, ya no se puede garantizar que el registro de recurso siga siendo actual. Es un dato opcional.
- <class>: aunque en teoría existen muchos tipos de registros DNS, en la práctica todos se refieren a Internet (identificado como IN), por lo que este dato también es opcional.
- <type>: en un archivo de zona suele haber varios tipos de registros DNS (más sobre este tema a continuación).
- <rdlength>: este campo también es opcional y se usa para indicar la extensión de la etiqueta siguiente.
- <rdata>: los datos sobre recursos (resource data) son las informaciones a partir de las cuales se quiere descifrar el nombre del dominio como, por ejemplo, la dirección IP.
www.ejemplo.com. 12879 IN A 93.184.216.34
El registro puede ser guardado por un cliente durante 12 879 segundos (unas 3 horas y media) en la memoria caché antes de que el servidor DNS tenga que solicitar la información de nuevo. En este caso se trata de un registro DNS en Internet (IN) y de tipo A (A). El dominio es identificado a partir de una dirección IP.
También existe otro tipo de notación:
También existe otro tipo de notación:
$TTL 12879
$ORIGIN ejemplo.com.
www A 93.184.216.34
Esta notación, por su parte, indica que el ordenador con el nombre www es parte del dominio ejemplo.com. De la misma manera, se pueden ubicar otros ordenadores como mail o ftp en un dominio de origen.
El nombre de un dominio acaba (o más bien empieza, ya que se lee de derecha a izquierda) con un punto. En los registros DNS se usan FQDN (nombres de dominio completamente calificados), en los cuales también aparece la etiqueta raíz (root label), que está vacía. Suele aparecer tras el punto.
Los tipos de registros DNS más importantes
Según su tipo, un registro guarda una clase de información u otra. Además de la resolución o traducción de nombres de dominio, los registros DNS tienen muchas otras funciones.
Registros A
La mayor parte de resoluciones de nombres de dominio en Internet se producen mediante registros tipo A, que contienen una dirección IPv4 en su campo de datos. Gracias a ellos, los usuarios de Internet pueden introducir un nombre de dominio en el navegador y hacer que el cliente envíe automáticamente una solicitud HTTP a la dirección IP correspondiente. Puesto que el tamaño de las direcciones IP siempre es de 4 bytes, el valor de rdlength también es siempre 4, si es que aparece.
Registros AAAA
Los registros AAAA, también llamados quad-A, funcionan igual que los registros A salvo que, en lugar de usar una dirección IPv4, usan una dirección Ipv6. Puesto que las IPv6 necesitan 128 bits (16 bytes), en este caso el valor de rdlength también es fijo. La denominación AAAA surge de la longitud del campo de datos, que es cuatro veces más larga que la de un registro A.
Registros SOA
SOA son las iniciales de Start of Authority. Los registros de este tipo contienen información sobre la zona que se organiza a través del archivo de zona (del servidor DNS) y, por ello, son especialmente importantes para la transferencia de zonas. En estas transferencias se copian archivos de zona en otros servidores para evitar fallos. La transferencia de zonas controla la propagación regular del archivo original. En estos registros DNS se encuentra, junto a la dirección de correo electrónico del administrador correspondiente, un número de serie que aumenta cada vez que se actualiza el archivo.
Registros CNAME
Un registro CNAME (canonical name record) contiene un alias, es decir, un nombre alternativo para un dominio, y remite a otro registro A o AAAA ya existente. El campo rdata en este tipo de registros lo ocupa, por lo tanto, un nombre de dominio previamente enlazado con una dirección IP. Así se pueden remitir varias direcciones diferentes al mismo servidor.
Registros MX
El nombre del registro MX es una abreviación de mail exchange, intercambio que se produce mediante un servidor SMTP de correo electrónico. Aquí se definen uno o varios servidores de correo electrónico que pertenezcan al dominio en cuestión. Si se usan varios servidores de correo, por ejemplo, para compensar fallos, se establecen niveles de prioridad. De esta manera, el DNS reconoce en qué orden debe realizar las solicitudes de contacto.
Registros PTR
El registro PTR (pointer) es un registro DNS que permite una búsqueda inversa o reverse lookup. Con ella, el servidor DNS puede indicar qué nombres de host pertenecen a una dirección IP concreta. Para cada dirección IP usada en registros tipo A o AAAA existe, por consiguiente, un registro PTR. La dirección IP se forma en este caso en orden opuesto y se le añade, además, el nombre de una zona.
Registros NS
Un registro NS hace referencia al servidor de nombres de un archivo de zona y determina dónde recae la responsabilidad de una zona concreta. Es, por ello, un registro obligatorio en todo archivo de zona. Este registro de recurso indica al servidor DNS si es responsable de una solicitud o no, es decir, si tiene que organizar la zona en cuestión, o bien a quién tiene que reenviar la solicitud.
Registros TXT
Los registros TXT contienen texto, ya sea como fuente de información para usuarios humanos o para ser leído maquinalmente. En estos registros DNS, el administrador puede alojar texto no estructurado (a diferencia de los datos estructurados de otros registros DNS). Se pueden añadir también, por ejemplo, detalles sobre la empresa a la que pertenece el dominio.
Registros SRV
Mediante un registro SRV, un servidor puede informar acerca de los servicios disponibles del dominio. Para ello, se indica el servicio, incluyendo el puerto en el que se puede encontrar. Además, el protocolo usado es parte del nombre. Así, un cliente puede, por ejemplo, obtener información acerca de servicios LDAP o XMPP a través del registro DNS.
Registros LOC
Mediante un registro LOC se puede dar a conocer la ubicación física del servidor. Con este fin se indican, al final del registro, la latitud, la longitud, la altura sobre el nivel del mar y el margen de error.
Descubre más sobre "¿Qué es la propagación de DNS?" en el siguiente artículo detallado.
Archivos de zona
Los archivos de zona (simples archivos de texto) enumeran todos los registros DNS. Para que los datos puedan ser procesados correctamente, deben cumplirse requisitos concretos, de lo contrario el DNS no puede funcionar y el cliente recibe el aviso de error SERVFAIL. Por ello, los registros se ajustan a una estructura concreta: primero se indica el nombre de la zona y luego, en muchos casos, el time to live. Al incluir el TTL directamente aquí, no es necesario repetirlo en cada uno de los registros de recurso, ya que el tiempo se refiere a la zona entera.
$ORIGIN ejemplo.com.
$TTL 12879
El primer registro DNS es un registro SOA, sin el cual el archivo de zona no puede funcionar. De hecho, un archivo de zona también es válido si únicamente hay un registro SOA. A continuación, aparecen los registros referidos a los servidores de nombres y luego los registros tipo A y AAAA.
Si se quieren añadir comentarios al archivo, por ejemplo, para facilitarles el trabajo a otros administradores, se usa el punto y coma. Así se pueden introducir informaciones en un registro DNS sin que el servidor procese el texto. Para estructurar los registros se pueden incluir líneas en blanco, que también son ignoradas por el sistema a la hora de procesar el archivo. Cada registro ocupa una línea y acaba con un salto de línea. Si, en cambio, se quiere realizar un registro que ocupe varias líneas, se utilizan paréntesis.
Si se quieren añadir comentarios al archivo, por ejemplo, para facilitarles el trabajo a otros administradores, se usa el punto y coma. Así se pueden introducir informaciones en un registro DNS sin que el servidor procese el texto. Para estructurar los registros se pueden incluir líneas en blanco, que también son ignoradas por el sistema a la hora de procesar el archivo. Cada registro ocupa una línea y acaba con un salto de línea. Si, en cambio, se quiere realizar un registro que ocupe varias líneas, se utilizan paréntesis.
Resumen de todos los tipos de registro DNS
Además de los tipos presentados, en los archivos de zona se pueden encontrar muchas otras formas de registros de recurso, si bien no son tan frecuentes como las anteriores. La siguiente tabla presenta de forma concisa todos los tipos y sus respectivas funciones.
La autoridad de asignación de números de Internet (IANA), responsable, entre otras cosas, de asignar direcciones IP, ha asignado también un valor (como número de identificación) a cada tipo de registro DNS.
Valor | Tipo | Descripción |
---|---|---|
1 | A | Address indica la dirección IPv4 de un host. |
2 | NS | Nameserver establece la autoridad sobre una zona. |
3 | MD | Mail Destination (obsoleto) ha sido sustituido por el registro MX. |
4 | MF | Mail Forwarder (obsoleto) ha sido sustituido por el registro MX. |
5 | CNAME | Canonical Name indica un alias. |
6 | SOA | Start of Authority contiene detalles sobre la zona. |
7 | MB | Mailbox Domain Name es experimental. |
8 | MG | Mail Group Member es experimental. |
9 | MR | Mail Rename Domain Name es experimental. |
10 | NULL | Null Resource es experimental. |
11 | WKS | Well Known Service (obsoleto) solía usarse para reenviar correos electrónicos. |
12 | PTR | Pointer sirve para la búsqueda inversa (reverse lookup). |
13 | HINFO | Host Information alberga detalles sobre el hardware y el software del host. |
14 | MINFO | Mailbox Information es experimental. |
15 | MX | Mail Exchange asigna un dominio a los servidores de correo electrónico. |
16 | TXT | Text permite introducir texto adicional. |
17 | RP | Responsible Person contiene informaciones para los encargados correspondientes. |
18 | AFSDB | AFS Database está pensado especialmente para clientes AFS. |
19 | X25 | X.25 PSDN Address (obsoleto) contiene detalles sobre el encapsulado con X.25. |
20 | ISDN | Este registro (obsoleto) asigna un número ISDN al nombre DNS. |
21 | RT | Route Through Record (obsoleto) especifica un host intermedio que enlaza con el host que el propio registro RT indica, sin dirección WAN. |
22 | NSAP | Este registro (obsoleto) permite asignar nombres de dominio a los Network Service Access Points (puntos de acceso a servicio de red). |
23 | NSAP-PTR | NSAP Pointer (obsoleto) ha sido sustituido por PTR. |
24 | SIG | Signature (obsoleto) ha sido sustituido por RRSIG. |
25 | KEY | Key (obsoleto) ha sido sustituido por IPSECKEY. |
26 | PX | Pointer to X.400 (obsoleto) alberga reglas de MIXER mapping. |
27 | GPOS | Geographical Position (obsoleto) ha sido sustituido por LOC. |
28 | AAAA | AAAA indica la dirección IPv6 de un host. |
29 | LOC | Location contiene información sobre la ubicación. |
30 | NXT | Next (obsoleto) ha sido sustituido por NSEC. |
31 | EID | Endpoint Identifier (obsoleto) fue ideado para la arquitectura de routing Nimrod. |
32 | NIMLOC | Nimrod Locator (obsoleto) fue ideado para la arquitectura de routing Nimrod. |
33 | SRV | Service Locator informa acerca de otros servicios disponibles. |
34 | ATMA | ATM Address (obsoleto) da información relativa al ATM (modo de transferencia asíncrona). |
35 | NAPTR | Naming Authority Pointer es una ampliación del registro A que permite usar patrones de búsqueda (términos frecuentes). |
36 | KX | Key Exchanger permite gestionar claves criptográficas. |
37 | CERT | Cert guarda certificados. |
38 | A6 | A6 ha sido sustituido por AAAA. |
39 | DNAME | Delegation Name indica alias para dominios enteros. |
40 | SINK | Kitchen Sink (obsoleto) permite guardar diferentes tipos de datos. |
41 | OPT | Option es un pseudoregistro del ámbito de los mecanismos de extensión de DNS (EDNS). |
42 | APL | Address Prefix List enumera rangos de direcciones en formato CIDR. |
43 | DS | Delegation Signer identifica zonas con firma DNSSEC. |
44 | SSHFP | SSH Public Key Fingerprint muestra el fingerprint (huella digital) para claves SSH. |
45 | IPSECKEY | IPsec Key contiene una clave para IPsec. |
46 | RRSIG | RR Signature alberga una firma digital para DNSSEC. |
47 | NSEC | Next Secure interconecta zonas firmadas en DNSSEC. |
48 | DNSKEY | DNS Key contiene una clave pública para DNSSEC. |
49 | DHCID | DHCP Identifier enlaza nombres de dominio con clientes DHCP. |
50 | NSEC3 | Next Secure 3 es una alternativa a NSEC. |
51 | NSEC3PARAM | Este registro (parameter) contiene parámetros de NSEC3. |
52 | TLSA | Este registro establece un enlace conocido como TLSA Certificate Association con un nombre de dominio, de acuerdo con el protocolo DANE. |
53 | SMIMEA | Este registro establece un enlace conocido como S/MIME Certificate Association con un nombre de dominio. |
54 | n/a | No asignado |
55 | HIP | Host Identity Protocol separa la señalización del punto final y las funciones de localización de direcciones IP. |
56 | NINFO | NINFO da información sobre el estatus de la zona (misma estructura que TXT; obsoleto). |
57 | RKEY | RKEY guarda claves (misma estructura que KEY y DNSKEY; obsoleto). |
58 | TALINK | Trust Anchor Link conecta dos nombres de dominio (obsoleto). |
59 | CDS | Un Child DS es una copia de un registro DS. |
60 | CDNSKEY | Un child DNSKEY es una copia de un registro DNSKEY. |
61 | OPENPGPKEY | OpenPGP Key muestra claves públicas. |
62 | CSYNC | Child-to-Parent Synchronization permite comparar parent zones (zonas que contienen otras) y child zones (zonas contenidas en una parent zone). |
63 | ZONEMD | Message Digest for DNS Zone (obsoleto) es experimental. |
64–98 | n/a | No asignado |
99 | SPF | Sender Policy Framework (obsoleto) ha sido sustituido por el registro TXT. |
100 | UINFO | Reservado |
101 | UID | Reservado |
102 | GID | Reservado |
103 | UNSPEC | Reservado |
104 | NID | NodeID es experimental. |
105 | L32 | 32-bit Locator es experimental. |
106 | L64 | 64-bit Locator es experimental. |
107 | LP | Locator Pointer es experimental. |
108 | EUI48 | 48-bit Extended Unique Identifier encripta direcciones. |
109 | EUI64 | 64-bit Extended Unique Identifier encripta direcciones. |
110–248 | n/a | No asignado |
249 | TKEY | Transaction Key permite el intercambio de claves secretas (secret keys). |
250 | TSIG | Transaction Signature sirve para la autenticación. |
251 | IXFR | Incremental Zone Transfer (obsoleto) permite actualizar partes de un archivo de zona en un segundo servidor. |
252 | AXFR | AFXR (obsoleto) transmite archivos de zona enteros a otro servidor. |
253 | MAILB | Mailbox (obsoleto) consulta todos los registros de un buzón de correo electrónico. |
254 | MAILA | Mail Agent (obsoleto) ha sido sustituido por el registro MX. |
255 | * | * consulta todos los registros (obsoleto). |
256 | URI | Uniform Resource Identifier muestra la asignación de nombres de host a los URL. |
257 | CAA | Certificate Authority Authorization especifica las posibles autoridades de certificación (CA) para un dominio. |
258 | AVC | Application Visibility and Control (obsoleto) contiene metadatos de aplicación para DNS-AS. |
259 | DOA | DOA ya no está activo (obsoleto). |
260 | AMTRELAY | Automatic Multicast Tunneling Relay (obsoleto) permite encontrar retransmisiones AMT. |
261–32767 | n/a | No asignado |
32768 | TA | DNSSEC Trust Authorities hacen posibles las DNSSEC (extensiones de seguridad para el sistema de nombres de dominio) sin signed root, es decir, sin certificado raíz. |
32769 | DLV | DNSSEC Lookaside Validation muestra trust anchors (anclas de confianza, que son entidades autoritarias) más allá de la cadena DNS normal. |
32770–65279 | n/a | No asignado |
65280–65534 | n/a | Para uso privado |
65535 | n/a | Reservado |