X

Servidor DNS: ¿Qué es? ¿Cómo funciona?

La computación en general, así como Internet, están llenas de iniciales, siglas y abreviaciones. Se le adjudican abreviaciones a todo, mientras más confusas mejor y muchas veces las usamos sabiendo más o menos a que se refieren, tal como sucede con el DNS y Servidor DNS.

Cuando hablamos de registrar un dominio o configurarlo, una de las primeras iniciales que aparecen son DNS y servidor DNS ¿Pero que son exactamente? ¿En qué se diferencian?

Primero hay que diferenciar cuando hablamos de DNS y cuando decimos Servidor DNS, si bien están fuertemente relacionados no son lo mismo. Los registros DNS son un conjunto de datos o configuración según lo vemos que están relacionados un dominio de internet mientras que el Servidor DNS es un sistema que permite administrar y consultar estos registros.

A continuación veremos con más detalle todas las partes que abarcan y cómo funciona todo el sistema DNS en general.

¿Qué significa DNS?

Cuando nos referimos al DNS podemos estar hablando de dos cosas diferentes aunque relacionadas entre sí y que pueden confundirse muy fácilmente. La diferencia fundamental está en la última letra de la palabra DNS, la letra « significa cosas diferentes según el contexto en que se mencione.

Podemos estar hablando de Domain Name System cuya traducción literal es Sistema de Nombres de Dominio o de Domain Name Server o en español Servidor de Nombres de Dominio.

Cuando hablamos del Sistema de Nombres de Dominio nos referimos al sistema que permite gestionar y administrar los dominios de Internet y la correspondiente dirección IP del servidor donde está alojando ese dominio.

Por cada dominio se puede guardar una serie de datos agrupados en lo que se llama registros, hay diferentes tipos de registros DNS que persiguen diferentes fines. Por ejemplo, algunos pueden servir para apuntar el sitio web para que este se vea online, y otros pueden servir como Mail Exchanger (MX) para permitirnos enviar y recibir email de forma correcta.

¿Qué es un servidor DNS?

Podemos decir que un servidor DNS es un servidor de Base de Datos y los registros DNS son los datos que el servidor administra y que los coloca disponible para ser consultados por otros equipos informáticos (clientes).

Se usa el término Domain Name System para referirse a todo el sistema de registro, gestión de los dominios en cada una de las jerarquías y niveles, algo que veremos más adelante en detalle.

Por otra parte Domain Name Server se refiere a un servicio o servidor en particular que se encarga de gestionar una parte del sistema de nombres, puede tratarse de un servicio que gestione millones de dominios o que gestione uno solo.

Aquí es donde ya entramos a aclarar varios componentes que forman parte y hacen que un servidor DNS funcione como tal:

  • Servidor DNS: que es quien devuelve respuestas ante las peticiones a cada cliente.
  • Cliente DNS: quien envía la petición DNS hacia el servidor.
  • Zona de autoridad: son servidores DNS utilizados como resolvedores de dominios de diferente TLD (.com.mx .es .com .net, etc)

¿Que es un dominio de Internet?

Un dominio, también conocido como dominio web, es un nombre que se le asigna a un servidor, servicio o un sitio web para hacer que sea más fácil de recordar. Éste tiene la característica de ser único y exclusivo, es decir que no pueden haber dos dominios iguales, no se repiten.

Un dominio por ejemplo es infranetworking.com, otro es google.com. Son nombres sencillos y fáciles de recordar que identifican a cada sitio y nos permiten ingresar a ellos.

Los dominios son administrados por una entidad denominada ICANN (Corporación de Internet para la Asignación de Nombres y Números, del inglés Internet Corporation for Assigned Names and Numbers).

Sin embargo esta organización delega en otras empresas y organización la comercialización de los dominios, en algunos casos a empresas privadas y en otros a estados.

Los dominios .com , .org y .net los podemos adquirir en casi cualquier lado debido a que existen muchos revendedores de dominios que encargan del registro de dominios.

También existen dominios que no se pueden adquirir como los .gov, .mil, .int que se denominan dominios restringidos y que están destinados a gobiernos, fuerzas armadas y organizaciones internacionales respectivamente.

¿Cómo funciona la resolución de nombres  o resolución DNS?

