É possível que um nome de domínio tenha vários endereços IP correspondentes?

86

Por exemplo, quando nos conectamos a www.example.com, primeiro tentamos nos conectar a 192.0.2.1. E se a primeira tentativa falhar, então tentamos 192.0.2.222.

É possível? Podemos registrar vários endereços IP de backup para um nome de domínio?

firia2000
fonte
Não vai funcionar exatamente assim (com Round-Robin). Se você consultar o host várias vezes, ele retornará IP-s diferentes cada vez que você fizer a consulta, e não apenas quando um host falhar.
karatê
@karatedog, presumi que a conexão de soquete tentará se conectar ao próximo IP se não conseguir se conectar ao primeiro
Akash Kava
4
@AkashKava: uma única conexão possui várias etapas internas. Simplificado: um aplicativo consulta o DNS e obtém um endereço IP. Em seguida, ele se conecta a esse endereço IP. Se essa conexão falhar, o aplicativo não voltará à primeira etapa e consultará o DNS novamente, apenas se codificado explicitamente para fazer isso. E consultar um servidor DNS várias vezes não necessariamente fornece um endereço IP diferente. Resumindo, o DNS padrão não pode ser usado para fins de balanceamento de carga.
karatedog
podemos usar essa técnica para dimensionar vários balanceadores de carga?
Vikas Verma

Respostas:

62

Este é o DNS round robin. Esta é uma solução bastante simples para balanceamento de carga. Normalmente os servidores DNS alternam / misturam os registros DNS para cada solicitação DNS recebida. Infelizmente, não é uma solução real para failover. Se um dos servidores falhar, alguns visitantes ainda serão direcionados para este servidor com falha.

Jens Bradler
fonte
3
Depende de suas expectativas em relação ao tempo de recuperação. Se o serviço fornecido ficar inativo por alguns segundos ou minutos, você pode atualizar o DNS de acordo (por exemplo, tirar IPs de sistemas com falha). Se isso não for aceitável, o DNS não pode ajudá-lo e você deve usar balanceadores de carga e uma estrutura de rede de alta disponibilidade.
Jens Bradler,
Você sabe como o cliente escolhe seu ip na lista? É uma seleção aleatória ou o cliente deve escolher o primeiro da lista? Porque no primeiro caso o round / robin não é muito útil.
Tobia
É função do servidor DNS embaralhar ou girar os registros. A maioria dos clientes usará apenas o primeiro registro. Por exemplo, Bind9 pode ser configurado para aplicar ordens diferentes a este tipo de conjunto de registros: bind.isc.org/doc/arm/9.13/Bv9ARM.ch05.html#rrset_ordering
Jens Bradler
podemos usar essa técnica para dimensionar vários balanceadores de carga?
Vikas Verma
45

Você consegue. É isso que os grandes também fazem.

Primeira consulta:

» host google.com 
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229

Próxima consulta:

» host google.com
google.com has address 74.125.232.224
google.com has address 74.125.232.225
google.com has address 74.125.232.226
google.com has address 74.125.232.227
google.com has address 74.125.232.228
google.com has address 74.125.232.229
google.com has address 74.125.232.230
google.com has address 74.125.232.231
google.com has address 74.125.232.232
google.com has address 74.125.232.233
google.com has address 74.125.232.238

Como você pode ver, a lista de IPs girou, mas a ordem relativa entre dois IPs permaneceu a mesma.

Atualização: vejo vários comentários se gabando sobre como o round-robin do DNS não é conveniente para failover, então aqui está o resumo: DNS não é para failover. Portanto, obviamente não é bom para failover. Nunca foi projetado para ser uma solução para failover.

karatê
fonte
1
Precisamos habilitar algo para que esse Round Robin funcione ou ele é feito automaticamente por todos os servidores DNS? Eu tenho um linux e um MS DNS.
Akash Kava,
3
Por que o Google faria isso se não cobre o failover?
Joseph Persie
12
@JosephPersie: porque DNS não é usado para failover. Ao atribuir vários IPs ao mesmo nome de domínio, as solicitações de entrada são simplesmente divididas entre os servidores que ouvem nesses endereços IP. Pense nisso como um balanceamento de carga de primeiro nível, sem verificação de integridade de back-end. Você não precisa disso, se você não tiver milhares de servidores :-)
karatedog
o que acontece quando o balanceador de carga está inativo e a solicitação é encaminhada ao mesmo balanceador?
Jitendra Vispute
1
@JitendraVispute: O DNS não conhece o serviço por trás do endereço IP que retorna. Resumindo, se houver um servidor ou serviço quebrado atrás de um endereço IP que acabou de ser retornado pelo servidor DNS, a solicitação para esse IP falhará.
karatedog
2

Sim, isso é possível, porém não é conveniente, como disse o Jens. Usando balanceadores de carga de última geração como o Alteon, que usa um protocolo proprietário denominado DSSP (protocolo de estado de site distribuído), que realiza verificações regulares do site para garantir que o serviço esteja disponível localmente ou globalmente, ou seja, em áreas geográficas diferentes. Você precisa, no entanto, em seu DNS mestre para delegar a URL ou serviço ao dispositivo, configurando-o como um servidor de nomes autorizado para esse IP ou serviço. Ao fazer isso, o dispositivo responde a consultas de DNS onde resolverá o IP que possui um serviço por Round-Robin ou não está congestionado de acordo com como você escolheu entre várias métricas.

Ezra A.Mosomi
fonte
1
Isso soa mais como uma propaganda do que qualquer coisa, e os balanceadores de carga não têm um desempenho estelar no mundo DNS (no que diz respeito à especificação). E para ser mais preciso: "em seu DNS Mestre para delegar a URL ou Serviço" não há conceito de URL ou serviço em servidores de nomes / DNS, quando você delega, delega uma zona (domínio) a outros servidores de nomes. "como um servidor de nomes autorizado para esse IP ou serviço." consequentemente, os servidores de nomes são autorizados para zonas / domínios, não para endereços IP ou serviços.
Patrick Mevzek
Do ponto de vista de trabalho, eles funcionam, tem sido o padrão de fato para todos os CDN usar os balanceadores de carga para fazer isso de forma eficaz, pois eles podem combinar recursos avançados como GEO-LOCATION para fornecer endereços IP que estão até perto de seu ou para o servidor que é altamente responsivo entre outras métricas.
Ezra A.Mosomi
1
E eles apresentam muitos problemas ao mesmo tempo. Sem bala de prata, tudo tem características e desvantagens. Qualquer servidor de nomes pode fazer geolocalização e responder com IPs diferentes com base no cliente, sem a necessidade de balanceadores de carga para isso. Existe até um padrão que ajuda: Sub-rede do cliente EDNS.
Patrick Mevzek