Quando meu servidor A é desconectado, como redireciono automaticamente todos os usuários para o meu servidor B em outra cidade e vice-versa?

15

Quando meu servidor A é desconectado, como redireciono automaticamente todos os usuários para o meu servidor B em outra cidade e vice-versa?

Um comutador de balanceamento de carga faz o que eu quero, exceto que eu não consigo descobrir como fazê-lo funcionar, a menos que ambos os servidores da Web estejam no mesmo prédio.

Os sistemas de cluster de alta disponibilidade fazem o que eu quero, exceto que não consigo descobrir como fazê-lo funcionar, a menos que os dois servidores da web estejam no mesmo prédio.

A resposta aceita para " redirecionar para uma página estática em outro servidor da web quando o servidor principal estiver inativo " parece oferecer suporte a servidores da web em duas cidades diferentes. Mas como a instalação de um software em uma caixa me ajuda depois que a caixa é desconectada?

Como o DNS round-robin e as redes de entrega de conteúdo (CDNs) fazem isso?

Suponho que uma abordagem comece algo como:

  1. Eu recebo o endereço IP de todos e cada um dos meus servidores web físicos.
  2. Coloquei o endereço IP de todos os servidores físicos no registro DNS para o nome de domínio único do site "the" (vários registros A ou AAAA ou ambos).
  3. ... então o que eu preciso fazer?

Suponho que outra abordagem comece algo como

  1. Uso um provedor de DNS dinâmico para o nome de domínio único que espero que os usuários digitem no navegador da web
  2. Configurei um trabalho cron em cada servidor Web que informa periodicamente ao provedor DNS seu próprio endereço IP (atualize o registro A ou AAAA) ou seu próprio nome de domínio (atualize o registro CNAME ou DNAME).
  3. ... então o que eu preciso fazer?

(Por enquanto, ficaria feliz se meus usuários tivessem uma página estática da Web com minhas informações de contato e uma nota de rodapé que diz "o servidor A principal da Web parece estar inativo" sempre que o servidor A estiver desconectado. Isso já é muito melhor do que o sistema atual que apenas fornece um erro de "servidor não encontrado". Idealmente, eu gostaria que A e B fossem totalmente sincronizados e aparentemente idênticos - mas isso é algo para outra pergunta: equivalente à CDN, mas para conteúdo dinâmico? ).

David Cary
fonte
relacionados: Failover “Simples” para um Servidor Separado Geograficamente? (possivelmente duplicar?)
David Cary

Respostas:

6

Parece que você pode estar procurando uma solução Global Server Load Balancing (GSLB). O GSLB geralmente usa DNS "inteligente" para direcionar usuários a diferentes servidores com base em vários parâmetros (ou seja, servidor indisponível, alta carga, geolocalização de IP, etc.).

Como exemplo, digamos que você tenha dois servidores da Web, um no oeste (10.10.10.1/24) e um no leste (10.20.20.1/24). Diga que seu nome de host é www.connect.com.

O GSLB pode ser configurado para ser seu DNS ou como um CNAME. De qualquer forma, um usuário digita www.connect.com, a consulta dns é direcionada para a solução GSLB e responde com 10.10.10.1 ou 10.20.20.1, dependendo dos parâmetros. O GSLB geralmente define um TTL baixo para que o host / navegador do cliente armazene em cache a resposta pelo menor tempo possível. Existem diferentes maneiras de lidar com a persistência, mas isso vai além do escopo desse cenário.

Digamos que o servidor da Web leste (10.20.20.1) seja desativado. O GSLB geralmente implementa verificações de integridade para verificar a integridade dos nós de back-end. O GSLB avisa que o leste está inoperante e todos os registros DNS subsequentes para www.connect.com serão resolvidos para 10.10.10.1.

Se você tiver uma solução de balanceamento de carga de servidor local (SLB), poderá configurá-la de forma que www.connect.com seja um VIP / VS (por exemplo, 192.168.1.1/24) com dois nós de back-end (10.10.10.1/24 e 10.20.20.1/24). Tecnicamente, os nós podem estar em diferentes segmentos de rede, desde que o SLB local possa alcançar o outro servidor. A solução SLB pode ser inteligente o suficiente para redirecionar os usuários para um servidor disponível se um nó de back-end ficar inativo. Se você estiver usando o F5 LTM, poderá criar facilmente uma iRule para esse evento. O Citrix NetScaler e outras soluções SLB também devem ter recursos semelhantes.

RR DNS não funciona neste caso. O DNS do RR não possui inteligência incorporada. A única maneira de realizar o caso de uso com o DNS é usar algum tipo de DNS "inteligente" por meio de uma solução GSLB (ou similar).

A CDN geralmente implementa soluções GSLB / SLB para garantir HA para seus clientes.

bangdang
fonte
David: Além F5 ans cisco que são aparelhos , você pode tê-lo como um serviço , como tzoha, edgedirector e dnshat
Sandman4
Na verdade, o F5, o Citrix / NetScaler oferecem dispositivos virtuais para o GSLB. A10, radware, zeus, brocade, alteon e outros podem muito bem oferecer dispositivos virtuais também. Mas você está absolutamente certo de que existem prestadores de serviços GLSB SaaS por aí. Provavelmente mais fácil no bolso usando opex em vez de capex para construir infraestrutura, mas os modelos SaaS não estão isentos de riscos (ou seja, SLA, operacional, suporte). Eu nunca ouvi falar de edgedirector ou dnshat, mas ambos têm preços competitivos!
bangdang
1
Foi-me dito que " o balanceamento de carga global do servidor {causas} reduziu a alta disponibilidade " . Comparado a vários registros A. Foi-me dito que "10.10.10.1" ou "192.168.1.1" ou outros endereços de rede privada não funcionam na Internet pública. Foi-me dito que todos os sistemas de balanceamento de servidor local (a) exigem que todos os servidores da web estejam no mesmo prédio; ou então (b) ter um único ponto de falha; os quais devo evitar em um sistema de alta disponibilidade. Existe alguma maneira de evitar esses problemas?
David Cary
2

Você deseja examinar os balanceadores de carga globais, como o F5 e o Cisco make. Basicamente, eles fazem alguns truques com o DNS se o parceiro estiver inativo e se o parceiro estiver ativo, eles alimentam os dados para o outro lado através do balanceador de carga.

Mrdenny
fonte
0

Diga-me se você estiver usando algum tipo de proxy reverso em seu ambiente, se for possível redirecioná-lo para o servidor de backup.

caso contrário, F5 é uma boa ideia para usar.

também, se você tiver registrado o domínio com um registrador de domínio de terceiros, poderá obter a configuração do servidor DNS para redirecionar para o novo servidor ou servidor de backup.

Sandeep Shrivastava
fonte
0

Você pode fazer isso sem usar um dispositivo de rede usando os dois métodos a seguir, pelo menos, mas eles exigirão controle de alterações:

  • Proxy reverso, você precisará remover o servidor que você desconectará dos candidatos do proxy

  • DNS, você precisará planejar com antecedência, alterar o DNS e aguardar a passagem do TTL

Você também pode fazer o balanceamento automático de carga e o failover ativo-ativo, especialmente para um servidor Web que atenda páginas estáticas usando protocolos de roteamento. Caixa EGP e IGRP. Deve haver material de ajuda on-line (principalmente relacionado à Cisco) que detalha como fazer isso com dois ou mais hosts por meio de um roteador.

nearora
fonte