Para entender porqué los dominios son tan necesarios vamos a hacerlo mediante la siguiente analogía:

En un edificio tenemos numerosos pisos y en cada uno tenemos varios apartamento y por supuesto cada apartamento tiene un número que nos permite identificar de forma inequívoca a cada uno igual que las IP identifican a los servidores.

Supongamos que vamos a un edificio a visitar a alguien, no sabemos en cuál apartamento vive por lo que no sabemos cómo llegar desde la recepción hasta el apartamento, sin embargo si sabemos su apellido.

Cuando vamos a la recepción a preguntar lo hacemos por el apellido y el recepcionista inmediatamente nos dice el numero de apartamento de la persona que estamos buscando.

El número de apartamento era todo lo que necesitábamos para encontrar el apartamento, del mismo modo funciona el servicio de Nombres de Dominio, a partir del nombre de dominio podemos encontrar la IP y establecer una conexión con el servidor.

Cuando la computadora de un usuario necesita saber la es la IP de un dominio, el sistema operativo revisa su archivo host buscando una coincidencia, cuando no la encuentra busca en los servidores DNS configurados en el sistema como pueden ser los que el ISP le asignó o los que el usuario haya configurado,

Estos servidores se les llama DNS resolvers o en español «resolvedores DNS», también ya que estos no administran registros aunque se encargan de averiguar qué servidor lo hace.

El servidor resolver sino tiene en cache el dominio por el que se consulta va a mirar la extensión del dominio y va a consultar a los servidores raíz para obtener la lista de servidores TLD que le correspondan a la extensión del dominio consultado.

Una vez que el resolver obtuvo la lista de TLD consulta a uno de ellos sobre el dominio y como respuesta obtiene los nombres de los servidores autoritativos o nameservers que administran el dominio.

Cuando el resolver obtuvo los servidores autoritativos del dominio los consulta para obtener el registro que necesita y una vez que obtiene respuesta el resultado es devuelto a la computador del usuario que hizo la consulta original.

En la siguiente imagen podemos ver un poco más gráficamente el curso de las consultas:

Fig. 01. Diagrama de cómo funciona la resolución de nombres de dominio (DNS)

Hay algo a tener en cuenta y es el cache DNS, por eso no siempre se está completando todo el círculo, una vez que se consulta un registro son guardados por cierto tiempo en memoria en lo que se llama la caché.

Hay dominios que son pedidos muy frecuentemente como por ejemplo puede ser cuando solicitamos resolver el dominio google.com a un servidor, seguramente otro usuario lo haya pedido antes por lo que nos devolverá inmediatamente el resultado, sin consultar siquiera a los servidores autoritativos del dominio porque como ya fue pedido antes ya sabrá la dirección IP porque lo tenía en caché

Esto del cache lo vemos un poco más adelante en el articulo ya que esta relacionado con los registros DNS que veremos a continuación.

Registros DNS

Los registros DNS son un conjunto de datos que son utilizados para publicar la configuración de un dominio y sirven para que otros sistemas puedan consultar y saber la configuración del dominio.

Sirve por ejemplo para indicar que un dominio está alojado una IP en particular, indican en que el servidor se entregará el correo o que servidores están autorizados a enviar correo.

Los registros DNS están compuestos por un conjunto básico de datos:

  • Nombre
  • Valor
  • Tipo
  • TTL
  • Clase

Existen registros que contienen algun parametro mas como puede ser los MX que agregan el campo Prioridad o los registros SRV que agregan campos como Protocolo, Puerto y Destino.

Para ver cómo se compone un registro primero vamos a ver un poco más en detalle a que se refieren los campos TTL y Clase que no debemos confundir con Tipo.

Time to Live (TTL)

Hace algunos párrafos atrás hablábamos de la ruta que sigue una consulta DNS y mencionamos que existía algo llamado Cache por lo que no siempre se completaba todo el círculo de consultas.

En cada registro DNS se agrega un valor llamado TTL (Time to Live) o Tiempo de vida en español, es un valor expresado en segundos que usualmente puede ir desde 120 segundos hasta 86.400 (24 horas).

Este valor es el que le indica a un sistema (como los resolvers) que durante ese tiempo máximo en que deberán conservar el registro para que no vuelva a consultar el registro y utilice ese valor que consultó, pasado ese tiempo el sistema que lo necesite volverá a preguntar por el registro para ver si cambio o continua siendo el mismo.

