Alguém pode me direcionar para informações sobre o comportamento exato dos navegadores quando o navegador obtém vários registros A para um determinado nome de host (por exemplo, ip1 e ip2) e um deles não está acessível.
Estou interessado em detalhes EXATOS, como (mas não limitado a):
- O navegador obterá 2 IPs do SO ou obterá apenas um?
- Qual ip o navegador tentará primeiro (aleatório ou sempre o primeiro)? Agora, digamos que o navegador tenha começado com o ip1 com falha
- Por quanto tempo o navegador tentará o ip1?
- Se o usuário pressionar "parar" enquanto aguarda o ip1 e clicar em atualizar
- qual IP o navegador tentará?
- O que acontecerá quando atingir o tempo limite - começará a tentar o ip2 ou dará erro? (E se houver erro, qual ip o navegador tentará quando o usuário clicar em atualizar).
- Quando o usuário clica em atualização, algum navegador tentará uma nova pesquisa de DNS?
Agora, vamos assumir que o navegador tentou trabalhar primeiro com o ip2.
- Para a solicitação da próxima página, o navegador ainda usará o ip2 ou poderá alternar aleatoriamente ips?
- Por quanto tempo os navegadores mantêm os IPs em seu cache?
- Quando os navegadores enviam uma nova solicitação de DNS e obtêm os mesmos ips, continuará a usar o mesmo IP conhecido como funcionando ou o processo inicia do zero e pode tentar qualquer um dos dois?
É claro que tudo pode depender do navegador e também pode variar entre versões e plataformas. Eu ficaria feliz em ter o máximo de detalhes.
O objetivo disso - estou tentando entender o que exatamente os usuários experimentarão quando o DNS baseado em rodízio for usado e um dos hosts falhar.
Por favor, NÃO estou perguntando sobre o quão ruim é o balanceamento de carga do DNS, e evite responder "não faça", "é uma má idéia", "você precisa de pulsação / proxy / BGP / qualquer outra coisa" e assim por diante.
fonte
Respostas:
Afinal, eu tive que fazer a "pesquisa" sozinha. Aqui está o comportamento do Chromium (versão 12.0.742.112) (executando no ubuntu 11.04):
Geralmente funciona assim: tente o 1º ip, depois que o tempo limite exceda o tempo limite (após 189 segundos), tente o 2º ip. Nenhuma mensagem de erro é fornecida até que todos os ips tentem. A próxima conexão será iniciada novamente a partir do primeiro ip (mesmo que tenha falhado há um segundo e o segundo ip tenha funcionado - o navegador não se importa)
Uma coisa interessante - a tentativa de conexão TCP não é descartada quando o usuário clica em cancelar - ou seja, quando clico em cancelar e, após 60 segundos, clique em tentar novamente, a página será exibida em 130 segundos (189 na primeira tentativa). Mas se eu clicar em cancelar e clicar em atualizar após 190 segundos, o processo será iniciado desde o início.
Em relação aos itens da pergunta original:
Não testado. Este blog afirma que o Chrome armazena em cache o DNS por apenas 1 minuto, quando analisamos chrome: // net-internals / # dns:
Capacidade: 100 Tempo de vida (ms) para entradas de sucesso: 60000 Tempo de vida (ms) para entradas de falha: 0
Se o primeiro IP funcionar, o processo será o mesmo e sempre terá êxito na primeira tentativa.
fonte
Em vez de dizer às pessoas o que você não quer, por que não explicar o que você está tentando alcançar?
Se tudo o que você procura são dados conhecidos, investigue a si mesmo ou leia a documentação de qualquer navegador (existem centenas) sobre o qual você está falando.
Pode ser útil saber que isso não tem nada a ver com o DNS.
Se um navegador recebe uma solicitação, ele primeiro procura em seus vários caches para ver se o URL, ou se não o URL e o nome do host, já estão presentes.
Caso contrário, ele atingirá o resolvedor do sistema para resolver o nome do host.
Se o IP de retorno não responder, certamente o armazenará em cache internamente como um resultado de pesquisa negativa , solicitando diretamente o mesmo URL novamente na esperança de atingir um registro A diferente, pois provavelmente não servirá para nada, pois armazenou o resultado do nome do host junto com o resultado negativo do IP.
Ou, você sabe, você pode fornecer mais informações.
EDIT: Vejo que você forneceu algumas informações entre todos os exigentes e inteligentes.
Muito bem:
Você também parece não saber que os registros DNS são armazenados em cache em todos os lugares, especialmente nos clientes. Esses registros expiram, dependendo do que o proprietário do domínio pretendia ou dos caches entre você e ele configurados. Uma hora a um dia é comum; portanto, não espere que o resolvedor faça outra consulta DNS se você atualizar como um louco.
fonte