Disclaimer: Sem ofensa, mas esta é realmente uma má idéia. Eu não recomendo que alguém faça isso na vida real.
Mas se você der a um cara de TI entediado um laboratório, coisas engraçadas vão acontecer!
Para este experimento, usei um servidor DNS da Microsoft em execução no Server 2012 R2. Devido às complicações de hospedar uma zona DNS no Active Directory, criei uma nova zona primária chamada testing.com que não é não integrada ao AD.
Usando este script:
$Count = 1
for ($x = 1; $x -lt 256; $x++)
{
for ($y = 1; $y -lt 256; $y++)
{
for ($z = 1; $z -lt 256; $z++)
{
Write-Host "1.$x.$y.$z't( $Count )"
$Count++
dnscmd . /RecordAdd testing.com testing A 1.$x.$y.$z
}
}
}
Eu comecei a criar, sem erro, 65025 registros de host para o nome testing.testing.com.
, com literalmente todos os endereços IPv4 de 1.1.1.1 a 1.1.255.255.
Então, eu queria ter certeza de que eu conseguiria quebrar 65536 (2 ^ 16 bit) número total de registros A sem erro, e eu poderia, então eu presumo que provavelmente poderia ter ido até 16581375 (1.1. 1.1 a 1.255.255.255,) mas eu não queria sentar aqui e assistir esse roteiro rodando a noite toda.
Então,achoqueésegurodizerquenãohálimitepráticoparaonúmeroderegistrosAquevocêpodeadicionaraumazonaparaomesmonomecomIPsdiferentesnoseuservidor.
Masseráqueelefuncionadaperspectivadocliente?
AquiestáoquerecebodomeuclienteconformevisualizadopeloWireshark:
Como você pode ver, quando uso nslookup ou ping do meu cliente, ele emite automaticamente duas consultas - uma UDP e uma TCP. Como você já sabe, o máximo que eu posso colocar em um datagrama UDP é de 512 bytes, então, quando esse limite é excedido (como 20-30 endereços IP), é preciso usar o TCP. Mas, mesmo com o TCP, eu só recebo um pequeno subconjunto de registros A para testing.testing.com. 1000 registros foram retornados por consulta TCP. A lista de registros A gira 1 corretamente com cada consulta sucessiva, exatamente como você esperaria que o DNS round-robin funcionasse. Levaria milhões de consultas para round robin através de todos estes.
Não vejo como isso ajudará você a criar sua rede de mídia social flexível e flexível, mas ainda assim existe a sua resposta.
Editar: No seu comentário de acompanhamento, você pergunta por que eu acho que isso geralmente é uma má ideia.
-
Digamos que eu seja um usuário médio da Internet e gostaria de me conectar ao seu serviço. Eu digito www.bozho.biz no meu navegador. O cliente DNS no meu computador recebe 1000 registros. Bem, má sorte, os primeiros 30 registros da lista não respondem, porque a lista de registros A não é mantida atualizada, ou talvez haja uma interrupção em grande escala afetando uma parte da Internet. Digamos que meu navegador tenha um tempo limite de 5 segundos por IP antes de ser ativado e tente o próximo. Então, agora estou sentado aqui olhando para uma ampulheta giratória por dois minutos e meio esperando que seu site seja carregado. Ninguém tem tempo para isso. E estou apenas supondo que meu navegador da Web ou qualquer aplicativo que eu use para acessar seu serviço tentará mais do que os primeiros 4 ou 5 endereços IP. Provavelmente não vai.
-
Se você usasse a limpeza automática e permitisse atualizações não validadas ou anônimas para a zona DNS, na esperança de manter a lista de registros A atualizada ... imagine como isso seria inseguro! Mesmo se você projetou algum sistema em que os clientes precisavam de um certificado TLS de cliente que recebessem de você antecipadamente para atualizar a zona, um cliente comprometido em qualquer lugar do planeta inicia um botnet e destrói seu serviço. O DNS tradicional é precariamente inseguro como é, sem o crowdsourcing.
-
Uso e desperdício de largura de banda enorme. Se cada consulta de DNS exigir 32 kilobytes ou mais de largura de banda, isso não será bem dimensionado.
-
O round-robin de DNS não substitui o balanceamento de carga adequado. Ele não fornece nenhuma maneira de se recuperar de um nó que desce ou fica indisponível no meio das coisas. Você vai instruir seus usuários a fazer um ipconfig / flushdns se o nó ao qual eles estavam conectados cair? Esses tipos de problemas já foram resolvidos por coisas como GSLB e Anycast.
-
Etc.