Qué es DNS.
DNS son las iniciales de Domain Name System (sistema de nombres de dominio) y es una tecnología basada en una base de datos que sirve para resolver nombres en las redes, es decir, para conocer la dirección IP de la máquina donde está alojado el dominio al que queremos acceder.
Cuando un ordenador está conectado a una red (ya sea Internet o una red casera) tiene asignada una dirección IP. Si estamos en una red con pocos ordenadores, es fácil tener memorizadas las direcciones IP de cada uno de los ordenadores y así acceder a ellos pero ¿qué ocurre si hay miles de millones de dispositivos y cada uno tiene una IP diferente? Pues que se haría imposible, por eso existen los dominios y las DNS para traducirlos.
Por lo tanto, el DNS es un sistema que sirve para traducir los nombres en la red, y está compuesto por tres partes con funciones bien diferenciadas.Cliente DNS: está instalado en el cliente (es decir, nosotros) y realiza peticiones de resolución de nombres a los servidores DNS.
Servidor DNS: son los que contestan las peticiones y resuelven los nombres mediante un sistema estructurado en árbol. Las direcciones DNS que ponemos en la configuración de la conexión, son las direcciones de los Servidores DNS. Zonas de autoridad: son servidores o grupos de ellos que tienen asignados resolver un conjunto de dominios determinado (como los .es o los .org).
¿Cómo funcionan?
La resolución de nombres utiliza una estructura en árbol, mediante la cual los diferentes servidores DNS de las zonas de autoridad se encargan de resolver las direcciones de su zona, y sino se lo solicitan a otro servidor que creen que conoce la dirección. Para no meternos en detalles muy técnicos, os voy a explicar como se realiza una petición DNS sencilla.Tecleamos en nuestro navegador www.xatakaon.com
Nuestro Sistema Operativo comprueba la petición y ve que no tiene en su memoria caché la dirección de ese dominio (porque suponemos que no nos habéis visitado nunca en ese ordenador), entonces realiza la petición al servidor DNS configurado manualmente o mediante DHCP.
El servidor DNS que tenemos configurado tampoco tiene memorizada la dirección IP de ese dominio, por lo que realiza una petición al servidor encargado de la zona de autoridad .com.
El servidor encargado de la zona de autoridad .com tiene una tabla de datos en los que están almacenados las direcciones IP de las máquinas y sus dominios. Lo busca y le responde al servidor DNS que está almacenado en la máquina con dirección amazon-gw.ip4.tinet.net (77.67.82.130).
Es entonces cuando el servidor DNS que tenemos configurado realiza una petición a amazon-gw.ip4.tinet.net para saber en qué parte de su máquina (recordad que una máquina puede alojar varias páginas) está www.xatakaon.com
El servidor donde está la página alojada busca en su tabla de correspondencias y le responde diciendo que está en la dirección IP 178.236.0.213.Es entonces cuando 178.236.0.213 le devuelve la consulta a nuestra aplicación (navegador en esta ocasión) y se comienzan a intercambiar paquetes para procesar el proceso.
Parece un proceso largo y complejo ¿no? En realidad no lo es, ya que es un proceso iterativo para el cual están diseñados los servidores para responder en cuestión de microsegundos. Y por supuesto, la mayoría de las ocasiones no se produce toda esta petición, ya que los servidores tienen zonas de memoria caché en la que almacenan las peticiones más habituales para así responder más rápidamente y no saturar la red con multitud de peticiones.
En la segunda imagen que ilustra la entrada se puede ver claramente como es la estructura en árbol. Y si os lo estáis preguntando sí, hay un servidor general que tiene las direcciones de los servidores encargados de las zonas de autoridad. Lo que ocurre es que ese servidor son muchas máquinas repartidas en todos los lugares del mundo (la imagen del principio representa la situación de algunos), por lo que no hay mucho peligro que nos quedemos sin servidores DNS (a no ser que haya un ataque muy planeado, claro está).