Professional Documents
Culture Documents
1. Introduo
Os servidores DNS podem ser divididos em trs tipos principais: servidores que apenas armazenam as informaes recebidas de outros servidores na Internet, tambm conhecidos como caching only, servidores mestres primrios e servidores mestres secundrios. Todo servidor de nomes interage com outros servidores de nomes na Internet para obter as informaes solicitadas por seus clientes. Esta informao, uma vez obtida, passa a residir no cache do servidor de nomes utilizado durante um tempo especificado pelo responsvel por aquela informao. Desta forma, da prxima vez que a mesma informao for solicitada, no mais haver a necessidade de se consultar outros servidores de nomes. A informao ser fornecida a quem solicit-la diretamente a partir do cache local. Esta funcionabilidade visa otimizar o uso da rede como um todo e acelerar o tempo de resposta. Servidores mestres primrios possuem autoridade sobre um ou mais domnios. Alm das informaes mantidas em seu cache, obtidas de outros servidores de nomes, o servidor primrio a fonte de informao oficial a respeito de um domnio. A informao que os servidores mestres primrios disponibilizam lida a partir de arquivos locais, configurados pelo administrador do domnio. Tomemos por exemplo o servidor de nomes da empresa fictcia NetRoad, ns.netroad.com.br. Este computador fornece informaes oficiais a respeito de todos os computadores existentes dentro da NetRoad. Servidores de nomes de todo o mundo, ao desejarem informaes sobre algum computador dentro da NetRoad, precisam enviar uma solicitao ao servidor de nomes ns.netroad.com.br. Alm destas informaes oficiais, o servidor de nomes da NetRoad, possui tambm informaes no oficiais, armazenadas em seu cache. Qualquer servidor primrio, alm de fornecer as informaes oficiais a respeito do domnio pelo qual so responsveis, possui em seu cache informaes no oficiais, obtidas de outros servidores de nomes. Estas informaes so consideradas no oficiais visto terem sido obtidas de outros servidores de nomes e, como tal, esto sujeitas a mudanas. As informaes mantidas no cache possuem um prazo de validade. Todo servidor de nomes oficial de um domnio, ao disponibilizar esta informao para outros computadores na Internet, a fornece juntamente com o prazo de validade ou TTL (Time to Live). O TTL indica por quanto tempo a informao vlida. Aps este tempo a informao deve ser descartada e novamente solicitada junto ao servidor de nomes oficial do domnio. A definio do valor que o TTL deve assumir deciso do administrador do domnio. O administrador deve considerar o nvel de volatilidade das informaes sobre seus
computadores e especificar um valor compatvel para o campo TTL. Tais valores podem ser alterados para intervalos maiores ou menores tambm devido a fatores externos. Por exemplo, um administrador dever reduzir bastante o valor do TTL quando estiver para realizar uma migrao de endereos IP ou de link de acesso Internet. Entretanto, se ele sempre operar com este valor baixo demais, ter uma carga excessiva de requisies de informaes, prejudicando o acesso a informaes mais teis como as pginas web ou o fluxo de emails. Os servidores mestres secundrios, como o nome diz, fornecem informaes oficiais a respeito de um ou mais domnios. Esta informao, todavia, no lida a partir de arquivos locais mas transferida via rede do servidor mestre primrio. O processo named, ao entrar no ar, determina quais os domnios para os quais deve atuar como servidor mestre secundrio, e ento entra em contato com os servidores mestres primrios e solicita a transferncia das zonas correspondentes. Essa transferncia ocorre sempre e gera arquivos de configurao no servidor mestre secundrio. Alteraes nos arquivos que so transferidos pela rede no surtiro nenhum efeito, pois sero sobrescritos e todas as mudanas perdidas quando o sincronismo entre os servidores primrios e secundrios for novamente realizado. No existe uma necessidade de que um servidor de nomes seja estritamente primrio ou secundrio. perfeitamente possvel e bastante comum que um servidor de nomes seja primrio para alguns domnios e secundrio para outros. Entretanto, interessante ter o servidor de nomes primrio geograficamente separado do servidor de nomes secundrio para um mesmo domnio. Isso d-se para garantir que em falhas de hardware ou em uma determinada rede, o acesso ao domnio no fique comprometido. Se os servidores ficarem em redes distintas, digamos que a NetRoad tenha seu secundrio hospedado pela USP, a confiabilidade aumenta ainda mais, j que possvel termos falhas temporrias para o acesso a alguma rede, mas no para outras.
2. Arquivos de Configurao
Iremos proceder agora construo dos arquivos de configurao de um servidor de nomes de um provedor de acesso fictcio. A empresa chama-se NetRoad e seu domnio na Internet denomina-se netroad.com.br. Este provedor de acesso, em comeo de atividades, possui apenas um cliente, uma empresa chamada MestresDaRede. Adicionalmente, esto prestando servio de servidor mestre secundrio para a empresa MagosDaInternet, detentora do domnio magosdainternet.com.br. Este provedor possui os seguintes equipamentos:
roteador com 16 portas assncronas servidor de nomes servidor Web servidor FTP servidor de Usenet News seis micro computadores utilizados pelos funcionrios da empresa
directory /usr/local/named; };
Esta opo, contendo a diretiva directory, indica o diretrio base onde se encontram todos os arquivos de configurao do servidor de nomes. O arquivo named.root, por exemplo, referenciado pela diretiva hint, encontra-se na realidade no diretrio
/usr/local/named/named.root. zone netroad.com.br { type master; file p/netroad.db; };
A diretiva anterior, indica que o servidor de nomes responsvel pelo domnio netroad.com.br. O arquivo localizado em /usr/local/named/p/netroad.db, contm as informaes sobre todos os computadores do provedor conectados Internet. O nome netroad.db totalmente opcional, ficando a critrio do administrador DNS. A localizao no subdiretrio p, feita para sinalizar mais claramente ao administrador do domnio que se trata de um domnio para o qual se primrio (p, de primrio). O sufixo db tambm uma conveno comum na Internet e significa data base. Da mesma forma, temos diretivas semelhantes para o domnio MagosDaRede, para o qual este provedor atua como servidor primrio.
zone magosdainternet.com.br { type slave; file s/magosdainternet.db; masters { 222.222.22.22; }; };
J para o domnio MagosDaInternet este provedor atua como servidor secundrio (type slave). Neste caso as informaes sobre este domnio so obtidas de outro servidor DNS, no caso, o computador cujo nmero IP 222.222.22.22.
zone 20.200.200.IN-ADDR.ARPA { type master; file p/200.200.20.0.db; };
A diretiva acima diz respeito resoluo reversa, ou seja, tendo um nmero IP eu desejo obter o nome de domnio correspondente
zone . { type hint; file named.root; };
A diretiva anterior indica em qual arquivo se encontra a lista dos servidores raiz da Internet, os servidores que respondem pelo domnio de mais alto nvel, o domnio "."
Passaremos agora a descrever detalhadamente cada um dos arquivos referenciados no arquivo named.conf, o que ir nos proporcionar uma melhor compreenso do funcionamento de um servio DNS.
Cada uma das linhas do arquivo netroad.db o que se chama de Resource Record (RR), ou traduzindo, Registro de Recurso. O arquivo netroad.db o que se denomina de zona. Esta zona contm os registros descritivos do domnio netroad.com.br. No arquivo netroad.db, todos os registros so do tipo INternet (IN). Os registros INternet, por sua vez, so de vrios tipos. SOA (Start Of Authority), NS (Name Server), A (Address), MX (Mail eXchanger) e CNAME (Canonical Name).
Este registro SOA est disposto em vrias linhas para facilidade de leitura, mas na verdade apenas um registro. Observe a abertura de parenteses no final da primeira linha e o fechamento na ltima linha. Os parenteses permitem que o registro se extenda por vrias linhas. Comentrios, ou seja, informaes para os seres humanos que lero os arquivos e ignoradas pelo computador, so iniciados por ;. O primeiro valor, netroad.com.br., indica o domnio ao qual as informaes do registro SOA se aplicam. Em seguida temos o valor IN, indicando que este um registro do tipo INternet. Temos ento a indicao do tipo de registro Internet, SOA, seguida pelo nome do computador onde esta zona reside, o computador ns.netroad.com.br, seguida pelo endereo eletrnico do administrador desta zona, dnsmaster@netroad.com.br. Note bem que no endereo eletrnico, o caracter @ foi substitudo pelo caracter .. Isto se d devido ao fato de que o caracter @ tem um significado especial, que ser abordado mais frente. Todos os valores da segunda linha em diante, so utilizados por servidores secundrios do domnio netroad.com.br. norma seguida pela maior parte das autoridades que cuidam do registro de domnios na Internet que cada domnio possua no mnimo dois servidores de nomes atendendo pelo domnio registrado. No Brasil o registro de um domnio somente aceito se j existirem dois servidores de nomes configurados e fornecendo informaes corretas sobre este domnio. O servidor primrio aquele onde os arquivos de configurao so criados e mantidos pelo administrador DNS. O servidor secundrio realiza uma cpia destas dados via rede e os grava em seu disco rgido. Os campos que passaremos a discutir agora servem para estabelecer este sincronismo entre servidores primrios e secundrios. O primeiro deles, o valor
2004122103 ; Serial
indica a verso do mapa. Todos servidores secundrios, como veremos em breve, so configurados para entrar em contato com o servidor primrio regularmente para verificar se houveram mudanas nos mapas descritivos das zonas para qual atende. Os arquivos no so verificados integralmente, verifica-se apenas o nmero da verso do mapa. Caso a verso do mapa existente no servidor primrio seja maior do que a verso que o servidor secundrio possui, ento realizada uma transferncia de zona, pois isto indica que os dados foram alterados. O servidor secundrio solicita ento ao servidor primrio a transferncia dos dados desta zona. A forma como este nmero escrito no segue nenhuma norma fixa. A conveno mostrada aqui, por sinal bastante comum, utilizada para convenincia do administrador. Os quatro primeiros dgitos, 2004, indicam o ano, os quatro dgitos seguintes indicam o ms, dezembro, e o dia, 21, em que os dados desta zona foram alterados. Os prximos dois dgitos, 03, indicam que esta foi a terceira modificao realizada no dia. Resumindo, este mapa foi modificado trs vezes no dia 21 de dezembro de 2004. Esta certamente uma informao bastante til para o administrador DNS. O prximo valor
10800 ; Refresh
indica de quanto em quanto tempo o servidor secundrio deve contactar o servidor primrio para verificar se houveram mudana nos dados do domnio para o qual secundrio. Este valor expresso em segundos, no nosso caso 10.800 ou 3 horas. A cada trs horas o servidor secundrio do domnio netroad.com.br entrar em contato com o servidor primrio e verificar se o nmero da verso do mapa que possui est ou no atualizada. Caso no esteja, solicitado ao servidor primrio a transferncia da zona. Em seguida temos o valor
1800 ; Retry
que indica quanto tempo o servidor secundrio deve aguardar para tentar novamente uma conexo com o servidor primrio quando houver uma falha de comunicao. Como configurado, o servidor secundrio deve contactar o servidor primrio a cada trs horas. Caso uma destas conexes falhe, uma nova tentativa deve ser feita dentro de 1.800 segundos, ou 30 minutos. As tentativas se repetem at que seja estabelecida uma conexo. Depois de 3.600.000 segundos (3600000 ; Expire), ou 41 dias, o servidor secundrio desiste ento de contactar o servidor primrio, e expira todos os dados relativos ao domnio cujo servidor primrio est fora do ar. Todos os arquivos relativos zona expirada so apagadas e deste momento em diante o servidor secundrio no mais responde perguntas sobre este domnio. O prximo valor
86400) ; Minimum
indica o valor mnimo, ou TTL (Time to Live) aplicado aos registros (RR) deste arquivo. No nosso exemplo este valor de 86.400 segundos ou um dia. Todas as informaes fornecidas pelos servidores (primrios ou secundrios) do domnio netroad.com.br a
outros servidores ser mantida no cache dos servidores que solicitaram esta informao por apenas um dia. Aps 24 horas a informao expirada e removida do cache. Solicitaes posteriores devem novamente ser obtidas junto aos servidores do domnio netroad.com.br. Os valores utilizados so utilizados apenas a ttulo de ilustrao. O certo que cada administrador determine os valores mais adequados para sua situao especfica. Todos os valores devem ser analisados e configurados em conformidade com o que for mais adequado. O valor do TTL, em nosso exemplo de 86.400 segundos, certamente no o mais adequado em ambientes onde as informaes forem mais estveis. Talvez um valor mais adequado seja uma semana ou at mais. Novamente, em um ambiente onde os dados so estveis, o perodo de atualizao (refresh) pode ser maior que trs horas. O valor de um dia ou at mesmo mais tempo pode ser adequado. No existe uma receita fixa, tudo depende do bom senso do administrador DNS. No utilize o copy & paste como receita de bom senso.
Analisemos ento o primeiro registro. esquerda encontra-se o nome do registro, netroad.com.br. No lado direito encontra-se o nome do servidor que atende a este domnio. Assim temos que todas perguntas relativas ao domnio netroad.com.br so respondidas pelo computador cujo nome ns.netroad.com.br. Mas temos ento um problema. Se todas as perguntas sobre computadores pertencentes ao domnio netroad.com.br devem ser respondidas pelo computador ns.netroad.com.br, como ento achar o computador ns.netroad.com.br, que faz parte do mesmo domnio pelo qual responde? Esta uma tpica situao do que veio primeiro, o ovo ou a galinha. Este problema resolvido acrescentando-se em seguida um registro do tipo A (Address) que informa o nmero IP do servidor de nomes do domnio netroad.com.br (em nosso exemplo o endereo IP 200.200.20.1). Este tipo de registro conhecido como registro cola (glue record). Este registro necessrio sempre que o servidor de nomes encontra-se dentro do domnio sobre o qual autoridade.
O domnio netroad.com.br possui dois servidores de nomes: ns.netroad.com.br e ns.magosdainternet.com.br. Observe que o segundo servidor de nomes no possui um registro cola associado. Isto porque o computador ns.magosdainternet.com.br no pertence ao domnio netroad.com.br. A incluso do registro cola neste caso no apenas desnecessria como tambm desaconselhvel. Desnecessria e desaconselhvel porque os dados relativos ao domnio do segundo servidor de nomes, magosdainternet.com.br, so gerenciados por outras pessoas. O nmero IP do servidor de nomes pode mudar. Caso a modificao no seja comunicada aos administradores do domnio netroad.com.br vrios transtornos podem ocorrer. Informaes incorretas sero passadas aos servidores de nomes que fizerem consultas relativas ao domnio netroad.com.br. Pior ainda, em caso de falha do servidor de nomes primrio, o secundrio no ser encontrado e todos os computadores deste domnio ficaro virtualmente isolados. Registros cola devem ser utilizados apenas quando estritamente necessrio. No se ganha nada utilizando-se estes tipos de registro indiscriminadamente.
Os registros do tipo MX (Mail Exchanger) provm a interao entre o DNS e o correio eletrnico. Novamente, direita temos o nome do domnio (netroad.com.br), o TTL, tipo do registro (INternet), o tipo de registro (MX), a precedncia e o nome do servidor de mensagens (mail.netroad.com.br). Temos ento que o domnio netroad.com.br atendido por dois servidores: mail.netroad.com.br e mail.magosdainternet.com.br. A precedncia um nmero que indica qual servidor tem prioridade no encaminhamento das mensagens. Quanto menor este nmero maior a prioridade. Mensagens enviadas para qualquer computador dentro do domnio netroad.com.br so preferencialmente encaminhadas para o computador mail.netroad.com.br. Se este servidor estiver indisponvel por algum motivo, as mensagens so ento encaminhadas ao servidor MX secundrio, o computador mail.magosdainternet.com.br.
8. Registros A (Address)
Este o tipo de registro mais frequentemente utilizado e realiza o mapeamento entre endereos IP (Addresses) e nomes.
Um erro bastante comum apontar, em um registro do tipo CNAME para outro registro do tipo CNAME. Ainda em nosso exemplo, a configurao
www.netroad.com.br. ftp.netroad.com.br. 10800 IN 10800 IN CNAME ftp.netroad.com.br. CNAME ns.netroad.com.br.
invlida, visto que www.netroad.com.br est apontando para , que no um nome cannico e sim um apelido (alias). Todos os registros CNAME, em nosso exemplo, devem obrigatoriamente apontar para ns.netroad.com.br que o nome verdadeiro (o que definido com um registro do tipo A).
IN IN IN IN IN
; initialize cache of Internet domain name servers ; (e.g. reference this file in the "cache . <file>" ; configuration file of BIND domain name servers). ; ; This file is made available by InterNIC ; under anonymous FTP as ; file /domain/named.root ; on server FTP.INTERNIC.NET ; -ORRS.INTERNIC.NET ; ; last update: Jan 29, 2004 ; related version of root zone: 2004012900 ; ; ; formerly NS.INTERNIC.NET ; . 3600000 IN NS A.ROOT-SERVERS.NET. A.ROOT-SERVERS.NET. 3600000 A 198.41.0.4 ; ; formerly NS1.ISI.EDU ; . 3600000 NS B.ROOT-SERVERS.NET. B.ROOT-SERVERS.NET. 3600000 A 192.228.79.201 ; ; formerly C.PSI.NET ; . 3600000 NS C.ROOT-SERVERS.NET. C.ROOT-SERVERS.NET. 3600000 A 192.33.4.12 ; ; formerly TERP.UMD.EDU ; . 3600000 NS D.ROOT-SERVERS.NET. D.ROOT-SERVERS.NET. 3600000 A 128.8.10.90
; ; formerly NS.NASA.GOV ; . 3600000 E.ROOT-SERVERS.NET. 3600000 ; ; formerly NS.ISC.ORG ; . 3600000 F.ROOT-SERVERS.NET. 3600000 ; ; formerly NS.NIC.DDN.MIL ; . 3600000 G.ROOT-SERVERS.NET. 3600000 ; ; formerly AOS.ARL.ARMY.MIL ; . 3600000 H.ROOT-SERVERS.NET. 3600000 ; ; formerly NIC.NORDU.NET ; . 3600000 I.ROOT-SERVERS.NET. 3600000 ; ; operated by VeriSign, Inc. ; . 3600000 J.ROOT-SERVERS.NET. 3600000 ; ; operated by RIPE NCC ; . 3600000 K.ROOT-SERVERS.NET. 3600000 ; ; operated by ICANN ; . 3600000 L.ROOT-SERVERS.NET. 3600000 ; ; operated by WIDE ; . 3600000 M.ROOT-SERVERS.NET. 3600000 ; End of File
NS A
E.ROOT-SERVERS.NET. 192.203.230.10
NS A
F.ROOT-SERVERS.NET. 192.5.5.241
NS A
G.ROOT-SERVERS.NET. 192.112.36.4
NS A
H.ROOT-SERVERS.NET. 128.63.2.53
NS A
I.ROOT-SERVERS.NET. 192.36.148.17
NS A
J.ROOT-SERVERS.NET. 192.58.128.30
NS A
K.ROOT-SERVERS.NET. 193.0.14.129
NS A
L.ROOT-SERVERS.NET. 198.32.64.12
NS A
M.ROOT-SERVERS.NET. 202.12.27.33
processos que se utilizarem do endereo 127.0.0.1 iro falhar, causando alguns transtornos. Devido a tudo isto, nunca se esquea de configurar um mapa para a interface loopback, como abaixo:
0.0.127.IN-ADDR.ARPA. IN SOA dnsmaster.netroad.com.br. ( 1 10800 3600 604800 86400 ) ns.netroad.com.br. ; ; ; ; ; Serial Refresh Retry Expire Minimum
indicam que nosso servidor tambm um servidor secundrio dos domnios magosdainternet.com.br e 21.200.200.IN-ADDR.ARPA. Para estes domnios no precisamos fazer absolutamente nada, visto que todos os dados sero transferidos do servidor primrio destes domnios, identificado pelo nmero IP 222.222.22.22 e gravados no diretrio /usr/local/named/s/magosdainternet.db e
/usr/local/named/s/200.200.21.0.db.