Redudancia con múltiples servidores en el mismo DNS

Redudancia con múltiples servidores en el mismo DNS

Tengo un nombre de dominio como api.test.com. También tengo tres servidores.

Quiero tener redudación entre entonces, por lo que si un servidor está fuera de línea, el nombre de dominio api.test.comno se redireccionará a él, sino solo a otros.

Descubrí que podemos tener varios registros A/ AAAAen el mismo nombre de dominio, pero no tiene en cuenta si la computadora hace ping o no, simplemente proporcione aleatoriamente una de todas las IP disponibles.

¿Cómo puedo hacer para tener redundancia con él? ¿Debería conseguir otro servidor que redirija todas las solicitudes, como un proxy?

Respuesta1

No, así no es como funciona. Puede configurar más de un registro de algún tipo y nombre en una zona. El cliente generalmente no es consciente de ello; solicita un determinado nombre y tipo (por ejemplo, un navegador solicita un nombre que usted ingresó en el cuadro de dirección, de tipo A, AAAA).

Si se devuelve más de un registro, elige uno al azar e intenta conectarse allí. Depende del cliente volver a intentar conectarse a otro registro si está allí. Los servidores también fomentan este comportamiento, respondiendo la misma consulta con un orden de registros diferente cada vez. Entonces, incluso si algún cliente "siempre elige el primero", la aleatorización en el servidor aún se lleva a cabo. De esta manera se consigue una forma primitiva de equilibrio de carga.

Los balanceadores de carga DNS especiales devuelven registros A con un TTL muy bajo, por lo que caducan rápidamente; Por lo tanto, el servidor puede reaccionar rápidamente ante picos repentinos de carga o ante interrupciones de los nodos backend, omitiendo sus direcciones en las respuestas. Puede ver esto en acción si intenta resolver los servidores de videoconferencia de Zoom; utilizan esta tecnología. Pero eso requiere este software especial, un balanceador de carga de DNS, para administrar un DNS para este nombre, y esto es solo el comienzo de la historia.

Generalmente, si la IP intentada por primera vez recibida en el registro A no responde, los clientes web generalmente devuelven un error, incluso si hubiera otras IP para probar. Hay software que realmente lo vuelve a intentar, por ejemplo, OpenVPN podría volver a intentarlo indefinidamente, pero este es un caso especial.


DNS proporciona redundancia mediante un mecanismo completamente diferente, esperando nuevamente un cliente lo suficientemente inteligente. Hay un tipo especial de registro DNS, llamadoSRV(servicio), que tiene 4 campos de datos: prioridad, peso, puerto, nombre.

El nombre es el más simple: el nombre del registro A que describe este registro SRV. Puerto es el puerto TCP o UDP en el que reside el servicio solicitado en el servidor de ese nombre. Debe ser un nombre que tenga asociado un registro A o AAAA; CNAME no está permitido. Si hay más de un registro A o AAAA con ese nombre, tendremos el comportamiento DNS habitual de "intentar una vez" para este registro SRV en particular (pero el cliente debe probar otros registros SRV si los hay, por ejemplo, con valores de prioridad más altos).

El peso permite un control más profundo del equilibrio de carga: si hay varios registros con la misma prioridad, el cliente debe intentar distribuir la carga según sus pesos. A menudo se hace de forma probabilística.

La prioridad es por redundancia: primero se deben probar los registros con el valor más bajo, luego la siguiente prioridad y así sucesivamente. Pero nuevamente, volver a intentarlo depende del cliente.

El registro se ve así:

_kerberos._tcp.example.net. SRV 0 100 88 dc.example.net.

Los guiones bajos son realmente guiones bajos literales en el nombre del registro. Dice que el servicio "kerberos" se sirve a través de TCP en el puerto 88 de dc.example.net. dc.example.net debe tener registros A o AAAA. Este ejemplo es de MS Active Directory, que depende en gran medida de DNS para su correcto funcionamiento y lo utiliza para ldap (directorio) y kerberos (marco de seguridad). Si tiene más de un controlador de dominio AD, habrá más registros de este tipo, que apuntarán a diferentes DC.

Este tipo de registros se utiliza, por ejemplo, para ldap, kerberos, kpasswd (cambio de contraseña de kerberos), xmpp (jabber), sip (telefonía IP) yalgún otroservicios.

MXes como un "caso especial de SRV", que está vinculado al puerto 25 y solo tiene un campo de "prioridad", sin "peso". Es simplemente un "estilo antiguo", que se inventó antes de SRV (y que lo inspiró). Y se utiliza sólo para correo electrónico.

SRV no puede ayudarle con los servicios web. Sólo ayuda para servicios donde el cliente sabe usar el registro SRV para descubrir el servidor; Los clientes web nunca hacen esto.

información relacionada