Como é possível que os servidores de nome raiz processem todas as solicitações de DNS?

18

Eu estava lendo sobre DNS há alguns dias e aprendi como as solicitações são processadas. Se você navegar para www.example.com, uma solicitação irá para os Servidores de Nome Raiz para ver quem é o proprietário do endereço .com, e outra solicitação irá para outro servidor DNS mais local para ver quem é o proprietário do example.com endereço e assim por diante.

Como é tecnicamente possível que os 13 Servidores de Nome Raiz possam lidar com todas as solicitações feitas por bilhões de usuários de Internet da Terra simultaneamente, sem ser necessário o ddos: ed?

Rox
fonte
11
A propósito, seu resumo do funcionamento do DNS está errado. A pergunta feita ao servidor de nomes raiz não é "quem possui .com?" mas "qual é o endereço IP de www.example.com?" (o servidor de nomes raiz responde por uma referência ao proprietário de .com). O servidor de nomes raiz vê toda a consulta (o que é útil para estatísticas, mineração de dados etc.).
precisa saber é o seguinte
@bortzmeyer A principal razão pela qual o nome inteiro é enviado aos servidores raiz é que nem todos os pontos no nome são necessariamente um limite de autoridade. Na prática, acredito que sempre há um limite de autoridade logo abaixo do TLD, mas, em princípio, não é garantido. Portanto, em algum momento no futuro, pode ser decidido introduzir um TLD especial em que a segunda camada seja tratada pelos servidores raiz, de modo que, quando você consultar os servidores raiz a.b.c.example, será informado sobre quem é o responsável c.examplee não quem é o responsável example.
kasperd

Respostas:

51

São 13 clusters de servidores altamente disponíveis , não apenas 13 servidores.

Entre outras coisas, os operadores do servidor de nomes raiz precisam ter capacidade suficiente para lidar com três vezes a carga de tráfego normal ( RFC 2870 ). Isso leva a clusters bastante grandes.

No entanto, os servidores de nomes de raiz só servem respostas para os domínios de alto nível si, ou seja com., net., uk., ae., etc., e os servidores de nomes que consultam a raiz pode armazenar em cache essas informações até 48 horas , o que reduz drasticamente a carga para os servidores de nomes de raiz. Isso leva a clusters menores.

Os servidores de nomes raiz estão em mais de 130 locais físicos em 53 países; com apenas 13 nomes de servidores, isso é feito através da mágica do IPv4 anycast.

Os servidores de nomes raiz também têm seu próprio site , que você pode achar interessante na leitura.

Michael Hampton
fonte
48 h é o TTL dos registros NS na raiz. Mas pode ser anulado pelos servidores de nomes do próprio TLD. Por exemplo, para .jp, são apenas 24 h.
precisa saber é o seguinte
Bem, nós estão falando sobre os servidores de nomes de raiz aqui. :)
Michael Hampton
O RFC 2870 está bastante desatualizado hoje. Por causa dos ataques dDoS, um servidor de nomes raiz precisa estar pronto para responder muito mais que o triplo do tráfego normal.
precisa saber é o seguinte
8
53 países? é uma coincidência ou eles escolheram como a porta de consulta DNS? : D
amyassin 03/03
10

Eles não. Os servidores de nomes raiz precisam apenas informar com o que os servidores de nomes lidam com. A partir de então, você não precisará acessá-los para lidar com nenhum domínio interno com. Os servidores de nomes raiz não têm idéia de quem é o dono example.com. Eles são servidores de nomes raiz , não com servidores de nomes.

O que slimsuperhero disse também é verdade. Muitos servidores de nomes de alto volume usam o anycast para ter um único endereço IP atendido por vários servidores ao redor do mundo.

David Schwartz
fonte
Mas se um bilhão de usuários estivesse navegando para diferentes endereços .com no mesmo segundo, os servidores de nomes raiz lidariam com todas as solicitações?
Rox
3
Não. Por um lado, os usuários falam apenas com servidores de nomes recursivos (aqueles que se conectam a outros servidores de nomes para obter respostas) e os servidores de nomes raiz não são recursivos (eles servem apenas informações locais que já conhecem). Os usuários conversam com seus próprios servidores de nomes (geralmente fornecidos pelo provedor de serviços de Internet), que precisam solicitar apenas os servidores de nomes raiz uma vez para os servidores que manipulam com.
David Schwartz
11
O @DavidSchwartz está correto - então, em vez de um bilhão de solicitações de um bilhão de usuários, eles receberiam apenas um milhão de solicitações de um milhão de ISPs, cada um dos quais atende a mil usuários.
Shadur 03/03
@Shadur: Agora, os servidores de nomes, por comoutro lado, devem sofrer muito mais.
David Schwartz
11
E tenho certeza de que eles estão dimensionados e agrupados adequadamente.
Shadur 03/03
6

Cada servidor raiz não é realmente um servidor, eles são enormes agrupamentos de servidores. Além disso, as respostas DNS são armazenadas em cache para que nem todas as solicitações cheguem ao servidor raiz.

Gevial
fonte
3

Observe que você não usa os servidores raiz. Você geralmente usa o servidor DNS fornecido pelo seu provedor de serviços de Internet, que geralmente pode responder imediatamente se as informações necessárias estiverem no cache local. Somente se não for armazenado em cache, o servidor DNS upstream será solicitado e, eventualmente, o servidor raiz será solicitado (e essa resposta será armazenada em cache)

Thorbjørn Ravn Andersen
fonte
0

Na verdade, é o seu 13 endereço IP Anycast, que resolve muitos servidores em todo o mundo. Você pode olhar o link para encontrar esses servidores, se necessário. Todos esses servidores são gerenciados pela autoridade em questão.

O fato de ainda estarmos usando apenas 13 endereços IP (e cluster de servidores com o mesmo endereço IP) é para garantir que o tamanho do pacote não ultrapasse os 512 bytes. Então por que? nós temos o TCP que pode ir além desse tamanho de pacote, por que não podemos usá-lo? A questão é que o TCP envolve uma sobrecarga muito alta, pois inclui várias etapas e procedimentos para estabelecer uma conexão TCP. Por esse motivo, todo o processo de uma consulta DNS ficará lento.

Coisas como o DNS nunca podem ser lentas e é por isso que ainda usamos o mesmo sistema antigo.

Jaison
fonte
A resposta para uma consulta para .não cabe mais em 512 bytes. Como o IPv6 agora é uma necessidade, a resposta aumentou para 811 bytes. Com o EDNS, isso pode ser retornado em uma única resposta. No entanto, as consultas para .não são necessárias com tanta frequência que algumas viagens de ida e volta são um empecilho. É fundamental que os recursores aprendam as alterações mais recentes nos endereços IP das raízes, que raramente mudam.
kasperd
@kasperd Não tenho certeza. Eu verifiquei dig + trace para um registro normal A ou AAAA e todas as respostas (dos servidores de nível raiz, servidores de nível superior ou nos servidores de nomes) têm menos de 508 a 509 bytes. Você pode explicar um pouco mais sobre isso?
Jaison Marais
Você precisa usar EDNS ou TCP para obter a resposta completa. Solicitações UDP sem EDNS nunca podem obter uma resposta maior que 512 bytes.
kasperd