O que é balanceamento de carga baseado em DNS?

O balanceamento de carga de DNS melhora a disponibilidade e a performance do aplicativo direcionando os usuários a vários endereços de IP em um único domínio.

Objetivos de aprendizado

Após ler este artigo, você será capaz de:

  • Definir balanceamento de carga baseado em DNS
  • Explicar como funciona o DNS round-robin
  • Entender as várias configurações de balanceamento de carga baseado em DNS

Copiar o link do artigo

O que é o balanceamento de carga baseado no Domain Name System (DNS)?

Balanceamento de carga é a prática de distribuir o tráfego por mais de um servidor para melhorar a performance e a disponibilidade. As organizações utilizam diferentes formas de balanceamento de carga para acelerar os sites quanto e as redes privadas. Sem o balanceamento de carga, a maioria dos aplicativo de internet e sites da internet não lidariam com o tráfego de forma eficaz ou funcionariam corretamente.

O DNS é muitas vezes referido como a lista telefônica da internet porque traduz os domínios de sites (como google.com ou nytimes.com) em endereços de IP. Um endereço de IP é um rótulo numérico longo que os servidores usam para identificar sites e qualquer dispositivo conectado à internet. Ao traduzir nomes de domínio para endereços de IP — um processo chamado resolução de DNS — o DNS evita que as pessoas memorizem longas sequências de números para acessar sites e aplicativos.

Na resolução de DNS, o navegador de um usuário da internet entra em contato com um servidor DNS para solicitar o endereço de IP correto do site de destino. O ato de solicitar um endereço de IP de um domínio é chamado de consulta de DNS.

O balanceamento de carga baseado em DNS é um tipo específico de balanceamento de carga que utiliza o DNS para distribuir o tráfego por vários servidores. Ele faz isso fornecendo diferentes endereços de IP em resposta a consultas de DNS. Os balanceadores de carga podem usar vários métodos ou regras para escolher qual endereço de IP compartilhar em resposta a uma consulta de DNS.

Uma das técnicas mais comuns de balanceamento de carga de DNS é chamada DNS round-robin.

O que é DNS round-robin?

O DNS round-robin tem o mesmo objetivo de outros tipos de balanceamento de carga baseado em DNS: melhorar a performance e a confiabilidade de um site distribuindo o tráfego. No entanto, em vez de usar um balanceador de carga especializado baseado em software ou hardware, o DNS round-robin executa o balanceamento de carga usando um tipo de servidor DNS chamado nameserver autoritativo.

Os nameserves autoritativos mantêm registros deDNS chamados de registros A ou registros AAAA, que contêm o nome de um domínio e seu endereço de IP correspondente. Quando um cliente envia uma consulta de DNS, o objetivo da consulta é encontrar o registro A (ou AAAA). Um domínio terá um único registro A vinculado a um único endereço de IP em uma configuração básica, o que significa que uma consulta de DNS sempre retornará o mesmo endereço de IP.

No entanto, no DNS round-robin, os domínios têm vários registros A, cada um vinculado a um endereço de IP diferente. À medida que as consultas de DNS chegam, os endereços de IP giram em round-robin, espalhando as solicitações pelos servidores associados.

Como funciona o DNS round-robin?

Se houver cinco endereços de IP no DNS round-robin, uma consulta de DNS retornará apenas o endereço de IP nº 1 para cada sexta solicitação. Como cada endereço de IP corresponde a um servidor diferente, essa configuração reduz a carga de trabalho de cada servidor, tornando menos provável que ele fique sobrecarregado com solicitações.

Para entender como funciona o DNS round-robin, compare o ato de visitar um site com o envio de uma correspondência para uma empresa. Suponha que a empresa use uma caixa postal para receber correspondências de clientes, mas receba mais correspondências do que sua caixa postal única pode processar. Para ajudar a resolver esse problema, a empresa poderia comprar mais caixas postais.

Para que a estratégia de múltiplas caixas postais funcione, a empresa deve garantir que nenhuma caixa esteja transbordando de correspondência. Isso significa que o endereço da caixa postal que aparece quando os clientes procuram o endereço de correspondência da empresa precisaria ser alternado sequencialmente. O cliente nº 1 veria o endereço da caixa postal nº 1; então, o cliente nº 2 veria o endereço da caixa postal nº 2. Esse método ajudaria a reduzir a carga sobre as caixas postais individuais, aumentando a capacidade geral. Sem as caixas de correio adicionais, uma única caixa postal poderia facilmente transbordar, atrasando o recebimento das correspondências.

Como no exemplo da caixa postal, o DNS round-robin protege os servidores de ficarem sobrecarregados com solicitações, evitando atrasos no processamento delas.

Que outros tipos de balanceamento de carga baseado em DNS existem?

Embora a abordagem round-robin seja popular, ela não é o único método de roteamento de tráfego. A maioria dos balanceadores de carga permite que os proprietários de domínio escolham entre várias regras de roteamento de tráfego.

Um exemplo de configuração de balanceamento de carga baseada em DNS é um algoritmo ponderado em que diferentes servidores recebem pesos relativos com base em sua capacidade de lidar com tráfego. O tráfego é então atribuído proporcionalmente. Por exemplo, se o servidor A tiver o dobro da capacidade do servidor B, o balanceador de carga fornecerá duas vezes a quantidade de tráfego para o servidor A em comparação com o servidor B. Ele faria isso retornando o endereço de IP do servidor A em resposta às consultas de DNS. O round-robin ponderado ou menos conexões ponderadas são exemplos desse tipo de algoritmo de balanceamento de carga.

Muitas das abordagens de balanceamento de carga baseadas em DNS são dinâmicas, o que significa que os balanceadores de carga consideram a integridade do servidor e os tempos de resposta do servidor ao atribuir solicitações. Algoritmos dinâmicos podem assumir muitas formas. "Menos conexões" é um tipo de algoritmo de balanceamento de carga dinâmico. Na configuração de menos conexões, o monitoramento do servidor determina qual servidor tem atualmente o menos conexões abertas e, em seguida, atribui o tráfego de entrada a esse servidor fornecendo seu endereço de IP em resposta a consultas de DNS.

A geolocalização é outro algoritmo dinâmico amplamente utilizado. Nessa configuração, o balanceador de carga atribui solicitações de uma região a um servidor ou conjunto de servidores definido. Por exemplo, todas as solicitações provenientes da França podem ir para o "servidor F" e todas as solicitações vindas da Espanha podem ir para o "servidor S".

Um algoritmo baseado em proximidade realiza algo semelhante. Nessa configuração, os balanceadores de carga atribuem tráfego dinamicamente ao servidor mais próximo do usuário.

Os algoritmos dinâmicos seguem regras ligeiramente diferentes, mas, no final das contas, fazem a mesma coisa: monitoram a integridade do servidor e otimizam como o tráfego é atribuído.

Como funciona o balanceamento de carga baseado em DNS da Cloudflare?

O Balanceamento de Carga da Cloudflare é uma solução de balanceamento de carga baseada em DNS que monitora ativamente a integridade do servidor por meio de solicitações HTTP/HTTPS. Com base nos resultados dessas verificações de integridade, a Cloudflare direciona o tráfego para servidores de origem íntegros e para longe de servidores não íntegros. O Balanceamento de Carga da Cloudflare também oferece aos clientes que fazem proxy reverso em seu tráfego o benefício adicional de segurança de mascarar o endereço de IP do servidor de origem. Saiba mais sobre o Balanceamento de Carga da Cloudflare.