Guia de processo · DNS redundante
Como funciona alta disponibilidade de DNS: etapas para provedores
Como funciona alta disponibilidade de DNS: dois ou mais servidores em POPs diferentes respondem pelo mesmo endereço, e um teste local retira da rota o servidor que parou de resolver. O projeto anda em cinco etapas, do levantamento ao desligamento proposital de um servidor, e termina com o tempo de troca medido por escrito.
Resumo
- Cada servidor anuncia o mesmo endereço pelo roteamento interno, e o anycast leva a consulta ao mais próximo que está vivo.
- Um script no servidor faz consultas reais a cada poucos segundos e, se a resposta falha, retira o anúncio sozinho.
- O provedor separa acessos, mapa dos POPs, máquinas e janela; o resto do trabalho é desenho, configuração e virada.
- A entrega só vale depois do teste de queda, com o tempo de troca medido e anotado no relatório final.
Como funciona alta disponibilidade de DNS por dentro
Por dentro, a alta disponibilidade de DNS junta três peças: um endereço compartilhado, um protocolo que anuncia esse endereço e um teste que decide se o anúncio continua. Quando o teste falha, o anúncio some e a rede passa a entregar as consultas a outro servidor.
Cada servidor de DNS recebe, numa interface interna, o mesmo endereço que os assinantes usam, por exemplo 192.0.2.53. Um programa de roteamento instalado no próprio servidor, como o BIRD ou o FRR, anuncia esse endereço ao roteador do POP pelo OSPF ou pelo BGP interno.
Os roteadores recebem o mesmo endereço vindo de vários lugares e escolhem o caminho de menor custo. Para o assinante nada muda: ele continua mandando a consulta ao endereço de sempre, e a rede decide qual servidor responde. A Táquion Tech configura essas peças e testa a troca no serviço de alta disponibilidade de DNS.
Assinante
Pergunta ao endereço de sempre
O roteador da casa manda a consulta ao endereço de DNS recebido do concentrador, sem saber quantos servidores existem.
Roteador do POP
Escolhe o servidor mais perto
Entre os anúncios recebidos pelo OSPF, segue o de menor custo, quase sempre o servidor do próprio POP.
Servidor de DNS
Resolve e responde
Devolve a resposta do cache ou consulta a internet e guarda o resultado para as próximas perguntas.
Checagem de saúde
Testa o serviço sem parar
Faz uma consulta real ao DNS local; se ela falha, desliga o anúncio e o servidor sai da rota.
Outro POP
Assume as consultas
O roteador passa a seguir o próximo anúncio e as perguntas vão ao servidor vivo, sem mexer no assinante.
Quando o servidor volta a responder, a checagem religa o anúncio e o tráfego retorna ao POP de origem, também sem intervenção.
O que a checagem de saúde testa de fato
A checagem pergunta ao DNS local por um nome conhecido e confere se veio resposta válida dentro de um tempo curto. Ver se a máquina responde ao ping não basta, porque o processo do DNS pode estar travado com a máquina ligada.
O trecho abaixo mostra a ideia num servidor Linux com BIRD 2: o endereço fica na interface de loopback, o OSPF exporta só ele e um script liga ou desliga o anúncio conforme o resultado da consulta.
# /etc/bird/bird.conf (trecho)
protocol direct anycast {
ipv4;
interface "lo";
}
protocol ospf v2 interno {
ipv4 { export where net = 192.0.2.53/32; };
area 0 { interface "ens18" { cost 10; }; };
}
# /usr/local/bin/checa-dns.sh, chamado pelo agendador a cada poucos segundos
if dig @192.0.2.53 example.com +time=1 +tries=1 | grep -q "status: NOERROR"; then
birdc enable anycast
else
birdc disable anycast
fi
O filtro de exportação é tão importante quanto o script. Ele garante que o servidor só anuncie o endereço do DNS, e o roteador do POP também aceita só esse endereço vindo dele.
Por que o assinante não percebe a troca?
Porque o endereço que ele usa nunca muda: só muda o servidor por trás dele. A troca leva o tempo que o roteamento interno precisa para esquecer um anúncio e seguir o outro, que fica em poucos segundos num desenho ajustado [CONFIRMAR no teste do seu caso].
Bem diferente é entregar dois endereços ao cliente e deixar o roteador da casa decidir. Nesse modelo, cada consulta espera o primeiro servidor falhar antes de tentar o segundo, e o assinante sente a demora em toda página que abre.
As cinco etapas do projeto, na ordem em que acontecem
O projeto segue cinco etapas, e cada uma só começa quando a anterior deixou um entregável conferido. A tabela mostra o que acontece em cada uma, o peso dela no calendário e o que fica pronto no fim.
| Etapa | O que acontece | Peso no calendário | O que fica pronto |
|---|---|---|---|
| 1. Levantamento | Acesso aos servidores e roteadores, leitura do roteamento interno e do jeito como o cliente recebe o DNS | Curto, se os acessos chegam no primeiro dia | Mapa do DNS atual e lista do que precisa mudar |
| 2. Desenho | Escolha dos POPs, do endereço anycast IPv4 e IPv6, do protocolo de anúncio e dos tempos da checagem | Curto | Diagrama aprovado pelo provedor |
| 3. Servidores e anúncio | DNS configurado em cada ponto, programa de roteamento, filtros nos roteadores e script de checagem | Médio, cresce com o número de POPs | Endereço anunciado e respondendo em todos os pontos |
| 4. Virada | Concentradores e servidores DHCP passam a entregar o endereço novo, um pool por vez | O mais longo, porque depende das janelas | Toda a base usando o endereço redundante |
| 5. Teste de queda | Um servidor é desligado e outro tem o processo do DNS parado, com o tempo de troca cronometrado | Curto | Relatório com os tempos medidos |
Os prazos em dias dependem do número de POPs e de pools e saem na proposta: [PREENCHER prazo típico por etapa]. O que se mantém em qualquer rede é a proporção: a virada costuma ocupar mais calendário que todas as outras etapas juntas, porque cada pool muda numa janela combinada.
Por que a virada vem depois do anúncio pronto
A virada só começa quando o endereço novo já responde em todos os POPs. Assim, o assinante que muda de endereço cai num serviço que já está redundante desde a primeira consulta.
Durante a virada, o servidor antigo continua ligado e atendendo quem ainda não mudou. Se um pool apresentar problema, ele volta ao endereço anterior sem afetar os outros, e a causa é corrigida antes do próximo.
O que o provedor precisa preparar antes da primeira etapa?
O provedor prepara acessos, informações da rede e a máquina de cada POP. Quanto mais completo esse material chega, mais curto fica o levantamento.
Separe antes da reunião de início
- Acesso de leitura aos roteadores dos POPs e ao concentrador PPPoE ou servidor DHCP.
- Acesso administrativo ao servidor de DNS atual, se ele existir.
- Um diagrama, mesmo simples, de como os POPs se ligam entre si.
- Uma máquina física ou virtual em cada POP que vai receber o DNS, com energia de reserva.
- A lista de pools de endereços e de onde cada um recebe o DNS hoje.
- Duas ou três janelas possíveis para a virada, fora do horário de pico.
- O nome de quem da equipe acompanha o teste de queda.
Com os sete itens prontos, o levantamento vira conferência. Se faltam o diagrama ou as máquinas, eles entram como primeira tarefa e o calendário anda um pouco mais devagar.
Se o provedor ainda não tem DNS próprio, a primeira implantação vem antes, na implantação de DNS recursivo. E quem quer entender o que muda o valor do projeto encontra a conta separada no guia sobre quanto custa alta disponibilidade de DNS.
Quer saber se a sua rede já está pronta para o anycast?
Um Especialista lê o roteamento interno e o DNS atual no levantamento e devolve o desenho com o que precisa mudar antes da virada.
Quando o roteamento interno precisa de preparo
O anycast depende de roteamento dinâmico entre os POPs. Se a rede ainda usa só rotas estáticas, o endereço não muda de servidor sozinho, e o OSPF ou o BGP interno precisam subir antes.
O guia de configuração de OSPF mostra como esse roteamento é montado. A Táquion Tech confere esse ponto no levantamento e avisa, antes do desenho, se há preparo de rede a fazer.
Erros que aparecem em cada etapa e como perceber cedo
Cada etapa tem uma falha típica, e quase todas dão sinal antes de virar queda. A lista abaixo liga o erro ao sintoma que denuncia o problema.
- Levantamento: um concentrador esquecido continua entregando o DNS antigo. Aparece depois da virada, quando parte da base ainda consulta o servidor único.
- Desenho: dois servidores colocados em POPs que dependem da mesma fibra ou do mesmo nobreak. A falha só se mostra na primeira queda de energia.
- Anúncio: o servidor anuncia mais do que o endereço do DNS por falta de filtro. Rotas estranhas surgem na tabela do roteador do POP.
- Checagem: o teste olha só se a máquina responde. No teste de queda, o processo parado continua recebendo consultas e o tempo de troca não aparece.
- Virada: o pool muda sem que o endereço novo responda naquele POP. Os chamados de internet sem abrir sites crescem logo depois da janela.
Quase todos esses sinais aparecem nos alertas de saída e volta de servidor, ou na contagem de consultas por POP. Um servidor que nunca recebe consulta, ou que recebe todas, indica custo de rota mal ajustado.
Evite estes atalhos na pressa de terminar
Os atalhos abaixo economizam uma tarde no projeto e costumam custar uma noite de chamados depois.
Atalhos que deixam a redundância só no papel
- Pular o teste de queda porque o anúncio já aparece nos roteadores.
- Virar todos os pools na mesma janela para encerrar o projeto mais cedo.
- Copiar a configuração de um servidor para os outros sem conferir endereço e filtro.
- Deixar o servidor antigo desligado antes de a virada terminar.
Como o suporte percebe que o DNS falhou
O sinal clássico é o assinante conectado, com sinal bom e sessão ativa, que não abre nada. O roteiro de rede do provedor caiu ajuda o N2 a separar esse caso de uma queda de link.
Exemplo de como funciona alta disponibilidade de DNS num provedor com dois POPs
Um provedor hipotético com dois POPs, um na sede e outro na cidade vizinha, mostra o caminho do começo ao fim. O DNS dele rodava num servidor só, na sede.
- Levantamento: o Especialista encontra OSPF rodando entre os dois POPs, um servidor Unbound na sede e dois concentradores entregando o endereço 198.51.100.10 aos assinantes.
- Desenho: fica definido o endereço anycast 192.0.2.53, com o par IPv6 em 2001:db8::53, servidor na sede e máquina virtual nova no POP vizinho, e checagem a cada poucos segundos.
- Servidores e anúncio: o segundo servidor recebe o mesmo DNS, os dois passam a anunciar o endereço pelo OSPF e os roteadores ganham filtro para aceitar só esse endereço vindo deles.
- Virada: em duas janelas, cada concentrador passa a entregar 192.0.2.53, e o servidor antigo segue respondendo em 198.51.100.10 para quem ainda tinha a sessão aberta.
- Teste de queda: o servidor da sede é desligado, e as consultas da sede passam ao POP vizinho; depois, só o processo do DNS é parado, e a checagem retira o anúncio do mesmo jeito.
- Entrega: o relatório traz os dois tempos de troca medidos, o diagrama com endereços e filtros e o roteiro de atualização, um POP por vez.
O que o provedor recebe no fim e o que fica com a equipe
O provedor recebe o DNS respondendo pelo endereço redundante, o relatório do teste de queda e a documentação para operar sem depender de quem montou. A operação do dia a dia fica com a equipe da casa ou com um monitoramento contratado.
- Diagrama: POPs, servidores, endereços IPv4 e IPv6, filtros e custos de rota, num formato que a equipe consegue atualizar.
- Relatório do teste: o tempo de troca com a máquina desligada e com o processo parado, medidos no dia.
- Roteiro de atualização: a ordem dos POPs e o que conferir em cada um antes de seguir.
- Alertas configurados: aviso quando um servidor sai da rota e quando volta, com o horário de cada evento.
A alta disponibilidade de DNS exige que alguém olhe esses alertas depois da entrega. Quem não tem equipe para isso pode ligar o projeto ao monitoramento de rede, e o guia sobre como fazer monitoramento de rede mostra o que acompanhar.
Quando vale repetir o teste de queda?
Vale repetir sempre que algo no caminho da consulta muda: roteador novo no POP, ajuste no OSPF, troca de versão do DNS ou servidor novo. O teste é o único jeito de saber que a troca continua funcionando.
Uma vez por ano, mesmo sem mudanças, o teste confirma que ninguém desligou a checagem ou alterou um filtro sem avisar.
Perguntas frequentes
O cache se perde quando a consulta muda de servidor?
Cada servidor tem o próprio cache, então as primeiras consultas no servidor que assumiu podem demorar um pouco mais se ele ainda não tiver aquele nome guardado. Como os dois atendem tráfego no dia a dia, os nomes mais usados costumam estar no cache dos dois.
Dá para montar a redundância sem desligar o DNS atual?
Dá, e é assim que o projeto costuma ser feito. O servidor atual segue atendendo no endereço antigo enquanto o endereço redundante é montado, e os pools mudam um por vez.
O servidor de DNS pode ser uma máquina virtual?
Pode, desde que a máquina física por baixo esteja no POP certo e tenha energia de reserva. O que não pode é colocar as duas máquinas virtuais no mesmo hospedeiro, porque a falha dele derrubaria as duas.
A checagem de saúde também vale para o IPv6?
Vale, e precisa ser feita separada. O endereço IPv6 tem anúncio próprio, e a checagem deve testar a resposta por ele, porque um servidor pode responder em IPv4 e falhar em IPv6.
Quem atualiza os servidores depois que o projeto termina?
A equipe do provedor, seguindo o roteiro de atualização entregue, ou um serviço contratado para isso. O ponto principal é atualizar um POP por vez e conferir os alertas antes de seguir.
Fontes
- RFC 4786, Operation of Anycast Services: como operar serviços anycast, incluindo a retirada do anúncio quando o serviço local falha
- BIRD Internet Routing Daemon, documentação: configuração dos protocolos direct e OSPF e do comando birdc usados no exemplo