¿Qué es el equilibrio de carga basado en DNS?

El equilibrio de carga de DNS mejora la disponibilidad y el rendimiento de las aplicaciones al dirigir a los usuarios a varias direcciones IP de un mismo dominio.

Objetivos de aprendizaje

Después de leer este artículo podrás:

  • Definir el equilibrio de carga basado en DNS
  • Explicar cómo funciona el DNS round-robin
  • Entender varias configuraciones de equilibrio de carga basadas en DNS

Copiar enlace del artículo

¿Qué es el equilibrio de carga basado en el sistema de nombres de dominio (DNS)?

Equilibrio de carga es la práctica de distribuir el tráfico entre más de un servidor para mejorar el rendimiento y la disponibilidad. Las organizaciones utilizan diferentes formas de equilibrio de carga para acelerar tanto los sitios web como las redes privadas. Sin el equilibrio de carga, la mayoría de las aplicaciones y sitios web de Internet no manejarían el tráfico con eficacia ni funcionarían correctamente.

Al DNS se le suele denominar como la guía telefónica de Internet, porque traduce los dominios de los sitios web (como google.com o nytimes.com) en direcciones IP. Una dirección IP es una etiqueta numérica larga que los servidores utilizan para identificar los sitios web y cualquier dispositivo conectado a Internet. Al traducir los nombres de dominio a direcciones IP, un proceso llamado resolución de DNS, el DNS evita que la gente tenga que memorizar largas secuencias de números para acceder a sitios web y aplicaciones.

En la resolución de DNS, el navegador de un usuario de Internet se pone en contacto con un servidor DNS para solicitar la dirección IP correcta del sitio web de destino. El acto de solicitar una dirección IP de un dominio se denomina consulta de DNS.

El equilibrio de carga basado en DNS es un tipo específico de equilibrio de carga que utiliza el DNS para distribuir el tráfico entre varios servidores. Lo hace al proporcionar diferentes direcciones IP en respuesta a las consultas de DNS. Los equilibradores de carga pueden utilizar varios métodos o reglas para elegir qué dirección IP compartir en respuesta a una consulta de DNS.

Una de las técnicas más habituales de equilibrio de carga de DNS se llama DNS round-robin.

¿Qué es el DNS round-robin?

El DNS round-robin tiene el mismo objetivo que otros tipos de equilibrio de carga basado en DNS: mejorar el rendimiento y la fiabilidad de un sitio al distribuir el tráfico. Sin embargo, a diferencia de cuando se utiliza un equilibrador de carga especializado basado en software o hardware, el DNS round-robin realiza el equilibrio de carga utilizando un tipo de servidor DNS denominado nombre del servidor autoritativo.

Los servidores de nombres autoritativos tienen registros de DNS llamados registros A o registros AAAA, que contienen el nombre de un dominio y su dirección IP correspondiente. Cuando un cliente envía una consulta de DNS, el objetivo de la consulta es encontrar el registro A (o AAAA). En una configuración básica, un dominio tendrá un único registro A vinculado a una única dirección IP, lo que significa que una consulta de DNS siempre devolverá la misma dirección IP.

Sin embargo, en el DNS round-robin, los dominios tienen varios registros A, cada uno de ellos vinculado a una dirección IP diferente. A medida que llegan las consultas de DNS, las direcciones IP rotan en forma de round-robin, repartiendo las solicitudes entre los servidores asociados.

¿Cómo funciona el DNS round-robin?

Si hay cinco direcciones IP en el DNS round-robin, una consulta de DNS solo devolvería la dirección IP n.º 1 por cada sexta solicitud. Como cada dirección IP corresponde a un servidor diferente, esta configuración reduce la carga de trabajo de cada servidor, lo cual reduce la probabilidad de que se vea sobrecargado por las solicitudes.