Por ejemplo los resolvers no siempre están consultando a los servidores raíz para obtener la lista de TLD ya que las direcciones no de los servidores raíz ni de los TLD no cambian tan frecuentemente por lo que tienen un TTL muy alto.

Este valor es el que afecta la propagación DNS de los dominios porque aunque modifiquemos los registros DNS los cambios no se reflejan inmediatamente debido al valor del TTL y hay que esperar cierto tiempo para que los cambios propaguen.

Para saber qué TTL debemos colocar debemos preguntarnos cuán a menudo cambian los registros porque colocar un TTL bajo ayuda a que la propagación sea mas rapida, sin embargo también aumentaron las consultas para refrescar los datos debido las consultas serían mucho más frecuentes que si colocamos un TTL más alto,

Para sitios de mucho tráfico es mejor un TTL alto ya que luego de una consulta los registros duraran mas en los cache, sin embargo a la hora de cambiar los registros estos cambios no se propagaron hasta que expire el TTL en cada servidor de la red y eso puede ser un problema a la hora de migrar.

Una alternativa es tener un TTL alto y cuando necesitemos cambiar un valor primero bajamos el TTL con anticipación, esperamos a la propagación de este cambio, cuando eso esté listo recién cambiamos el valor que nos interese y subimos el TTL nuevamente para la frecuencia de consultas, eso nos asegurará una propagación más rápida con un down-time menor, aunque existen muchas herramientas para medir como se está propagando todo como DNS Propagation.

Clases

A pesar que haya sistemas que no permitan especificar una clase al crear un registro, en la práctica un registro siempre debe llevar especificado la clase a la que pertenece.

En el caso de cPanel al configurar un registro automáticamente rellena el campo como IN. En sistemas como Cloudflare ni siquiera pregunta o da la posibilidad de cambiarlo.

A pesar que solo utilizamos la clase 1 aun sin saberlo, porque el sistema asuma que la case debe ser IN, es importante saber que en total existen 4 tipos de clases diferentes definidas.

Las 4 clases son:

1 - IN Es la clase más usada y significa Internet
2 - CS Es un registro obsoleto que ya no se utiliza
3 - CH La clase CHAOS
4 - HS Hesiod

La clase IN

Es la clase de registro más común y es la que usaremos a la hora de configurar los registros, esta clase esta reservada para indicar que el registro es un registro perteneciente a red Internet.

La clase CSNET

El nombre proviene de Computer Science Network, esta clase fue agregada a la espesificaciones a principios en de los ochenta y si embargo ya en 1986 en RFC973 se consideraba obsoleta.

La clase CHAOS

Entre otra información con esta clase por ejemplo podemos obtener información sobre el sistema

dig CH TXT @localhost version.bind +short

El comando anterior nos arrojara la version de servicio DNS

"9.9.4-RedHat-9.9.4-72.el7.cloudlinux"

La clase Hesiod

La clase Hesiod es el nombre del servicio parte del proyecto Project Athena (1983–1991). Este proyecto utilizaba los DNS para proveer acceso a base de datos con información que cambiaba con poca frecuencia.

Un ejemplo de estos registros seria

foo.passwd.ns.example.net  HS  TXT  "foo:x:100:10:Foo Bar:/home/foo:/bin/sh"
100.passwd.ns.example.net  HS  TXT  "foo:x:100:10:Foo Bar:/home/foo:/bin/sh"
100.uid.ns.example.net     HS  TXT  "foo:x:100:10:Foo Bar:/home/foo:/bin/sh"

Este tipo de registros ya no se usa actualmente.

Diferentes Tipos de Registros de un Servidor DNS

Ahora que ya sabemos de que se trata las clases y el TTL vamos a repasar qué tipos de registro DNS existen

Tipo A

Un registro de tipo A es el tipo más común de registro y sirve para indicar que un dominio o subdominio apunta a una determinada IP, es decir que asocia el dominio con la IP como por ejemplo al dominio ejemplo.com con la IP.

En la configuración pueden existir muchos registros A, por ejemplo podemos configurar varios registros A para ejemplo.com que apunten a diferentes IP y tener un rudimentario balanceador de carga o podemos tener varios registros A que correspondan a diferentes subdominios.

