Servidor DNS: ¿Qué es y para qué sirve?
Las máquinas en Internet se identifican entre sí mediante una dirección IP. Sin embargo, los seres humanos preferimos utilizar nombres, porque son más fáciles de recordar, y porque ofrecen la flexibilidad de poder cambiar la máquina en la que están alojados (cambiaría entonces la dirección IP) sin necesidad de cambiar las referencias a él.
Los servidores DNS se utilizan para la conversión entre nombres y direcciones IP.
¿Qué es DNS?
El DNS (Sistema de Nombres de Dominio) es un sistema fundamental que asocia nombres de dominio a direcciones IP. Las direcciones IP (por ejemplo, 216.32.74.52) son números únicos que identifican a cada dispositivo conectado a Internet, mientras que los nombres de dominio (www.arsys.es) se utilizan para acceder a los sitios web. Además de ser más fácil de recordar, el nombre es más fiable; también mencionar que mientras la dirección numérica podría cambiar por muchas razones, el nombre siempre sirve.
Por otro lado, DNS se utiliza para una amplia gama de propósitos, entre los que podríamos destacar:
- Acceder a sitios web
- Enviar y recibir correos electrónicos
- Conectarse a redes Wi-Fi
- Jugar a videojuegos online
- Utilizar servicios de transmisión de vídeo
¿Cómo funciona DNS?
Traducción de nombres a direcciones IP
El DNS funciona de la siguiente manera: cuando un usuario escribe el nombre de dominio en su navegador web, este navegador envía una solicitud a un servidor DNS. El servidor DNS se encarga de buscar el nombre de dominio dentro de su base de datos y, si lo encuentra, devuelve la dirección IP correspondiente. Así, el navegador utiliza la dirección IP para poder acceder al sitio web.
Antes de la implementación del DNS, la utilización de nombres de equipos se realizaba a través del uso de archivos («HOSTS») que contenían una lista de nombres y sus direcciones IP asociadas. En Internet, este archivo se administraba de forma centralizada (un único equipo almacenaba esta información), y cada ubicación descargaba periódicamente una nueva copia. A medida que fue creciendo el número de equipos en Internet, esta solución se hizo inviable. Este fue el motivo de la aparición del sistema de DNS.
Resolución de nombres de dominio
La resolución de nombres de dominio es el proceso de traducción de un nombre de dominio a una dirección IP. Este proceso se puede dividir en los siguientes pasos:
- El usuario escribe un nombre de dominio en su navegador web.
- El navegador envía una solicitud a un servidor DNS.
- El servidor DNS busca el nombre de dominio en su base de datos.
- Si encuentra el nombre de dominio, devuelve la dirección IP correspondiente.
- El navegador utiliza la dirección IP para conectarse al sitio web.
¿Cómo es la estructura DNS?
Un sistema de nombres de dominio (DNS) consta de una base de datos de nombres distribuida.
- Los nombres de la base de datos DNS establecen una estructura lógica de árbol, conocida como espacio de nombres del dominio.
- Cada nodo o dominio del espacio de nombres del dominio tiene un nombre y puede contener subdominios.
- Los dominios y subdominios se agrupan en zonas para permitir la administración distribuida del espacio de nombres (las zonas se describen más adelante).
- El nombre del dominio identifica la posición del mismo en la jerarquía lógica del DNS respecto de su dominio principal, al separar cada rama del árbol con un punto.
En la siguiente figura se muestran varios dominios superiores, entre los que se encuentra Midominio, y un host llamado host, dentro del dominio midominio.com. Si alguien quisiera contactar con ese host, usarían el nombre completo host.midominio.com.
Estructura DNSEstructura DNS
Servidores DNS e Internet
El Centro de Información de la Red Internet (Internet Network Information Center) administra la raíz de la base de datos DNS en Internet. Los dominios superiores se han asignado a organizaciones y países. Estos nombres de dominio siguen un estándar internacional. Para los países se usan abreviaturas de dos y de tres letras, y se han reservado varias abreviaturas para que las usen las organizaciones, como se muestra en los siguientes ejemplos:
Nombre dominio DNS | Tipo de organización |
---|---|
.com | Comercial (por ejemplo, microsoft.com para Microsoft) |
.edu | Educacional (por ejemplo, udg.edu para Universidad de Girona) |
.org | Organizaciones no comerciales (por ejemplo, fidonet.org para FidoNet) |
Dominios
Cada nodo del árbol de una base de datos DNS, junto con todos los nodos por debajo del mismo, se llama dominio.
- Los dominios pueden contener host (equipos) y otros dominios (subdominios). Por ejemplo, el dominio Midominio (midominio.com), podría contener a la vez equipos, como host.midominio.com, y subdominios, como subdom.midominio.com, que a su vez podría contener host, como por ejemplo host.subdom.midominio.com.
- Por norma general, los nombres de host y de dominio tienen restricciones en cuanto a los caracteres que pueden formarlos. Sólo está permitido el uso de los caracteres ‘a-z’, ‘A-Z’, ‘0-9’, y ‘-‘.
Servidores de nombres
Los servidores DNS almacenan información acerca del espacio de nombres del dominio, y son conocidos como servidores de nombres.
- Los servidores de nombres suelen ser responsables de una o más zonas (entendiendo como zona un archivo físico que almacena registros de la base de datos de una parte del espacio de nombres DNS).
- El servidor de nombres se dice que tiene autoridad sobre esas zonas.
- Cuando se configura un servidor de nombres DNS (como vamos a ver con el registro ‘NS’), se indica cuáles son los restantes servidores de nombres DNS que se encuentran en el mismo dominio.
Servidores de nombres principal y secundario
Un servidor de nombres principal es un servidor de nombres que obtiene los datos de sus zonas de archivos locales. Los cambios en una zona, como la adición de dominios, se realizan en el servidor de nombres principal. Un servidor de nombres secundario obtiene los datos de sus zonas de otro servidor de nombres de la Red que tiene autoridad para esa zona (normalmente de un servidor de nombres principal). El proceso de obtención de información de estas zonas (es decir, el archivo de base de datos) por red se conoce como una transferencia de zona.
- La razón fundamental para la existencia de un servidor de nombres secundario es la de la redundancia. Se necesitan al menos dos servidores de nombres DNS que sirvan cada zona, uno principal y al menos uno secundario, para que en caso de fallo, alguno de ellos responda a las peticiones de nombres.
En el proceso de resolución de nombres, los servidores de nombres almacenan en caché las respuestas obtenidas fuera de su zona para evitar tiempo en la resolución de respuestas a peticiones similares. En este proceso, se realiza la búsqueda a través de la jerarquía de nodos de nombres del DNS hasta encontrar la resolución de la petición. Existe un tiempo de vida (TTL) que se especifica a través de los datos que se intercambian los servidores de nombres, y que controla el tiempo que se almacenarán estos datos. Evidentemente, a menor tiempo de vida, mayor carga para el servidor de nombres, pero más fiabilidad de los datos del dominio.
Configuración y gestión de servidor DNS
Configuración de servidor DNS
El primer paso para la configuración de un servidor DNS es la instalación. Hay muchas opciones de servidores DNS disponibles, tanto gratuitas como de pago.
Después, tendremos que configurarlo para que apunte a la zona DNS de la organización. La zona DNS es un conjunto de registros de recursos que se relacionan con un nombre de dominio concreto.
Registro y actualización de servidor DNS
Una vez hemos configurado el servidor DNS, necesitamos registrar el dominio para que quede constancia de la propiedad. Entonces, el registrador de dominios nos proporcionará los servidores para nuestro dominio, los cuales utilizaremos para acceder a nuestro sitio web.
Por otro lado, el propietario del dominio es responsable de actualizar los registros DNS de forma regular. Por ejemplo, si se cambia la dirección IP de un servidor web, es necesario actualizar el registro A correspondiente. Las actualizaciones pueden realizarse manualmente o mediante una herramienta de administración de DNS.
Herramientas para diagnosticar problemas DNS
Los problemas DNS pueden causar problemas de conectividad a Internet. Si un usuario no puede acceder a un sitio web, puede ser debido a un problema DNS.
Hay varias herramientas y comandos que se pueden utilizar para diagnosticar problemas DNS. Algunas de las herramientas más comunes son:
- Nslookup: Esta herramienta se utiliza para obtener información, consultar y determinar si existen problemas con los servidores DNS. Te permite realizar consultas directas a servidores DNS para obtener información sobre nombres de dominio y direcciones IP.
- Dig: Es una herramienta versátil para explorar registros DNS en profundidad. Su flexibilidad y capacidades avanzadas hacen que sea ideal para analizar registros específicos y obtener una visión detallada de la configuración DNS.
- Mtr: También conocido como My Traceroute. Esta herramienta se utiliza para realizar un seguimiento del tráfico de red. Se puede utilizar para identificar problemas con la conectividad a los servidores DNS.
- Ping: Es una herramienta fundamental para verificar la conectividad entre tu ordenador y un servidor. Aunque no esté centrada en DNS, te puede ayudar a identificar problemas de latencia.
- Host: Es una herramienta similar a nslookup, pero con un enfoque en proporcionar detalles adicionales. Además de obtener información básica de resolución, también puede mostrar los servidores de nombres autorizados para un dominio, brindándote una comprensión más completa del proceso de resolución DNS.
También podríamos mencionar el buscador Whois, que, a pesar de no ser una herramienta de diagnóstico, podemos utilizarlo para consultar los datos de un dominio.
Tipos de registro DNS
Hasta el momento hemos explicado un poco la terminología y el funcionamiento general del sistema de DNS. Ahora vamos a tratar de explicar un poco por encima la estructura de un archivo del DNS dentro del servidor de nombres. Un archivo de base de datos del servidor de nombres (o archivo DNS) es un ‘archivo de zona’ que contiene los registros (líneas del archivo) para la parte del dominio de la que es responsable la zona. Es decir, es un archivo que contiene los datos para poder resolver las peticiones de nombres asociadas al dominio en direcciones IP.
A continuación, enumeraremos algunos de estos registros DNS:
Registro A
El registro A (Address) es uno de los más básicos y vitales. Asocia un nombre de dominio con una dirección IPv4. Por ejemplo, si tu sitio web tiene la dirección IP 192.168.1.1, un registro A permitirá que los usuarios accedan a él al escribir el nombre del dominio.
Su formato es el siguiente:
nombrehost IN A direcciónIPdehost
Ejemplo Registro A
machine1 IN A 157.55.201.143 nombreservidor2 IN A 157.55.200.2
Registro AAAA
Los registros AAAA asocian un nombre de dominio a una dirección IPv6. Estos registros son cada vez más comunes, ya que IPv6 está reemplazando gradualmente a IPv4.
Ejemplo Registro AAAA Nombre: mi-sitio-web.com Dirección IP: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
Registro SOA
Los registros SOA (Start of Authority) contienen información sobre la zona DNS, como el nombre del servidor DNS autoritativo, la dirección del servidor de correo electrónico del administrador de la zona y la frecuencia con la que se actualizan los registros DNS.
El primer registro de cualquier archivo de base de datos es el registro SOA. Este registro se forma con una serie de parámetros a tener en cuenta.
- host origen: El host en el que se mantiene el archivo.
- correo electrónico de contacto: La dirección de correo electrónico de Internet de la persona responsable del archivo de base de datos de este dominio. No olvide que, en lugar de escribir el símbolo ‘@’ en el nombre de correo electrónico, como se suele hacer, éste se sustituye por un punto cuando se coloca en el archivo de zonas.
- número de serie: El «número de versión» de este archivo de base de datos. Este número debería aumentar cada vez que cambie el archivo de base de datos.
- tiempo de actualización: El tiempo (en segundos) que esperará un servidor secundario entre comprobaciones de su servidor maestro para ver si el archivo de base de datos ha cambiado y si hay que pedir una transferencia de zona.
- tiempo de reintento: El tiempo (en segundos) que esperará un servidor secundario antes de volver a intentar una transferencia de zona que haya fallado.
- tiempo de caducidad: El tiempo (en segundos) que un servidor secundario seguirá intentando descargar una zona. Cuando haya pasado este tiempo, se rechazará la información antigua de la zona.
- tiempo de vida (TTL): El tiempo (en segundos) que un servidor DNS tiene permitido acumular en la caché cualquier registro del recurso de este archivo de base de datos.
Para que un registro de recurso abarque una línea en un archivo de base de datos, los saltos de línea deben incluirse entre paréntesis. En un archivo de zona, el símbolo ‘@’ representa el dominio raíz de la zona.
Ejemplo Registro SOA
1; número de serie 10800; actualizar [3 horas] 3602; reintentar [1 hora] 604800; caducar [7 días] 86400; tiempo de vida [1 día]
Registro NS
El Registro NS (Name Server o Servidor de Nombres) enumera los servidores de nombres de este dominio, permitiendo que otros servidores de nombres miren los nombres de su dominio.
Su formato es el siguiente:
dominio IN NS nombreservidorhost
Ejemplo Registro NS
@ IN NS ns3.servidoresdns.net. @ IN NS ns4.servidoresdns.net.
Registro MX
El Registro de Intercambio de Correo (Mail eXchange) indica qué host procesa el correo de este dominio. Si existen múltiples registros de intercambio de correo, el resolvedor de nombres intentará ponerse en contacto con los servidores de correo en orden de preferencia, empezando por los valores inferiores (mayor prioridad) hasta el valor superior (menor prioridad). Su formato es el siguiente:
dominio IN MX preferencia servidorcorreohost
Al usar los siguientes registros de ejemplo, el correo enviado a prueba@midominio.com se envía primero a prueba@servidorcorreo0.midominio.com, si es posible, y luego a prueba@servidorcorreo1.midominio.com si servidorcorreo0 no está disponible.
Ejemplo Registro MX
@ IN MX 10 servidorcorreo0 @ IN MX 20 servidorcorreo1
El valor servidorcorreohost debe indicarse a través de un nombre y no de una dirección IP.
Registro CNAME
Los registros CNAME (Canonical Name) se utilizan para crear alias de un nombre de dominio. La utilidad principal de los mismos es la de usar más de un nombre para apuntar a un único host. Esto puede simplificar operaciones como albergar a la vez un servidor FTP y un servidor web en el mismo equipo.
Su formato es el siguiente:
nombrealiashost IN CNAME nombrehost
Ejemplo Registro CNAME
Suponga que www.midominio.com y que ftp.midominio.com se encuentran en el mismo equipo. Si éste es el caso, entonces podría tener las siguientes entradas en su archivo de zona:
servidorarchivos IN A 157.55.200.41 ftp IN CNAME servidorarchivos www IN CNAME servidorarchivos
Registro TXT
Los registros TXT se utilizan para almacenar información de texto arbitraria en un dominio. Estos registros se utilizan para una variedad de propósitos, como proporcionar información de contacto, agregar metadatos a un dominio o implementar funciones de seguridad.
Ejemplo Registro TXT Nombre: mi-sitio-web.com Texto: «Este es mi sitio web»
Registro SRV
Los registros SRV (Service Record) indican la dirección y el puerto de un servicio de red en un dominio. Estos registros se utilizan para apuntar un nombre de dominio a un servidor de servicio, como un servidor de nombres de dominio, un servidor de correo electrónico o un servidor de VoIP.
Ejemplo Registro SRV Nombre: mi-sitio-web.com Prioridad: 10 Peso: 5 Puerto: 5060 Destino: sipserver.mi-sitio-web.com
Seguridad DNS
La seguridad DNS es un tema importante, ya que el DNS es una pieza fundamental de la infraestructura de Internet. Sin un DNS seguro, los usuarios podrían ser redirigidos a sitios web maliciosos o podrían perder el acceso a los recursos en línea que necesitan.
DNSSEC: ¿Qué es y cómo funciona?
DNSSEC (Domain Name System Security Extensions) es un conjunto de extensiones de seguridad que proporciona una mayor seguridad para proteger tu dominio de ataques DNS maliciosos. Su principal objetivo es prevenir la manipulación del DNS, un ataque común que puede llevar a los usuarios a sitios web maliciosos.
DNSSEC funciona mediante la creación de firmas digitales para los registros de recursos DNS. Al verificar que los registros no hayan sido modificados o alterados, DNSSEC fortalece la confiabilidad de la navegación online. Su implementación no solo protege a los usuarios de posibles ataques, sino que también aumenta la credibilidad de tu sitio web y puede tener un impacto positivo en la percepción de los motores de búsqueda sobre la seguridad de tu plataforma.
Amenazas y protección DNS
Hay una serie de ciberamenazas que pueden afectar a la seguridad DNS. Algunas de las amenazas más comunes son:
- Spoofing DNS: Mediante este ataque, los usuarios reciben respuestas DNS falsas. Es decir, los usuarios son redirigidos a sitios web maliciosos con el fin de que instalen software malicioso o que proporcionen datos confidenciales como información personal o datos bancarios. Este método es comúnmente utilizado para ataques de phishing.
- Ataque DDoS: También conocido como ataque de denegación de servicio. DDoS consiste en que el atacante envía un gran número de solicitudes a los servidores. Esto puede sobrecargar los servidores DNS y hacer que no puedan responder a las consultas, provocando su colapso.
Para proteger la seguridad del servidor DNS, hay una serie de medidas a considerar:
- Implementar DNSSEC: Como ya hemos mencionado, es una medida de seguridad importante para añadir una capa de autenticación crucial.
- Utilizar un servidor DNS de confianza: Las organizaciones deben utilizar servidores DNS de confianza que hayan sido probados y certificados para su seguridad.
- Firewalls y filtrado DNS: Son medidas de seguridad para bloquear tráfico malicioso y filtrar consultas sospechosas.
- Monitorización continua del DNS: Se debe monitorizar el tráfico DNS para detectar cambios inusuales y posibles signos de actividad maliciosa.
- Actualización regular: Mantén tus servidores DNS actualizados y parcheados para evitar vulnerabilidades.
Conclusión
En resumen, hemos explorado cómo cada aspecto del servidor DNS puede impactar directamente en la experiencia de los usuarios, desde su configuración y gestión de servidores hasta la implementación de medidas de seguridad como DNSSEC. Así, un DNS robusto y bien configurado demuestra un compromiso con la seguridad y la confiabilidad, aspectos vitales para fortalecer tu sitio web.
Mientras reflexionamos sobre la importancia del DNS, recordemos que el dominio que elijas es la puerta de entrada a tu web. La selección cuidadosa de un nombre de dominio relevante y fácilmente reconocible establece la base para tu marca. A su vez, un hosting web eficiente y confiable es esencial para mantener una experiencia fluida para los visitantes. Estos dos aspectos, combinados con un DNS bien gestionado, forman los pilares que sostienen el éxito de crear una web profesional para tu proyecto online.