Para entender cómo funciona el DNS round-robin, comparemos el acto de visitar un sitio web con el de enviar un correo a una empresa. Supongamos que la empresa utiliza un apartado de correos para recibir el correo de los clientes, pero recibe más correo del que puede manejar su único apartado de correos. Para resolver este problema, la empresa podría adquirir más apartados de correos.

Para que la estrategia de los apartados de correos múltiples funcione, la empresa debe asegurarse de que el correo no sobrecargue ninguno de ellos. Esto significa que la dirección del apartado de correos que aparece cuando los clientes buscan la dirección postal de la empresa tendría que alternarse de forma secuencial. El cliente n.º 1 vería la dirección del apartado de correos n.º 1; después, el cliente n.º 2 vería la dirección del apartado correo n.º 2. Este método ayudaría a reducir la carga de los apartados de correos individuales al aumentar la capacidad global. Sin los buzones adicionales, un solo apartado de correos podría desbordarse fácilmente, lo que retrasaría la llegada de correo.

Al igual que en el ejemplo del apartado de correos, el DNS round-robin protege a los servidores de verse sobrecargados de peticiones, evitando así cualquier retraso en su procesamiento.

¿Qué otros tipos de equilibrio de carga basados en DNS existen?

Aunque el enfoque round-robin es popular, no es el único método para enrutar el tráfico. La mayoría de los equilibradores de carga permiten que los propietarios de los dominios elijan entre varias reglas de enrutamiento de tráfico.

Un ejemplo de configuración de equilibrio de carga basado en el DNS es un algoritmo ponderado por el que se asignan cargas relativas a los distintos servidores en función de su capacidad para gestionar el tráfico. El tráfico se asigna entonces de forma proporcional. Por ejemplo, si el servidor A tiene el doble de capacidad que el servidor B, entonces el equilibrador de carga daría el doble de tráfico al servidor A en relación con el servidor B. Lo haría devolviendo la dirección IP del servidor A en respuesta a las consultas de DNS. El round-robin ponderado o la conexión mínima ponderada son ejemplos de este tipo de algoritmo de equilibrio de carga.

Muchos de los enfoques de equilibrio de carga basados en DNS son dinámicos, lo que significa que los equilibradores de carga tienen en cuenta el estado del servidor y los tiempos de respuesta del mismo cuando se asignan las solicitudes. Los algoritmos dinámicos pueden adoptar muchas formas. "La conexión mínima" es un tipo de algoritmo de equilibrio de carga dinámico. En la configuración de mínima conexión, la supervisión del servidor determina qué servidor tiene menos conexiones abiertas en ese momento, y luego asigna el tráfico entrante a ese servidor proporcionando su dirección IP en respuesta a las consultas de DNS.

La geolocalización es otro algoritmo dinámico que se utiliza habitualmente. En esta configuración, el equilibrador de carga asigna las solicitudes de una región a un servidor o conjunto de servidores definido. Por ejemplo, todas las solicitudes procedentes de Francia podrían ir al "servidor F", y todas las solicitudes procedentes de España podrían ir al "servidor S".

Un algoritmo basado en la proximidad consigue algo similar. En esta configuración, los equilibradores de carga asignan dinámicamente el tráfico al servidor que esté más cerca del usuario.

Los algoritmos dinámicos siguen reglas ligeramente diferentes, pero en el fondo hacen lo mismo: controlar el estado del servidor y optimizar la asignación del tráfico.

¿Cómo funciona el equilibrio de carga basado en DNS de Cloudflare?

El Equilibrio de carga de Cloudflare es una solución de equilibrio de carga basada en DNS que supervisa de forma activa el estado del servidor mediante solicitudes HTTP/HTTPS. Basándose en los resultados de estas comprobaciones de estado, Cloudflare dirige el tráfico hacia los servidores de origen en buen estado y lo aleja de los servidores en mal estado. Equilibrio de carga de Cloudflare también ofrece a los clientes que redireccionan mediante proxy inverso su tráfico la ventaja de seguridad adicional de ocultar la dirección IP de su servidor de origen. Más información sobre el Equilibrio de carga de Cloudflare.