Qué es DNS

DNS (Domain Name System o Sistema de Nombre de Dominio) nos proporciona una manera de comunicarnos con los dispositivos de Internet de forma sencilla, sin necesidad de recordar números complejos.

Igual que una casa tiene una dirección única, cada máquina en Internet tiene también una dirección para comunicarnos con ella llamada dirección IP.

Una dirección IP es algo cómo 104.26.10.229, 4 grupos de números que van del 0 al 255, separados por un punto.

Cuando quieres visitar un sitio web, no es muy conveniente recordar estos números complicados, y ahí es donde entra DNA.

En lugar de recordar 104.26.10.229 puedes recordar tryhackme.com.

¿Qué significa DNS?

Domain Name System

Jerarquía de dominios

TLD (Top Level Domain)

Un TLD es la parte más a la derecha de un nombre de dominio. Por ejemplo, en tryhackme.com es el .com.

Hay 2 tipos de TLD:

  • gTLD (Generic Top Level) o primer nivel genérico. En su día, su objetivo era identificar el propósito principal del dominio (.com era comercial, por ejemplo).
  • ccTLD (Country Code Top Level Domain) o primer nivel código de país. Tiene propósitos geográficos.

Con el tiempo, la demanda de dominios ha hecho que haya muchos más del tipo gTLD.

Dominio de segundo nivel

En tryhackme.com la parte de tryhackme es el dominio de segundo nivel.

Limitado a 63 caracteres + el TLD, solo puede usar a-z, 0-9 y guiones, sin poder empezar por uno o tener dos seguidos.

Subdominio

Un subdominio se encuentra a la izquierda del dominio de segundo nivel y separado por un punto.

Tiene las mismas restricciones de creación que el dominio de segundo nivel.

Lo que sí se puede hacer es poner varios subdominios separados por un punto. Por ejemplo: jupiter.servers.tryhackme.com. Sin embargo, la longitud máxima es de 253 caracteres.

No hay límites al número de subdominios que puedes crear a partir de tu nombre de dominio.

¿Cuál es la longitud máxima de un subdominio?

63

¿Cuál de los siguientes caracteres no puede ser usado en un subdominio (3 b _ -)

_

¿Cuál es la longitud máxima de un nombre de dominio?

253

¿Qué tipo de TLD es co.uk?

ccTLD

Tipos de registro

Los DNS no son solo para sitios web y existen muchos tipos de registros DNS. Veamos algunos de los más comunes que nos encontraremos.

Registro A

Estos registros resuelven una dirección IPv4, por ejemplo: 104.26.10.229

Registro AAAA

Estos registros resuelven a direcciones IPv6. Por ejemplo: 2606:4700:20::681a:be5

Registro CNAME

Estos registros resuelven a otro nombre de dominio, por ejemplo, la tienda online de Tryhackme tiene el subdominio store.tryhackme.com que devuelve un registro CNAME shops.shopify.com.

A fin de resolver la dirección IP, se haría otra petición DNS a shops.shopify.com.

Registro MX

Estos registros resuelven a una dirección de los servidores que gestionan el email del dominio al que hacemos la petición. Por ejemplo, un respuesta a un registro MS para tryhackme.com sería algo como alt1.aspmx.l.google.com.

Estos registros también vienen con una bandera de prioridad. Esto le dice al cliente en qué orden probar los servidores. Esto es perfecto si el servidor principal cae y el email necesita enviarse a un servidor de respaldo.

Registro TXT

Son campos de texto libre donde puedes almacenar cualquier dato basado en texto. Los registros TXT tienen muchos usos, pero algunos de los más comunes son listar los servidores que tienen la autoridad para enviar correo de parte del dominio.

Esto ayuda en la batalla contra el spam y los emails falsificados.

También pueden ser usados para verificar la propiedad de un dominio cuando te estás registrando con terceros.

¿Qué tipo de registro se usaría para avisar de dónde enviar correo?

mx

¿Qué tipo de registro gestiona direcciones IPv6?

AAAA

Realizando una petición

¿Qué es lo que ocurre cuando realizas una petición DNS?

  1. Tu máquina chequea primero el caché local para ver si has buscado previamente esa dirección hace poco. Si no, se hace una petición a tu servidor DNS recursivo.
  2. El servidor DNS recursivo lo pone normalmente nuestro ISP o proveedor de Internet. Este servidor también tiene un caché local de nombres de dominio buscados recientemente. Si se encuentra un resultado almacenado localmente, se envía a nuestra máquina (para los más usados, como Google o Facebook, es lo habitual). Si la petición no se encuentra localmente, comienza el viaje para encontrar la respuesta correcta, comenzando por los servidores raíz de DNS en la red.
  3. Los servidores raíz son la columna vertebral de Internet. Su trabajo es redirigirte al servidor del nombre de dominio de primer nivel, dependiendo de tu petición. Si, por ejemplo, hemos pedido www.tryhackme.com, el servidor raíz reconocerá el dominio de primer nivel .com y te lleva al servidor TLD correcto que gestiona las direcciones .com.
  4. El servidor TLD mantiene registros sobre dónde encontrar el servidor con autoridad para responder a la petición DNS. El servidor con autoridad es conocido como el nameserver para el dominio. Por ejemplo, el servidor de nombre para tryhackme.com es kip.ns.cloudflare.com y uma.ns.cloudflare.com. A menudo, encontrarás varios nameservers para un nombre de dominio, a fin de actuar como respaldo en caso de que caiga alguno.
  5. Un servidor DNS con autoridad (authoritative) es el servidor responsable de almacenar los registros DNS para un nombre de dominio particular y es donde se realiza cualquier actualización de los registros del nombre DNS de nuestro dominio. Dependiendo del tipo de registro, el registro DNS es enviado de vuelta al servidor DNS recursivo, donde una copia local será almacenada en el caché para peticiones futuras y enviado al cliente original que realizó la petición. Los registros DNS vienen todos con un valor TTL (Time To Live). Es un número que representa, en segundos, cuánto debería guardarse la respuesta hasta que la busques de nuevo. El caché ahorra tener que hacer una petición DNS cada vez que te comunicas con un servidor.

¿Qué campo especifica cuánto tiempo debería guardarse en caché un registro DNS?

TTL

¿Qué tipo de servidor DNS suele proporcionar nuestro ISP o proveedor de Internet?

Recursive

¿Qué otro tipo de servidor mantiene todos los registros de un dominio?

Authoritative

En la práctica

Usando la web que nos proporciona la habitación, podemos construir peticiones DNS y ver los resultados. La web también muestra el comando que necesitaríamos ejecutar en nuestra propia máquina si deseamos hacer las peticiones nosotros mismos.

Con eso, respondemos a las preguntas.

¿Cuál es el CNAME de shop.website.thm?

nslookup --type=CNAME shop.website.thm

shops.myshopify.com

¿Cuál es el valor del registro TXT de website.thm?

nslookup --type=TXT website.thm

THM{7012BBA60997F35A9516C2E16D2944FF}

¿Cuál es el valor de la prioridad numérica para el registro MX?

nslookup --type=MX website.thm

30

¿Cuál es la dirección IP del registro A de www.website.thm?

nslookup --type=A website.thm

10.10.10.10