Balanceo en DNS

A partir de la version 9 de BIND nos bastaria simplemte con añadir varias entradas "IN A", una para cada servidor, que apunten al mismo nombre, el del servidor que queremos balancear:

www	IN	A	192.168.0.100
www	IN	A	192.168.0.101
www	IN	A	192.168.0.102

Utilizando el comando "host" varias veces podemos ver como se balancean las peticiones dns:

[jadebustos@dedalo ~]$ host www.servidorbalanceado.es
www.servidorbalanceado.es has address 192.168.0.100
www.servidorbalanceado.es has address 192.168.0.101
www.servidorbalanceado.es has address 192.168.0.102
[jadebustos@dedalo ~]$ host www.servidorbalanceado.es
www.servidorbalanceado.es has address 192.168.0.101
www.servidorbalanceado.es has address 192.168.0.102
www.servidorbalanceado.es has address 192.168.0.100
[jadebustos@dedalo ~]$ host www.servidorbalanceado.es
www.servidorbalanceado.es has address 192.168.0.100
www.servidorbalanceado.es has address 192.168.0.101
www.servidorbalanceado.es has address 192.168.0.102
[jadebustos@dedalo ~]$

De esta forma cada vez que se haga una solicitud DNS para www.servidorbalanceado.es se resolverá con una IP diferente, irá rotando.

Este sistema tiene varios inconvenientes:

  1. El primero es que si un servidor cae el DNS no será consciente de ello y el cliente que obtenga la IP del servidor caido como respuesta a su solicitud encontrará que el servicio no esta disponible.

  2. El segundo inconveniente es que con las caches de DNS se cacheará permanente el nombre www.servidorbalanceado.es con una IP especifica, con lo cual todas las peticiones iran a esa IP y no habrá balanceo, pudiendo de esta forma estar uno o varios servidores sobrecargados y el resto muy ligeros.