El DNS por turnos es una técnica de distribución de carga , equilibrio de carga o tolerancia a fallas que proporciona varios hosts de servicios de protocolo de Internet redundantes , por ejemplo, servidor web , servidores FTP , mediante la gestión de las respuestas del Sistema de nombres de dominio (DNS) a las solicitudes de direcciones. desde los equipos cliente de acuerdo con un modelo estadístico apropiado. [1]
En su implementación más simple, el DNS por turnos funciona respondiendo a las solicitudes de DNS no solo con una única dirección IP potencial , sino con una lista de direcciones IP potenciales correspondientes a varios servidores que albergan servicios idénticos. [2] [3] El orden en el que se devuelven las direcciones IP de la lista es la base del término round robin . Con cada respuesta de DNS, se permuta la secuencia de direcciones IP en la lista . [4] Tradicionalmente, los clientes IP inicialmente intentan conexiones con la primera dirección devuelta por una consulta DNS, [5] de modo que en diferentes intentos de conexión, los clientes recibirían servicio de diferentes proveedores, distribuyendo así la carga total entre servidores.
Algunos resolutores intentan reordenar la lista para dar prioridad a redes numéricamente "más cercanas". Este comportamiento se estandarizó durante la definición de IPv6 y se le atribuyó la derrota del equilibrio de carga por turnos. [6] [7] [8] Algunos clientes de escritorio prueban direcciones alternativas después de un tiempo de espera de conexión de hasta 30 segundos. [2]
El DNS por turnos se utiliza a menudo para equilibrar la carga de solicitudes entre varios servidores web . Por ejemplo, una empresa tiene un nombre de dominio y tres copias idénticas del mismo sitio web que residen en tres servidores con tres direcciones IP. El servidor DNS se configurará para que el nombre de dominio tenga varios registros A, uno para cada dirección IP. Cuando un usuario accede a la página de inicio, se enviará a la primera dirección IP. El segundo usuario que acceda a la página de inicio será enviado a la siguiente dirección IP y el tercer usuario será enviado a la tercera dirección IP. En cada caso, una vez que se da la dirección IP, va al final de la lista. Por lo tanto, el cuarto usuario será enviado a la primera dirección IP y así sucesivamente.
En raras ocasiones, un nombre DNS de operación por turnos se denomina "rotor" debido a la rotación entre registros alternativos A.
Inconvenientes
Aunque es fácil de implementar, el DNS por turnos tiene una serie de inconvenientes, como los que surgen del almacenamiento en caché de registros en la propia jerarquía del DNS, así como el almacenamiento en caché y la reutilización de direcciones del lado del cliente, cuya combinación puede ser difícil de administrar. No se debe confiar únicamente en el DNS de operación por turnos para la disponibilidad del servicio. Si falla un servicio en una de las direcciones de la lista, el DNS continuará distribuyendo esa dirección y los clientes seguirán intentando comunicarse con el servicio que no funciona.
Es posible que el DNS por turnos no sea la mejor opción para el equilibrio de carga por sí solo, ya que simplemente alterna el orden de los registros de direcciones cada vez que se consulta un servidor de nombres. Debido a que no toma en consideración el tiempo de transacción, la carga del servidor y la congestión de la red, funciona mejor para servicios con una gran cantidad de conexiones distribuidas uniformemente a servidores de capacidad equivalente. De lo contrario, solo carga la distribución . [9]
Existen métodos para superar tales limitaciones. Por ejemplo, los servidores DNS modificados (como lbnamed [10] ) pueden sondear de forma rutinaria los servidores reflejados para determinar la disponibilidad y el factor de carga. Si un servidor no responde como se requiere, el servidor se puede eliminar temporalmente del grupo de DNS, hasta que informe que está operando nuevamente dentro de las especificaciones.
Referencias
- ^ "DNS por turnos" . Cloudflare . Cloudflare, Inc . Consultado el 16 de agosto de 2019 .
- ^ a b Feenberg, Daniel (25 de julio de 2016). "DNS round robin para la conmutación por error del servidor web" . Consultado el 10 de enero de 2020 .
- ^ "¿Cuál es la diferencia entre una política de enrutamiento de respuesta de varios valores y una política de enrutamiento simple?" . Amazon Web Services, Inc . 3 de agosto de 2018 . Consultado el 10 de enero de 2020 .
- ^ Liska, A .; Stowe, G. (2016). "Comprensión del DNS". Seguridad DNS . pag. 19.
- ^ Pan, Jianping; Hou, Y. Thomas; Li, Bo (2003). "Una descripción general de las selecciones de servidores basados en DNS en redes de distribución de contenido". Redes informáticas . 43 (6): 695–711. doi : 10.1016 / S1389-1286 (03) 00293-7 .
- ^ "getaddrinfo con DNS round robin y ojos felices" .
- ^ "RFC 6724 - Selección de dirección predeterminada para el protocolo de Internet versión 6 (IPv6)" .
- ^ "La regla 9 para IPv4 causó serios problemas operativos (¡fallaron los sitios ftp [de Debian Linux]!" .
- ^ Brisco, Thomas P. (abril de 1995). "RFC 1794 - Soporte DNS para equilibrio de carga" . Consultado el 24 de agosto de 2019 .
- ^ lbnamed , un servidor DNS con equilibrio de carga implementado en el lenguaje de programación Perl