Me pediram para reconstruir nossa infraestrutura de balanceamento de carga no data center.
A solicitação original era carregar servidores FTP com equilíbrio. Tentei fazer isso usando o balanceador de carga atual ( Piranha / LVS
), mas não o coloquei em funcionamento. Não apenas porque há pouca ou nenhuma documentação para este software. Como isso Piranha
é considerado obsoleto, passei HAProxy
alguns dias tentando, o que fez o trabalho em uma fração do tempo gasto Piranha
.
Então, eu tenho o balanceamento de carga FTP (modo passivo) em vigor. Agora, me pediram para substituir todo o Piranha Load Balancer no data center. Na configuração atual do Piranha, temos vários servidores web, servidores IIS .... um e um DNS .
Não, aqui está o problema:
HAProxy
parece ser um LB comumente usado, mas não é capaz de lidarUDP load balancing
. É uma chatice, já que gosto de como HAProxy
funciona. Então pesquisei bastante no Google e me deparei com várias coisas. A maioria das pessoas parece usar LVS
como LB para DNS (TCP / UDP). Alguns usam dlbDNS
, alguns usam lbnamed
e alguns usam netfilter / iptables
.
Como eu gostaria de ficar com os HAProxy
servidores FTP, HTTP e IIS, fiquei confuso ao usá-lo lado a lado LVS
.
Requisitos:
2 instâncias LB com failover
2 servidores DNS (já existentes) com failover
Vários servidores back-end (http, aplicativo, etc ...)
Perguntas:
Isso é possível? O balanceamento de carga UDP nos servidores DNS é necessário? Existe algum tipo de recurso que possa me mostrar como começar com isso? Ou existe uma solução LB capaz de lidar não apenas com TCP / HTTP, mas também com balanceamento de carga UDP?
PS: A solução LB deve ser sem hardware e de código aberto / licença GPL / livre de custos.
Qualquer ajuda ou orientação para os respectivos recursos é muito apreciada!
fonte
Respostas:
Não balance o seu DNS.
É um protocolo incrivelmente leve - você precisaria de uma quantidade enorme de tráfego para precisar de mais de uma caixa (nesse caso, você estará apenas afunilando o seu balanceador de carga de qualquer maneira), e há resiliência incorporada porque você pode usar vários registros NS na sua delegação (outros servidores serão usados se alguém estiver inativo).
fonte
Fico desconfortável com estas perguntas e respostas, porque ainda não foi estabelecido que tipo de servidor DNS você está falando. Existem alguns conceitos errôneos significativos quando se trata da resiliência do DNS recursivo e é importante que as pessoas que navegam pelos mecanismos de pesquisa não se afastem dessa discussão com uma falsa sensação de segurança.
DNS autoritativo : para servidores DNS autoritativos, o conhecimento comum sobre a resiliência do DNS é bastante claro. Contanto que você tenha vários servidores DNS autoritativos com redundância geográfica, você estará bem. O principal motivo para adicionar alta disponibilidade para IPs individuais é se você estiver hospedando muitas zonas autorizadas. Isso permite que você aumente seu número de servidores sem precisar alterar as configurações do registrador para cada domínio hospedado.
DNS recursivo : sempre use algum tipo de solução de alta disponibilidade. (BGP, dispositivo, etc.) É aqui que você pode ter problemas sérios. Todas as bibliotecas do resolvedor não são criadas da mesma forma: os clientes DNS do Windows arredondam o robin no servidor inicial usado entre as consultas, mas a maioria dos sistemas baseados em Unix sempre percorre a lista seqüencialmente. O que é ainda menos conhecido é que essas bibliotecas Unix terão que atingir o tempo limite em todas as combinações de domínios de pesquisa antes de passar para o próximo servidor. Se você tiver vários domínios de pesquisa configurados e o primeiro servidor na ordem de pesquisa do resolvedor estiver inoperante, isso poderá criar atrasos significativos na resolução do DNS para cada solicitação: mais do que suficiente para causar problemas em seus aplicativos críticos.
Quando se trata de DNS recursivo, lembre-se de que a infraestrutura do servidor é tão resistente quanto a configuração do cliente mais desafiadora. À medida que sua empresa cresce, isso é algo sobre o qual você nunca tem controle. Não faça nenhuma suposição de design com base em um ambiente de sistema operacional de servidor homogêneo, pois as coisas raramente permanecem as mesmas em uma empresa em crescimento. Isso definitivamente vai morder alguém, se você não planejar com antecedência.
fonte
Hoje em dia você pode usar o
dnsdist
PowerDNSDo README
https://github.com/PowerDNS/pdns/tree/master/pdns/dnsdistdist
Eles fornecem repositórios para sistemas operacionais comuns: https://repo.powerdns.com/
fonte