Balanceo de carga con DNS

Si tenéis una aplicación que os permite tener réplicas identicas de vuestros servicios, en diferentes servidores, podéis hacer uso de esta simple técnica, para balancear el tráfico entre todos estos servidores.

Supongamos que tenemos una web con una alta carga de tráfico. El actual servidor que tenemos, se queda lento. Configuraríamos otro idéntico (u otros), que sirviesen el mismo contenido.

El balanceo de carga por dns, es algo tan sencillo como añadir una entrada tipo “A” por cada servidor que vaya a formar parte del grupo.
Tenemos los servidores 10.0.0.10, 10.0.0.20 y 10.0.0.30 que van a servir nuestra web www.example.org.

Tinydns:
En tinydns (djbdns), añadiríamos tres entradas tipo “A”, apuntando a esas ips:

+www.example.org:10.0.0.10
+www.example.org:10.0.0.20
+www.example.org:10.0.0.30

Bind:
La síntaxis de named es la siguiente:

www A 10.0.0.10
www A 10.0.0.20
www A 10.0.0.30

El balanceo Round Robin, toma la lista disponible (10.0.0.10, 10.0.0.20 y 10.0.0.30 en este caso) y sirve una vez cada elemento. En la primera consulta, servirá 10.0.0.10, en la siguiente 10.0.0.20, en la tercera 10.0.0.30, la siguiente 10.0.0.20 y así sucesívamente.
Si un servidor cae, seguirá dando esa ip, no obstante, el cliente tras un tiempo de espera volverá a pedir otra ip. Por lo que tenemos algo de alta disponibilidad también.

Este método de balanceo no tiene en cuenta la carga del servidor, que sea accesible o no, no tiene en cuenta la próximidad geográfica, congestión de la red, etc… Pero es sencillo y rápido de implementar.

Referencias:

Round Robin DNS

bookmark bookmark bookmark bookmark

Dejar una Respuesta.