Estos subdominios pueden estar apuntados a la misma IP o a diferentes IP según necesitemos. Lo registros AAAA cumplen la misma función que los registros A solo que son para configurar IP de tipo IPv6 en lugar de las IPv4 de los registros A.

Un ejemplo de cómo apuntar un dominio y un subdominio a una IP seria como el siguiente ejemplo.

Nombre Clase Tipo TTL Valor
example.com IN A 3600 184.154.174.50
www.example.com IN A 3600 184.154.174.50

Para crear un registro AAAA es el mismo principio, solo cambia A por AAAA en el tipo y el valor debe ser una dirección IP con formato IPv6.

Tipo CNAME

El registro de nombre canónico denominado CNAME es un tipo de registro que sirve para crear un registro que en realidad es alias de otro registro, por ejemplo cuando con otro nombre deseamos apuntar a otro registro ya creado.

El uso más habitual que tenemos de un registro CNAME es para www, tenemos creado un registro A para ejemplo.com y su respectiva IP y creamos un registro CNAME www.ejemplo.com que apunta al registro A ejemplo.com

En el siguiente ejemplo vemos cómo configurar un CNAME apuntando a un registro A, el efecto es el mismo que cuando creamos el subdominio en el ejemplo anterior, la diferencia es que en lugar de apuntará a una dirección IP apuntamos a una dirección canónica, es decir a un dominio.

Nombre Clase Tipo TTL Valor
example.com IN A 3600 184.154.174.50
www.example.com IN CNAME 3600 example.com

Tipo MX

El registro MX es el registro que indica donde se debe entregar el correo electrónico dirigido a ese dominio, este registro, llamémosle de destino puede contener una IP, un dominio o un subdominio.

Para un mismo dominio se puede configurar varios registros MX de destino de correo y además a cada MX se le puede especificar una prioridad como un valor numérico entero, cada MX puede tener una prioridad diferente.

Para ver un ejemplo vamos a tomar los registros MX para GSuite / Gmail. En el caso de los registros MX podemos configurar varios que diferencia de los registros anteriores que vimos en este caso se agrega el campo Prioridad que es propio de los registros MX

Nombre Clase Tipo TTL Prioridad Valor
example.com IN MX 3600 1 ASPMX.L.GOOGLE.COM
example.com IN MX 3600 5 ALT1.ASPMX.L.GOOGLE.COM
example.com IN MX 3600 5 ALT2.ASPMX.L.GOOGLE.COM
example.com IN MX 3600 10 ALT3.ASPMX.L.GOOGLE.COM
example.com IN MX 3600 10 ALT4.ASPMX.L.GOOGLE.COM

Tipo TXT

Los registros TXT son registros de texto que sirven para publicar información y que esta sea consultada por otros sistemas, el uso más común son para registros SPF y DKIM que sirven como mecanismo de seguridad y autentificación contra el servidor de correo.

En el caso del SPF, mediante este registro de texto se puede especificar desde qué direcciones IP se envían correos electrónicos para este dominio, esto les sirve a los demás servidores de correo poder determinar si el correo enviado salió desde un servidor habilitado para ese dominio o no.

Mientras que el registro DKIM almacena una clave criptográfica que sirve para autentificar el si un correo enviado bajo ese dominio es válido o no.

Otro uso que se le da a este tipo de registros es para certificar la titularidad de un dominio cuando uno se quiere registrar en algún servicio, se le pide al dueño del dominio que cree un registro txt con algún texto identificatorio y luego se hace la consulta DNS, si el registro es creado es porque es legítimamente el dueño.

Por ejemplo para crear un registro TXT para SPF

Nombre Clase Tipo TTL Valor
example.com IN TXT 3600 v=spf1 a mx +ip4:184.154.174.50 -all

En algunos sistemas DNS en la interfaces tienen un tipo de registro SPF, sin embargo cuando se configura el registro en el servicio en realidad se configura un registro TXT como el anterior.

A la hora de crear un registro DKIM o DMARC o algún registro para verificación de algún servicio el principio es el mismo, simplemente cambia el campo Valor y el campo Nombre

Otros registros DNS

