Configuração de redundância simples usando dois servidores em dois datacenters diferentes? [fechadas]

2

Escopo da pergunta

Esta questão é apenas sobre a obtenção de um cliente solicitando um domínio: example.com para um dos dois servidores disponíveis. Como ele é tratado a partir daí, é outro problema a ser resolvido e, portanto, não deve ser mencionado em uma resposta.

Ferramentas disponíveis

Minhas ferramentas disponíveis são dois servidores dedicados ( server A e server B ) distribuídos em dois datacenters diferentes ( data center A e data center B ) localizados em outro local físico. O endereço IP puramente fictício de server A é representado como a.a.a.a e o endereço IP de server B é representado como b.b.b.b . Ambos os servidores vêm com uma distribuição Linux que não importa realmente.

Como quero levar as coisas sob meu controle, não desejo usar nenhum serviço de terceiros (DNS gerenciado, CDN, etc.). Assim, estas são minhas únicas ferramentas.

O objetivo

O desastre com que estou contando é uma bomba de hidrogênio aniquilando um dos dois datacenters usados uma semana depois de configurar as coisas corretamente em ambos os servidores. Eu quero que meu domínio example.com esteja sempre disponível, embora eu não me preocupe por alguns segundos ou talvez até mesmo alguns minutos de inatividade, já que os servidores são tão confiáveis que podem nem mesmo falhar mais de uma vez por ano. Além disso, uma página simples mostrando que "estamos ocupados resolvendo o problema" pode estender esse tempo de inatividade aceitável para uma hora ou mais.

Minha solução fixa

Já passou algum tempo desde que fiz esta pergunta e agora tenho uma configuração redundante razoável. Como está fechado, não posso postar isso como uma resposta: (

Ambos os servidores têm registros DNS iguais para o domínio example.com :

# DNS records for both server A and server B
example.com. NS ns1a.example.com.
example.com. NS ns1b.example.com.
example.com. NS ns2a.example.com.
example.com. NS ns2b.example.com.
ns1a.example.com. A a.a.a.a
ns2a.example.com. A a.a.a.a
ns1b.example.com. A b.b.b.b
ns2b.example.com. A b.b.b.b
www.example.com. CNAME example.com.
example.com. A a.a.a.a
example.com. A b.b.b.b

Ambos os servidores têm scripts em execução para verificar a disponibilidade a cada minuto. Os dois servidores são servidores de nome do domínio exemplo.com, portanto, eles podem alterar os registros DNS. Em caso de problemas, o servidor que ainda está online detectará isso e removerá o outro servidor dos registros DNS. Além disso, enquanto o outro servidor ainda está nos registros DNS, os navegadores retornarão automaticamente ao outro servidor dentro de 2 segundos (testado com o Mozilla Firefox)! Qual é um recurso realmente útil.

Porque server A tinha 'autoridade' sobre example.com Eu não sabia como adicionar server B como controle do DNS. Acontece que você pode simplesmente adicionar registros para qualquer domínio, mas eles só são respeitados se quem registrou o domínio primeiro com registros DNS adiciona este servidor como um servidor de nomes com 'NS' nos registros DNS.

Espero que isso seja de alguma utilidade para alguém com um problema semelhante.

    
por Yeti 03.10.2013 / 13:05

1 resposta

1

Impossível. Simplesmente assim. DNS não é feito para isso.

Você pode fingir se:

  • Você mantém seu DNS TTL em uma quantidade ridiculamente baixa, invalidando basicamente todo o armazenamento em cache de acordo com a RFC - não "legal" para a maioria dos domínios que "exigem" um mínimo de TTL
  • Use um script no serviço de backup para verificar se o principal está desativado (ping morre etc.) e, em seguida, altere automaticamente as entradas de DNS no domínio.

O DNS, por si só, não possui mecanismos de HA - ele distribui respostas em round robin, e eles são armazenados em cache, então normalmente leva TIME para cair.

A HA é manipulada tendo OS AMBOS servidores usando o SAME IP - para o qual você exige MUITO mais de um endereço IP (existem limitações técnicas) e então usando protocolos de roteamento para que esse IP caia para o outro centro de dados. p>

1: Não

2: Você me diz. Logicamente, o espaço de endereço IP do Data Center B torna-se inacessível. Isso é tudo - nada mais acontece para o DNS, as pessoas ainda vão lá para se conectar ao servidor.

3: Você me diz. Logicamente, o espaço de endereços IP do Data Center A se torna inacessível. Isso é tudo - nada mais acontece para o DNS, as pessoas ainda vão lá para se conectar ao servidor.

4: Como? Enviando metade das pessoas para A e metade das pessoas para B - INDEPENDENTEMENTE (!), Quer A e B estejam online? O DNS tem provisões ZERO para alta disponibilidade.

5: Não, seu registrador não faz nada. VOCÊ vai até seu registrador e aponta um nome para um endereço IP. Um "sabe" que a entrada correta está lá, verificando se você foi inteligente o suficiente para fazer a entrada no banco de dados corretamente. Seu registrador provavelmente não se importa. Agora, PROPRIEDADE - isso é uma questão legal. Seu registrador lhe vendeu o domínio, informou o registro raiz sobre o domínio. Eles lhe dão um nome de usuário e senha. Quem "possui" sua senha para este site?

Sugiro que você leia um livro sobre como o DNS funciona. Ed se esqueça de resolver problemas de disponibilidade com DNS - DNS não é projetado para alta disponibilidade. Oh, vote para fechar - perguntas para iniciantes não são bem-vindas aqui como por FAQ. Não é uma boa decisão neste caso, mas as regras são válidas.

    
por 03.10.2013 / 13:18