TECNOLOGIA GRATUITA: DNS - A HIERARQUIA DE NOMES DA INTERNET 2012
Conteúdo 1. INTRODUÇÃO...3 1.1. TRADUÇÃO LOCAL...6 1.2. TRADUÇÃO REMOTA...6 2. SOA - START OF AUTHORITY...7 3. NS - NAME SERVER OU AUTHORITY DELEGATION...8 4. NS - CRIANDO OUTROS SUB-ZONAS NA HIERARQUIA...9-2/9 -
1. INTRODUÇÃO A prestação de Serviço de Tradução de Nomes (Name Server) através da rede foi criado para permitir que a atribuição de um nome de seu respectivo reverso fosse acessível remotamente. Antigamente, ainda na época da ARPANet, os centros militares seguiam a atribuição de nomes conforme o endereço IP, o que definiriu a cadeia de nomes in-addr.arpa. Quando o TCP foi entregue às universidades para seu aperfeicoamento, e portanto fora do rigor militar, surgiram atribuições de nomes locais, que são traduzidos através de uma biblioteca de funções do TCP/IP denominada RESOLVER. Uma vez que as atribuições eram locais, um indivíduo somente coonseguia estabelcer uma conexão desde que conhecesse o Endereço IP do sistema prestador de um certo serviço de rede ou o definisse um nome local (alias) para aquele nome. A biblioteca RESOLVER busca a tradução no arquivo hosts, e a sequencia de tradução no arquivo nsswitch.conf. Tais arquivos tem sua localização definida pelo sistema operacional. Em sistemas Unix e clones, aqueles arquivos residem no diretório /etc. Para uniformizar o conjunto de traduções locais e evitar a transferencia constante daqueles arquivos quando atualizados, foi criado um serviço de tradução, que seria acessível remotamente. Agora, uma tradução local poderia ser opcional e as atualizações/modificações seriam imediatamente propagadas em tempo de requisição. Foi atribuído o nome Name Server (Serviço de Tradução de Nomes) para tal serviço. - 3/9 -
A biblioteca RESOLVER precisava ser instruída sobre a sequencia de busca, ou seja, se é no serviço de rede ou na tradução local. Tal atividade é definida no arquivo nsswitch.conf, no atributo file: O código responsável pela requisição da tradução é identifcado como NS-CLI e o código responsável pela tradução remota daquela requisição e pela resposta é identificado por NS-SRV. Se vários sistemas implementassem seu próprio sistema de tradução, local ou remoto, a confusão não seria resolvida. Pensou-se, então, numa hierarquia, onde um ou mais sistemas delagam a responsabilidade e a autoridade da tradução para outros sistemas com o serviço NS habilitado. Esses sistemas com autoridade delegada ganham, portanto, o status de autoridade e fazem parte de um sistema de tradução de nomes, que foi denominado DNS (Domain Name System). Ou seja, qualquer sistema pode ser um NS mas somente aqueles que receberam o status de autoridade são DNS. Por infelicidade de escolha, o protocolo de aplicação que rege os padrões de requisição e resposta de um NS remoto também recebeu o nome de DNS. Um DNS escolhido como autoridade máxima é denominado de ROOT-SERVER. É evidente, portanto, que um ROOT-SERVER não contenha Tabelas de Tradução, mas Tabelas de Delegação de Autoridade. A RAIZ de toda a hierarquia de nomes e delegações inicia pelo. (ponto). Uma vez que os nomes da ARPANet deveriam ser preservados, devido ao interesse militar, ela passa a ser um ramo das delegações, sendo complementada por in-addr.arpa. Com o fim da Guerra Fria em meados de 1978, a ARPANet passou de uma solução para um problema, pois envolvia gastos públicos de alta escala, mas estava permitindo a interligação de centros educacionais, governamentais e militares. Com a crise do petróleo, que já batia às portas do Governo americano, a sustentação de - 4/9 -
Guerras pelo oriente médio e a cobrança de recursos de países invadidos, aquele governo dividiu a então ARPANet em duas grandes redes: a MILNet e a InterNET. A Milnet continuaria atendendo aos interesses militares enquanto que a InterNET ficaria para a interligação de entidades civis: governo e universidades. Em 1983, o D.o.D, Departamento de Defesa, através de um estudo, resolveu estender a InterNET para o setor comercial. Até então, a hierarquia de nomes consistia dos seguintes designações de grupos de sistemas: Além das universidades, houve um investimento maciço por algumas empresas privadas no suporte e desenvolvimento da rede e protocolos, dentre elas a DEC, SUN e IBM. Aquelas empresas passaram a pressionar o governo americano para explorar um recurso que até então era desconhecido, tanto pelo Departamento de Comércio quanto por aqueles investidores. A possibilidade de desovar os produtos americanos encalhados no mercado mundial, produtos estes desenvolvidos para atender a demanda imposta pela Guerra Fria e pelas Guerras, poderia ser alcançada se o governo americano expandisse a InterNET para outros países. O segmento.com foi previamente experimentado dentro dos Estados Unidos e países tidos como aliados financeiros (Inglaterra e França). Foi quando, em meados de 1986, ao conceder a expansão comercial, foi criada a HepNET/SPAN (High Energy Physics Network/Space Physics Analysis Network) que iria coordenar a expansão da InterNET para universidades e centros de pesquisas em todo o mundo. No Brasil, foi concedido à FAPESP a responsabilidade de coordenar a ação, uma vez que o Estado de São Paulo era o estado com o maior número de universidades e centros de pesquisa com - 5/9 -
reconhecimento internacional além, é claro, do esforço pessoal de seus dirigentes. Era fundada a RNP em 1989. Em meados de 1992 o setor comercial brasileiro se conectava à InterNET americana, o que alavancaria o domínio com.br e motiva a criação de vários provedores, culminando em vários outros domínios.net.br, psi.br, etc. Assim cresce a hierarquia de nomes no Brasil e no mundo. 1.1. TRADUÇÃO LOCAL A tradução de nomes localmente num sistema é realizado pela bibliotce aresolver, através de consulta ao arquivo hosts. A sintaxe do conteúdo do arquivo hosts é: IP nome alias. Exemplo: 192.168.2.2 torrinha.dt.guri.no-ip.org torrinha 127.0.0.1 localhost.localdomain localhost 1.2. TRADUÇÃO REMOTA A tradução remota baseia-se num par de códigos, denominados NS-Cliente (NS-CLI) e NS-Serviço (NS-SRV), que utiliza o protocolo de aplicação denominado DNS. A aplicação NS-SRV consulta tabelas de traduções, podendo encontrar delegação e/ou a tradução de nomes. Uma vez que a ARPANet empregava uma técnica de inversão do IP fica estipulada uma tradução pseudo-reversa como uma forma de traduzir o endereço IP para o o conjunto de nomes. Um sistema pode ter uma ou mais tabelas de tradução de um ou mais conjuntos de nomes. Cada conjunto é designado por ZONA. Contudo, uma zona pode ser particionada e, ao invés de nomes (tradução) tem-se delegações, ou seja, um outro sistema ficará encarregado de traduzir enquanto que seu superior delega a sua autoridade. Quando ocorre apenas delegações, diz-se que a autoridade está delegando domínios. Quando ocorre a tradução diz-se que aquele sistema é uma autoridade de uma ZONA. A tradução remota, portanto, cria vários conceitos: A definição de DNS A delegação de nomes (Domínios direto e pseudo reverso); A tradução de nomes (Zonas diretas e pseudo reversas). - 6/9 -
2. SOA - START OF AUTHORITY/AUTORIDADE INICIAL O primeiro atributo de uma zona é a definição da sua autoridade inicial. Ou seja, é o sistema que detém aquela tabela de tradução (direta ou pseudo reversa) ou tabela de delegação (direta ou pseudo reversa). O atributo SOA deve, portanto, definir o nome completo do sistema que foi eleito como principal (normalmente são delegados autoridades para mais de um nome sobre uma mesma zona). A eleição é de responsabilidade do administrador daquela ZONA. A autoridade superior desconhece tal eleição. No registro SOA também é definido quem (humano) é o responsável pela administração daquela ZONA, além de um conjunto de parâmetros indexadores de versão e de tempo. A ZONA recebe pelo SOA o tempo de vida de cada registro lá contido. ZONA. [TV] IN SOA FQHN. FQHE-MAIL. ( série; TempoStatus; DtFalha; Expiração; Ttl; ) Exemplo: Tabela Direta e Pseudo Reversa. empresa.com.br. 86400 IN SOA ns1.empresa.com.br. fulano.empresa.com.br. ( 1; 12H; 10m; 7D; 24H; ) ZONA. TV É o nome da ZONA. Ainda não se sabe se tal nome é uma ZONA ou um domínio. No exemplo é equivalente ao empresa.com.br. (observar que o ponto final é de extrema importância!) é o tempo de vida do registro SOA. IN SOA É o nome do tributo SOA para IN (Internet). FQHN É o nome completo de sistema que armazena a tabela original. Exemplo: ns1.empresa.com.br. Não é necessário que FQHN pertença àquela ZONA. FQHE-MAIL É o e-mail do responsável pela administração da ZONA. Observar que o FQHE- MAIL não contém o caracter '@'. Seguindo o exemplo, o FQHE-MAIL equivale a fulano.empresa.com.br que é a sintaxe a ser seguida para fulano@empresa.com.br. série É o número de série daquela tabela. Os outros NSs delegados (DNS's), questionarão este número de série para saber se a tabela que ele possui está atualizada. 'série' NÃO É UMA DATA. É um número que vai de 1 ao valor de um - 7/9 -
número inteiro de 32 bits com sinal, ou seja: 2147483648. Quando 'série' alcança seu valor máximo é necessário restabelecer a contagem a partir do ZERO. TempoStatus É o período no qual um NS não SOA questionará o SOA sobre o status da tabela, independentemente de qualquer notificação enviada pelo SOA. No exemplo é equivalente a 12 Horas. DtFalha Caso o NS não consiga se comunicar com o SOA no período definido por TempoStatus então ele tentará continuamente aquela verificação a cada período DtFalha. No exemplo equivale a 10 Minutos. Expiração Independentemente de qualquer comunicação prévia, som ou sem sucesso, os outros NS's com autoridade delegada, ou não, removerão qualquer informação da tabela fornecida pelo SOA e solicitarão novamente o conteúdo. Ttl Quando o campo TV de um registro, inclusive o próprio TV do SOA, não foi informado então a aplicação NS-SRV assume o tempo de vida de qualquer registro fornecido pelo SOA, que tem um tempo de vida definido pelo valor ttl. No exemplo equivale a 24 Horas. Os valores de tempo devem acatar a seguinte regra: TempoStatus > DtFalha Expiração > TempoFalha + N DtFalha + Ttl onde N deve assumir um valor inteiro tal que: N Ttl DtFalha. 3. NS - SERVIÇO DE TRDUÇÃO E A AUTORIDADE DELEGADA O atributo NS delega ao nome que o segue (FQDH e SEMPRE de uma tradução direta) a autoridade que sobre a ZONA que o precede, na forma: ZONA. [TV] IN NS FQDH. Pode-se ter quantos registros NS quantos desejar. Cada NS terá o comportamento NS SLAVE a menos que aquele NS seja o SOA que não terá necessariamente o comportamento MESTRE. Não é recomendado atribuir NS's que operam com outros comportamentos (CACHE, FORWARDERS, STUB, etc). Exemplo: empresa.com.br. 172800 IN NS ns1.empresa.com.br. - 8/9 -
empresa.com.br. IN NS ns2.empresa.com.br. empresa.com.br. 86400 IN NS extra.outraempresa.com.br. No exemplo, a ZONA empresa.com.br tem 3 NS's (ns1.empresa.com.br, ns2.empresa.com.br e extra.outraempresa.net.nl), sendo que o último pertence a outra zona, inclusive de outro país). Ou seja, NS's não obedecem regiões geográficas nem lógicas. Eles podem ficar e pertencer a qualquer outra zona, e independem de ser um NS de outras zonas. A primeira designação NS define que o tempo de vida daquela informação é de 172800 segundos. A segunda designação utiliza o valor atribuído ao valor correspondente ao ttl do SOA. A terceira designação tem aquele tempo de vida estipulado em 86400 segundos. Não cabe ao NS de uma zona resolver a tradução direta ou indireta de nomes pertencentes a outras zonas. 4. NS - CRIANDO OUTRAS SUB-ZONAS NA HIERARQUIA Considere que a zona empresa.com.br pretenda dividir aquela zona em várias outras zonas públicas e visíveis para a Internet. O ato de criar uma sub-zona implica na designação de autoridade de tradução daquela sub-zona. Assim, a sintaxe de legação tem a forma: subzona.empresa.com.br. IN NS ns3.empresa.com.br. Isso implica dizer que o SOA delega ao sistema com nome ns3.empresa.com.br. autoridade sobre a zona subzona.empresa.com.br. a - 9/9 -