Existen otros tipos de registro que cumplen fines diarios, como por ejemplo los SRV para proveer configuración para servicios, los registro NS para delegar la gestión del dominio o los registros PTR que son lo opuesto a un registro A, es decir que a partir de la IP se puede obtener el dominio, también se le llama DNS inverso.

Si bien los tipos de registro DNS fueron creados en los años ochenta aún hoy continúan en evolución incorporando nuevos tipos de registros como los CAA que permiten declarar  que entidades certificadoras están autorizadas para emitir un certificado SSL para ese dominio además de establecer una casilla de correo de notificación en caso que alguien solicite un certificado a una entidad de certificación no autorizada.

Si no existe ningun registro CAA cualquier entidad puede emitir un certificado aunque en la práctica aunque el registro exista es posible que algunos emisores de certificados no realizan esta comprobación y emitan el SSL igual, es un registro relativamente nuevo y que aún no se respeta al 100%.

¿Cuáles son los servidores DNS públicos más rápidos?

De acuerdo al sitio DNSPerf al momento de actualizar este artículo, los servidores DNS de carácter público (gratis) que ofrecen un server primario y secundario para usar libremente en redes ethernet e inalámbrica de computadoras son:

1.1.1.1: no es de extrañar que el famoso servidor público DNS 1.1.1.1 de Cloudflare esté en el top de la lista, son los más rápidos y seguros hoy en día para los usuarios.
DNSFilter: es otro proveedor relativamente nuevo, que ofrece no sólo DNS rápidos, sino también seguros gracias a sus protecciones y filtros de seguridad para contenido que permiten bloquear contenido sensible y malicioso.
Cisco Umbrella: es otro proveedor que ofrece DNS rápidos como parte de su servicio de protección y seguridad contra ataques, que incluye filtros para bloquear contenido con diversas opciones.

Otro servidores que ofrecen DNS público de calidad pueden ser: Google DNS, OpenDNS, DynDNS, NextDNS, Yandex, NuSEC, SafeDNS, Neustar, o Quad9.

Estos servidores (tanto primario como secundario) pueden usarse para mejorar la velocidad al momento de seleccionar las rutas, conexiones para acceder a las páginas web, responder cualquier mensaje de red que se base en el DNS, y lo mejor de todo, casi todos ellos ofercen opciones donde no hay pago de por medio! Como si fuera poco, ofrecen solución a casi cualquier error de red DNS de forma automática, sin que tu te percates, es decir, si hay un error en alguna red o nodo intermedio, ellos eligen las mejores rutas para no solo optimizar la velocidad, sino también para que no veas ningún tipo falla de tu lado en las conexiones. ç

Funcionan tanto en Linux como en Windows, y en cualquier tipo de ordeandor, red o sistema operativo. Para usarlos sólo necesitarás acceder como administrador y hacer los cambios pertinentes en el apartado DNS de tu ordenador, o bien en el router. Y lo ideal: no requieren de comandos complejos para instalarse.

Conclusión

Hicimos un repaso histórico sobre la evolución los dominios, como pasamos de enumerarlos como IP en los años sesenta a utilizar nombres a través del archivo host, para finalmente llegar a un sistema más confiable y jerarquizado como los DNS en los años ochenta.

Aprendimos a diferenciar entre un servidor DNS y el sistema DNS en general, luego repasamos la estructura del Sistema de Nombres, como funciona, las diferentes jerarquías de servidores como servidores raíz, los TLD y los servidores autoritativos.

Vimos cómo se delega la gestión a través de los diferentes tipos de servidores DNS y qué información guarda cada uno, así como la forma en que se realizan las consultas a través de todo el sistema y que información retorna cada uno según su función.

Por último vimos que es un registro DNS y que datos contiene, así como también ejemplos sobre para qué sirven los registros DNS más usados.

Como habrás visto, repasamos todo lo que compone el sistema DNS. Esto nos ayuda a entender cómo funciona realmente un sistema crítico de la Internet moderna, que nos hace la vida mucho más simple porque nos permite recordar nombre de dominios más amigables en lugar de recordar direcciones IP.

Así que al momento de digitar un dominio en tu navegador preferido, recuerda toda la magia que sucede detrás, gracias a los servidores DNS.


¿Quieres disfrutar de una web con servidor DNS optimizado, estable y seguro?

Mira nuestros Planes de Hosting y Alojamiento Web MultiDominio.


 

Artículos relacionados