A Aldeia Numaboa ancestral ainda está disponível para visitação. É a versão mais antiga da Aldeia que eu não quis simplesmente descartar depois de mais de 10 milhões de pageviews. Como diz a Sirley, nossa cozinheira e filósofa de plantão: "Misericórdia, ai que dó!"

Se você tiver curiosidade, o endereço é numaboa.net.br.

Leia mais...

DNS - Domain Name System

Qui

16

Mar

2006


19:32

(11 votos, média 4.55 de 5) 


Um sistema distribuído

Já pensou se o banco de dados do DNS estivesse numa máquina só? Com certeza a Internet não seria o que é. Bastava a máquina ratear (e isto não é nada difícil de acontecer) para que toda a Internet ficasse paralizada. E isto não é tudo. Se o banco de dados fosse pro espaço, seria praticamente impossível recuperar os dados e, caso houvesse um backup gigantesco, poderíamos esperar várias semanas até que tudo estivesse no ar novamente... um cenário impensável.

Por estes e por outros motivos, o sistema DNS é um sistema distribuído. Milhões de máquinas contém informações e fazem traduções. Além disso, a administração desta imensa base de dados fica na mão de outros tantos milhões de pessoas - cada um trabalha um pouquinho e, todos juntos, um montão. É o sistema mais socialista que conheço wink Eu, por exemplo, administro dois sistemas DNS redundantes (um é a cópia do outro) com autoridade sobre uma meia dúzia de domínios. A sensação legal é que, apesar do pouco trabalho, estas informações estão disponíveis para o mundo todo e colocam meus sites no circuito da Internet. A responsabilidade (que nem todos administradores têm), é configurar o sistema adequadamente para não criar problemas como consultas excessivas ou sem resposta (veja adiante algumas das lambanças que sobrecarregam o DNS).

Como funciona

Servidores de Nomes só realizam duas tarefas:

  • Aceitam solicitações de programas para transformar nomes de domínios em endereços IP.
  • Aceitam solicitações de outros servidores de nomes para converter nomes de domínios em endereços IP.

Quando recebe uma solicitação, um servidor de nomes pode fazer quatro coisas:

  • Responder a solicitação com um endereço IP porque ele já conhece o endereço IP do domínio.
  • Fazer contato com outro servidor de nomes e tentar encontrar o endereço IP para o nome solicitado. O servidor de nomes geralmente precisa repetir este procedimento várias vezes até conseguir a informação.
  • Responder com um endereço IP de um outro servidor de nomes que tenha mais informações do que ele.
  • Retornar uma mensagem de erro porque o nome do domínio é inválido ou não existe.

Para ganhar tempo, o servidor de nomes mantém domínios e IPs em cache. Desta forma, se ele receber um solicitação repetida e a informação ainda estiver em cache, ele pode responder imediatamente. Caso ele não tenha o registro solicitado e nem a informação guardada em cache, então ele precisa iniciar o processo do zero, ou seja, faz contato com os chamados servidores de nomes raiz. Todo servidor de nomes possui uma lista de servidores raiz. A Internet possui apenas 13 por uma questão técnica relacionada ao protocolo usado - pacotes UDP podem carregar apenas 512 bytes, o que permitiria transmitir até 16 endereços IP de 32 bytes. Como 32 bytes estão ocupados com outras informações, haveria a possibilidade de "empacotar" até 15 endereços de servidores raiz, mas, para deixar uma margem de segurança, optou-se por 13:

  • (originalmente NS.INTERNIC.NET)
    . 518400 IN NS A.ROOT-SERVERS.NET.
    A.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.4
  • (originalmente NS1.ISI.EDU)
    . 518400 IN NS B.ROOT-SERVERS.NET.
    B.ROOT-SERVERS.NET. 3600000 IN A 128.9.0.107
  • (originalmente C.PSI.NET)
    . 518400 IN NS C.ROOT-SERVERS.NET.
    C.ROOT-SERVERS.NET. 3600000 IN A 192.33.4.12
  • (originalmente TERP.UMD.EDU)
    . 518400 IN NS D.ROOT-SERVERS.NET.
    D.ROOT-SERVERS.NET. 3600000 IN A 128.8.10.90
  • (originalmente NS.NASA.GOV)
    . 518400 IN NS E.ROOT-SERVERS.NET.
    E.ROOT-SERVERS.NET. 3600000 IN A 192.203.230.10
  • (originalmente NS.ISC.ORG)
    . 518400 IN NS F.ROOT-SERVERS.NET.
    F.ROOT-SERVERS.NET. 3600000 IN A 192.5.5.241
  • (originalmente NS.NIC.DDN.MIL)
    . 518400 IN NS G.ROOT-SERVERS.NET.
    G.ROOT-SERVERS.NET. 3600000 IN A 192.112.36.4
  • (originalmente AOS.ARL.ARMY.MIL)
    . 518400 IN NS H.ROOT-SERVERS.NET.
    H.ROOT-SERVERS.NET. 3600000 IN A 128.63.2.53
  • (originalmente NIC.NORDU.NET)
    . 3600000 IN NS I.ROOT-SERVERS.NET.
    I.ROOT-SERVERS.NET. 3600000 IN A 192.36.148.17
  • (temporariamente hospedado na NSI (InterNIC)
    . 518400 IN NS J.ROOT-SERVERS.NET.
    J.ROOT-SERVERS.NET. 3600000 IN A 198.41.0.10
  • (hospedado em LINX, operado por RIPE NCC)
    . 518400 IN NS K.ROOT-SERVERS.NET.
    K.ROOT-SERVERS.NET. 3600000 IN A 193.0.14.129
  • (temporariamente hospedado no ISI (IANA)
    . 518400 IN NS L.ROOT-SERVERS.NET.
    L.ROOT-SERVERS.NET. 3600000 IN A 198.32.64.12
  • (hospedado no Japão, operado por WIDE)
    . 518400 IN NS M.ROOT-SERVERS.NET.
    M.ROOT-SERVERS.NET. 3600000 IN A 202.12.27.33

Informações adicionais