DNS Willamys Araújo 1 Introdução • A internet possui uma infinidade de sites e, para acessá-los, você digita um endereço no campo correspondente do seu navegador, por exemplo, – www.google.com.br, – www.infowester.com e – www.itep.br. 2 O que o computador faz para encontrar esses sites quando você solicita? 3 O que é DNS • DNS é a sigla para Domain Name System (Sistema de Resolução de Nomes). • Trata-se de um recurso usado em redes TCP/IP (o protocolo utilizado na internet e na grande maioria das redes) • Permitindo acessar computadores sem que o usuário ou sem que o próprio computador tenha conhecimento de seu endereço IP. 4 O que é DNS • Cada site da internet é acessível por um endereço IP. • O problema é que existem tantos que é praticamente impossível decorar o IP de cada um. • Imagine que ao invés de digitar www.infowester.com para acessar este site, você tivesse que informar ao navegador o endereço 200.178.123.25. 5 O que é DNS • Imagine então que você tivesse que fazer o mesmo para cada site que você visita, como Google, UOL, Yahoo, etc. • Iria ser trabalhoso acessar cada um desses sites através do endereço IP, pois além de decorá-los, você teria que consultar uma relação de IPs toda vez que quisesse acessar um site novo. 6 O que é DNS • Para lidar com esse problema é que o DNS é usado. É ele que permite o uso de nomes (também chamados de domínios) ao invés dos IPs no acesso aos sites. • Basicamente, na internet, o DNS é um conjunto de grandes bancos de dados distribuídos em servidores de todo o mundo que indicam qual IP é associado a um nome (ou seja, um endereço do tipo www.nomedosite.com). 7 Breve Histórico 8 Breve Histórico • Quando a internet ainda era uma ferramenta de uso militar e não possuía muitos computadores, o acesso aos nomes era possível graça a um arquivo de nome hosts.txt. • Esse arquivo continha os endereços de cada nome existente. • Com o crescimento da internet, esse arquivo passou a crescer de igual forma e chegou ao ponto de ser tão grande que causava atraso nas atualizações. • Por volta de 1983, o esquema hoje conhecido como DNS tomou forma para resolver esse problema. 9 Funcionamento 10 Funcionamento • Como já foi dito, os serviços de DNS da internet são um conjunto de bancos de dados espalhados em servidores de todo o mundo. • Esses bancos de dados têm a função de indicar qual IP está associado a um nome de um site. 11 Funcionamento • Quando você digita um endereço em seu navegador, por exemplo, www.itep.br, seu computador solicita aos servidores de DNS de seu provedor de internet que encontre o endereço IP associado a www.itep.br. • Se os servidores não tiverem essa informação, ele se comunica com outros que possam ter. 12 Funcionamento • Devido ao tamanho da internet, armazenar todos os pares domínio endereço IP em um único servidor DNS seria inviável, por questões de escalabilidade que incluem: – Confiablidade: se o único servidor de DNS falhasse, o serviço se tornaria indisponível para o mundo inteiro. – Volume de tráfego: o servidor deveria tratar os pedidos DNS do planeta inteiro. 13 Funcionamento – Distância: grande parte dos usuários estaria muito distante do servidor, onde quer que ele fosse instalado, gerando grandes atrasos para resolver pedidos DNS. – Manutenção do banco de dados: o banco de dados deveria armazenar uma quantidade de dados enorme e teria que ser atualizado com uma frequência muito alta, toda vez que um domínio fosse associado a um endereço IP. 14 Funcionamento • A solução encontrada é fazer do DNS um banco de dados distribuído e hierárquico . Os servidores DNS se dividem nas seguintes categorias: – Servidores raiz – Servidores de domínio de topo (Top-Level Domain) – Servidores autoritativos 15 Funcionamento • Servidores raiz – No topo da hierarquia os servidores raiz. Um Servidor Raiz (Root Name Server) é um servidor de nome para a zona raiz do DNS (Domain Name System). – A sua função é responder diretamente às requisições de registros da zona raiz e responder a outras requisições retornando uma lista dos servidores de nome designados para o domínio de topo apropriado. – Os servidores raiz são parte crucial da internet por que eles são o primeiro passo em traduzir nomes para endereços IP e são usados para comunicação entre hosts. 16 Funcionamento • Servidores de domínio de topo (Top-Level Domain) – Cada domínio é formado por nomes separados por pontos. – O nome mais à direita é chamado de domínio de topo. – Exemplos de domínios de topo são .com, .org, .net, .edu e .gov. – Cada servidor de domínio de topo conhece os endereços dos servidores autoritativos que pertencem àquele domínio de topo, ou o endereço de algum servidor DNS intermediário que conhece um servidor autoritativo. 17 Funcionamento • Servidores autoritativos – O autoritativo é o servidor que está autorizado a responder por um domínio. – A autoridade para que um servidor de DNS (autoritativo) responda pelo domínio é dada pelos registros de domínios, oficiais, de uma determinada região do mundo. – No nosso caso, Brasil, quem fornece a autoridade para que um ou mais servidores autoritativos respondam por um domínio é o Registro.br. 18 Funcionamento • A autoridade do Registro.br é reconhecida pelos servidores root, pois o Registro.br é um NIR (National Internet Register) responsável pelo Brasil e autorizado pelo LACNIC, que é um dos cinco RIRs (Regional Internet Register), do mundo. 19 Funcionamento 20 Funcionamento 21 Funcionamento 22 Funcionamento • Para melhor entender o DNS, vamos ao seguinte exemplo: suponha que você queira visitar o site • www.nomedosite.com.br. • Para isso, primeiramente o servidor raiz é verificado e este indica o servidor de terminação.br, que por sua vez, indica o servidor que cuida do domínio nomedosite.com.br que informa qual o seu IP, ou seja, qual o servidor onde o site em questão está localizado. 23 Funcionamento 24 Melhorias de Funcionamento 25 Melhorias de Funcionamento • Dois recursos são usados em conjunto para reduzir a quantidade de requisições que os servidores raiz devem tratar e a quantidade de requisições feitas para resolver cada consulta: – Cache – Servidor Local 26 Melhorias de Funcionamento • Cache – Toda vez que um servidor retorna o resultado de uma requisição para a qual ele não é autoridade (o que pode acontecer no método de resolução recursivo), ele armazena temporariamente aquele registro. – Se, dentro do tempo de vida do registro, alguma requisição igual for feita, ele pode retornar o resultado sem a necessidade de uma nova consulta. 27 Melhorias de Funcionamento – Note que isso pode provocar inconsistência, já que se um domínio mudar de endereço durante o tempo de vida do cache, o registro estará desatualizado. – Apenas o servidor autoritativo tem a garantia de ter a informação correta. – É possível exigir na mensagem de requisição DNS que a resposta seja dada pelo servidor autoritativo. 28 Melhorias de Funcionamento • Servidor Local – Esse tipo de servidor não pertence a hierarquia DNS, mas é fundamental para o seu bom funcionamento. – Em vez de fazer requisições a um servidor raiz, cada cliente faz sua requisição a um servidor local, que geralmente fica muito próximo do cliente fisicamente. – Ele se encarrega de resolver a requisição. Com o uso de cache, esses servidores podem ter a resposta pronta, ou ao menos conhecer algum servidor mais próximo ao autoritativo que o raiz (por exemplo, o servidor de topo), reduzindo a carga dos servidores raiz. 29