Configuración de los resolvers mediante /etc/resolv.conf
Mediante el fichero /etc/resolv.conf podemos indicar los resolvers DNS que va a utilizar un determinado equipo. Hoy veremos como funciona por defecto con un conjunto de resolvers y como configurarlo en round-robin.
Suponiendo el siguiente fichero /etc/resolv.conf
# cat /etc/resolv.conf nameserver 10.10.10.1 nameserver 10.10.10.50
Podemos probar de realizar un conjunto de resoluciones con un wget:
$ wget barrapunto.com slashdot.com www.google.com systemadmin.es www.securitybydefault.com -O /dev/null
Y mediante una captura con tcpdump veremos que solo se esta utilizando el primer resolver para todas las resoluciones:
07:27:59.854773 IP 172.25.10.10.12484 > 10.10.10.1.53: 3117+ A? slashdot.com. (30) 07:27:59.854870 IP 172.25.10.10.1346 > 10.10.10.1.53: 558+ A? barrapunto.com. (32) 07:27:59.855754 IP 172.25.10.10.9763 > 10.10.10.1.53: 11000+ A? www.google.com. (32) 07:27:59.856602 IP 172.25.10.10.5931 > 10.10.10.1.53: 16780+ A? systemadmin.es. (32) 07:27:59.856661 IP 172.25.10.10.10162 > 10.10.10.1.53: 32440+ A? www.securitybydefault.com. (43)
En el caso que el primero no responda se preguntará al segundo resolver, podemos apreciarlo en la siguiente captura:
07:32:11.312342 IP 172.25.10.10.28585 > 10.10.10.1.53: 20172+ A? systemadmin.es. (32) 07:32:11.312427 IP 172.25.10.10.1098 > 10.10.10.1.53: 52733+ A? barrapunto.com. (32) 07:32:11.312585 IP 172.25.10.10.1824 > 10.10.10.1.53: 445+ A? www.google.com. (32) 07:32:11.313421 IP 172.25.10.10.50970 > 10.10.10.1.53: 64086+ A? slashdot.com. (30) 07:32:11.314551 IP 172.25.10.10.18814 > 10.10.10.1.53: 39776+ A? www.securitybydefault.com. (43) 07:32:11.316845 IP 172.25.10.10.18025 > 10.10.10.50.53: 20172+ A? systemadmin.es. (32) 07:32:11.316934 IP 172.25.10.10.16862 > 10.10.10.50.53: 52733+ A? barrapunto.com. (32) 07:32:11.317004 IP 172.25.10.10.12101 > 10.10.10.50.53: 445+ A? www.google.com. (32) 07:32:11.317070 IP 172.25.10.10.27958 > 10.10.10.50.53: 64086+ A? slashdot.com. (30) 07:32:11.318769 IP 172.25.10.10.37662 > 10.10.10.50.53: 39776+ A? www.securitybydefault.com. (43)
Añadiendo la opción rotate mediante la siguiente línea en el /etc/resolv.conf conseguiremos que los resolvers se escojan round-robin, por lo que repartiremos la carga de resolver entre todos los resolvers disponibles y no solo el primero:
options rotate
Podemos apreciarlo en la siguiente captura con el mismo wget de antes:
07:37:42.016375 IP 172.25.10.10.40286 > 10.10.10.1.53: 1879+ AAAA? barrapunto.com. (32) 07:37:42.019970 IP 172.25.10.10.29935 > 10.10.10.50.53: 55782+ AAAA? barrapunto.com. (32) 07:37:42.023877 IP 172.25.10.10.35834 > 10.10.10.1.53: 33748+ A? barrapunto.com. (32) 07:37:42.344740 IP 172.25.10.10.62013 > 10.10.10.50.53: 13438+ AAAA? slashdot.com. (30) 07:37:42.349900 IP 172.25.10.10.19915 > 10.10.10.1.53: 43548+ AAAA? slashdot.com. (30) 07:37:42.353891 IP 172.25.10.10.56506 > 10.10.10.50.53: 41736+ A? slashdot.com. (30) 07:37:42.636144 IP 172.25.10.10.51700 > 10.10.10.1.53: 20405+ AAAA? slashdot.org. (30) 07:37:42.641787 IP 172.25.10.10.38818 > 10.10.10.50.53: 42958+ AAAA? slashdot.org. (30) 07:37:42.647787 IP 172.25.10.10.19093 > 10.10.10.1.53: 16082+ A? slashdot.org. (30) 07:37:43.770590 IP 172.25.10.10.62808 > 10.10.10.50.53: 55668+ AAAA? www.google.com. (32) 07:37:43.773929 IP 172.25.10.10.22766 > 10.10.10.1.53: 28565+ A? www.google.com. (32) 07:37:43.882333 IP 172.25.10.10.26758 > 10.10.10.50.53: 24896+ AAAA? www.google.es. (31) 07:37:43.885939 IP 172.25.10.10.33413 > 10.10.10.1.53: 4747+ A? www.google.es. (31) 07:37:43.994565 IP 172.25.10.10.30749 > 10.10.10.50.53: 16844+ AAAA? systemadmin.es. (32) 07:37:43.998228 IP 172.25.10.10.10737 > 10.10.10.1.53: 52966+ AAAA? systemadmin.es. (32) 07:37:44.001916 IP 172.25.10.10.29251 > 10.10.10.50.53: 2750+ A? systemadmin.es. (32) 07:37:44.726485 IP 172.25.10.10.9705 > 10.10.10.1.53: 56742+ AAAA? www.securitybydefault.com. (43) 07:37:44.729963 IP 172.25.10.10.21520 > 10.10.10.50.53: 21846+ A? www.securitybydefault.com. (43)
Esto se aplica por proceso, por lo que si por ejemplo usamos un for para realizar varias resoluciones con un ping, por ejemplo:
for i in barrapunto.com slashdot.com www.google.com systemadmin.es www.securitybydefault.com; do ping -c1 $i; done
Veremos que solo usa el primer resolver, ya que quien realiza la resolución es el comando ping y muere inmediatamente, por lo que de nuevo usa el primer resolver al siguiente loop.
Deja un comentario: