Redundância com vários servidores no mesmo DNS

Redundância com vários servidores no mesmo DNS

Eu tenho um nome de domínio como api.test.com. Eu também tenho três servidores.

Quero ter redundância entre eles e, portanto, se um servidor estiver offline, o nome de domínio api.test.comnão será redirecionado para ele, mas apenas para outros.

Descobri que podemos ter vários A/ AAAAregistros no mesmo nome de domínio, mas não leva em conta se o computador faz ping ou não, apenas fornece aleatoriamente um de todos os IP disponíveis.

Como posso fazer para ter redundância com isso? Devo obter outro servidor que redirecione todas as solicitações, como um proxy?

Responder1

Não, não é assim que funciona. Você pode configurar mais de um registro de algum tipo e nome em uma zona. O cliente geralmente não tem conhecimento disso; ele solicita um determinado nome e tipo (por exemplo, um navegador solicita um nome que você digitou na caixa de endereço, do tipo A, AAAA).

Se mais de um registro for retornado, ele escolhe um aleatoriamente e tenta se conectar a ele. Cabe ao cliente tentar novamente se conectar a outro registro, se ele estiver lá. Os servidores também incentivam esse comportamento, respondendo à mesma consulta com diferentes ordenações de registros a cada vez. Portanto, mesmo que algum cliente "sempre escolha o primeiro", a randomização no servidor ainda ocorre. Desta forma, uma forma primitiva de balanceamento de carga é alcançada.

Balanceadores de carga DNS especiais retornam registros A com TTL muito baixo, portanto, expiram rapidamente; o servidor pode, portanto, reagir rapidamente a picos repentinos de carga ou a interrupções de nós de back-end, omitindo seus endereços nas respostas. Você pode ver isso em ação se tentar resolver os servidores de videoconferência do Zoom; eles usam essa tecnologia. Mas isso requer um software especial, um balanceador de carga DNS, para gerenciar um DNS para esse nome, e isso é apenas o começo da história.

Geralmente, se o IP recebido pela primeira vez no registro A não responder, os clientes da Web geralmente retornarão falha, mesmo que haja outros IPs para tentar. Existem softwares que realmente tentam novamente, por exemplo, o OpenVPN pode tentar novamente indefinidamente, mas este é um caso especial.


O DNS fornece redundância por meio de um mecanismo totalmente diferente, novamente, esperando um cliente suficientemente inteligente. Existem tipos especiais de registro DNS, chamadosSRV(serviço), que possui 4 campos de dados: prioridade, peso, porta, nome.

O nome é mais simples: o nome do registro A que este registro SRV descreve. Porta é a porta TCP ou UDP na qual o serviço solicitado reside no servidor com esse nome. Deve ser um nome que tenha registro A ou AAAA associado; CNAME não é permitido. Se houver mais de um registro A ou AAAA com esse nome, teremos o comportamento DNS usual de "tentar uma vez" para esse registro SRV específico (mas o cliente deve tentar outros registros SRV, se houver algum, por exemplo, com valores de prioridade mais altos).

O peso permite um controle mais profundo do balanceamento de carga: caso existam vários registros com a mesma prioridade, o cliente deve tentar distribuir a carga de acordo com seus pesos. Muitas vezes é feito de forma probabilística.

A prioridade é para redundância: primeiro os registros com valor mais baixo devem ser tentados, depois os próximos com prioridade e assim por diante. Mas, novamente, tentar novamente depende do cliente.

O registro se parece com:

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

Os sublinhados são sublinhados literais no nome do registro. Diz que o serviço "kerberos" é servido por TCP na porta 88 de dc.example.net. dc.example.net deve ser um registro A ou AAAA. Este exemplo é do MS Active Directory, que depende fortemente do DNS para operação adequada e o utiliza para ldap (diretório) e Kerberos (estrutura de segurança). Se você tiver mais de um controlador de domínio AD, haverá mais registros desse tipo, apontando para DCs diferentes.

Este tipo de registro é usado, por exemplo, para ldap, kerberos, kpasswd (alteração de senha Kerberos), xmpp (jabber), sip (telefonia IP) ealgum outroServiços.

MXé como um “caso especial de SRV”, que está vinculado à porta 25 e só possui campo “prioridade”, sem “peso”. É apenas um “estilo antigo”, que foi inventado antes do SRV (e que o inspirou). E é usado apenas para e-mail.

A SRV não pode ajudá-lo com serviços da web. Ajuda apenas para serviços onde o cliente sabe usar o registro SRV para descobrir o servidor; clientes da web nunca fazem isso.

informação relacionada