


<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>robertobraga.net &#187; Root Hints</title>
	<atom:link href="http://blog.robertobraga.net/tag/root-hints/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.robertobraga.net</link>
	<description>blog técnico do Roberto</description>
	<lastBuildDate>Fri, 12 Mar 2010 00:08:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>DNS: Deep Dive, parte 2</title>
		<link>http://blog.robertobraga.net/windows-server/dns-deep-dive-parte-2</link>
		<comments>http://blog.robertobraga.net/windows-server/dns-deep-dive-parte-2#comments</comments>
		<pubDate>Mon, 11 Jan 2010 17:22:10 +0000</pubDate>
		<dc:creator>Roberto Mascarenhas Braga</dc:creator>
				<category><![CDATA[Windows Server]]></category>
		<category><![CDATA[active directory]]></category>
		<category><![CDATA[DHCP]]></category>
		<category><![CDATA[DNS]]></category>
		<category><![CDATA[ldap]]></category>
		<category><![CDATA[Root Hints]]></category>

		<guid isPermaLink="false">http://blog.robertobraga.net/?p=227</guid>
		<description><![CDATA[Na segunda parte do artigo sobre DNS, comentaremos sobre boas práticas na configuração dos servidores DNS.
Boas práticas para redirecionamentos DNS
Forwarders
Recomenda-se configurar pelo menos dois Forwarders em servidores DNS que &#8220;saiam&#8221; para a Internet, por motivos de redundância. Recomenda-se também elaborar um procedimento para checar regularmente se os Forwarders definidos estão respondendo e ativos.
Root Hints
Para servidores [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://blog.robertobraga.net/wp-content/uploads/2010/01/Rrobin.png"></a><em>Na segunda parte do artigo sobre DNS, comentaremos sobre boas práticas na configuração dos servidores DNS.</em></p>
<p><strong>Boas práticas para redirecionamentos DNS</strong><br />
<em>Forwarders</em><br />
Recomenda-se configurar <strong>pelo menos dois <em>Forwarders</em></strong> em servidores DNS que &#8220;saiam&#8221; para a Internet, por motivos de redundância. Recomenda-se também elaborar um <strong>procedimento para checar regularmente se os <em>Forwarders</em> </strong>definidos estão respondendo e ativos.</p>
<p><em>Root Hints</em><br />
Para servidores DNS que não saem diretamente para a Internet, é recomendável <strong>desligar <em>Root Hints</em></strong>. O timeout padrão para uma query repassada aos <em>Forwarders</em> é de 5 segundos. Se não houver retorno nesse tempo, um <em>Root Hint</em> é consultado e a query é resolvida recursivamente. Desligar os Root Hints força o fluxo a passar pelos <em>Forwarders. </em>Se os <em>Forwarders</em> pararem de responder logo será percebido.</p>
<p><strong>Round Robin vs. Netmask Ordering</strong><br />
Na especificação original do DNS, previu-se que para o caso em que existam vários IPs cadastrados para um mesmo hostname o servidor retornaria um dos IP&#8217;s aleatoriamente seguindo o algoritmo <strong><a href="http://technet.microsoft.com/pt-pt/library/cc787484(WS.10).aspx" target="_blank"><em>Round Robin</em></a></strong>. O uso do <em>Round Robin</em> fornece aleatoriamente uma das várias entradas de IP para determinado nome, a cada requisição.</p>
<p>Na verdade, todas as entradas são retornadas a cada requisição e o DNS Client trata a lista recebida. O que o algoritmo faz é ordenar os resultados aleatoriamente. Este cenário é muito interessante para balanceamento de carga, por exemplo. O <em>Round Robin</em> pode ser indesejável, entretando, num cenário em que os servidores estejam dispersos geograficamente e sejam interligados por links de longa distância.</p>
<p>Visando em especial atender a estes cenários foi incluído a partir do Windows 2000 a funcionalidade <em>Netmask Ordering</em> no DNS. O <em>Netmask Ordering </em>faz um cálculo (cálculo explicado <a href="http://support.microsoft.com/?scid=kb%3Ben-us%3B842197&amp;x=13&amp;y=15">aqui</a>) para determinar a distância dos servidores DNS disponíveis ao DNS Client requisitante. Desta forma a lista de IPs devolvida é encabeçada pelo servidor provavelmente &#8220;mais próximo&#8221; (<strong>na mesma subrede ou em subrede próxima</strong>) ao solicitante. Este comportamento é extremamente desejado em cenários de <em>branch office</em>, por exemplo.</p>
<p><em>Netmask Ordering</em> e <em>Round Robin </em>podem coexistir. Este cenário é, inclusive, a configuração padrão. Desta forma os registros estarão organizados tanto por subrede quanto balanceados por aleatoriedade. Caso algum dos dois comportamentos não seja desejado é possível desabilitá-los.</p>
<p><img title="Habilitando Round Robin e Netmask Ordering" src="http://blog.robertobraga.net/wp-content/uploads/2010/01/Rrobin.png" alt="Habilitando Round Robin e Netmask Ordering" width="401" height="465" /></p>
<p><strong>Limpeza de registros DNS</strong><strong><br />
</strong>Registros em um servidor DNS podem ser estáticos ou dinâmicos. Registros estáticos são os criados manualmente, via console MMC/Server Manager, utilitário <em>dnscmd</em> ou provider Powershell. Registros dinâmicos são geralmente criados ao se receber um endereço via servidor DHCP, por exemplo.</p>
<p>Em cenários complexos, os registros dinâmicos geram uma grande carga administrativa. Em geral, há problemas tanto de vários hostnames apontando para um mesmo IP quanto o inverso, vários IPs apontando para o mesmo hostname. O primeiro sinal de que problemas desta ordem estão acontecendo é que serviços que se utilizam de resolução de nomes começam a falhar sem causa aparente.</p>
<p>Felizmente, há procedimentos que automatizam a limpeza de registros dinâmicos que não sejam mais válidos (e apenas destes!). Em especial, a limpeza destes registros é feita combinando-se duas funcionalidades. O <strong>Aging</strong> define para os registros uma data de criação e é também responsável por fazer o controle desses “<em>timestamps</em>”. O <strong>Scavenging</strong> promove um ciclo de limpeza de registros. Apenas registros datados (que sofreram <em>Aging</em>) serão contemplados por uma thread de <em>Scavenging</em>.</p>
<p>Para habilitar os procedimentos de limpeza, são necessárias ações em três níveis: no servidor DNS, na zona em que se deseja habilitar o procedimento e nos registros em si. No servidor, deve-se permitir que o <em>Scavenging</em> seja executado. Na configuração padrão, o <em>Scavenging</em> é executado a cada 7 dias. Para definir esta configuração devemos acessar o console MMC do DNS, Server Manager ou RSAT. Botão direito no servidor DNS &gt; <em>Properties</em> &gt; Aba “<em>Advanced</em>” &gt; Habilitar a opção “<em>Enable automatic scavenging of stale records</em>”.</p>
<p><a href="http://blog.robertobraga.net/wp-content/uploads/2010/01/Habilitando_Scavenging1.png"><img class="size-medium wp-image-219 alignnone" title="Habilitando Scavenging no servidor" src="http://blog.robertobraga.net/wp-content/uploads/2010/01/Habilitando_Scavenging1-300x205.png" alt="Habilitando Scavenging no servidor" width="300" height="205" /></a></p>
<p>O processo de <em>Aging/Scavenging</em> só atua sobre registros dinâmicos. Pode-se facilmente observar quais registros DNS são dinâmicos através do console de gerenciamento do DNS a partir do Windows Server 2008.</p>
<p><a href="http://blog.robertobraga.net/wp-content/uploads/2010/01/DDNS.png"><img class="aligncenter size-full wp-image-220" title="Timestamp dos registros DNS dinâmicos sendo exibido" src="http://blog.robertobraga.net/wp-content/uploads/2010/01/DDNS.png" alt="Timestamp dos registros DNS dinâmicos sendo exibido" width="600" height="333" /></a></p>
<p>Quanto à zona, deve-se certificar que a zona em que se deseja habilitar os procedimentos de manutenção automática seja primária. Deve-se ainda definir o <em>Aging</em> para a zona para garantir que seu registros criados sejam datados automaticamente. Para habilitar a opção de <em>Aging</em>, botão direito na zona &gt; “<em>Properties</em>” &gt; “<em>Aging</em>” &gt; marcar “<em>Scavenge stale resource records</em>” e definir “<em>No-refresh interval</em>” e “<em>Refresh interval</em>”.</p>
<p>A definição dos intervalos “<em>Refresh</em>” e “<em>No-refresh</em>” é muito importante para o sucesso do procedimento de limpeza. O intervalo de “<em>No-refresh</em>” está relacionado com a manutenção constante do registro e define o período em que o registro permanece na base de dados do DNS sem renovar o <em>timestamp</em>. Outras alterações no registro são permitidas. O objetivo deste intervalo é diminuir tráfego de replicação por renovação de <em>timestamp</em>.</p>
<p>O valor “<em>Refresh</em>” refere-se ao período de tempo em que os <em>timestamp</em> dos registros pode ser renovado. Quando da atualização do <em>timestamp</em> registro, o período de “<em>No-refresh</em>” é novamente iniciado. Automaticamente é feita a replicação do registro para outros servidores para a zona. Se o registro não for atualizado pelo DNS Client durante o “<em>Refresh Interval</em>” o registro é considerado como marcado para deleção pelo <em>Scavenging</em>.</p>
<p><a href="http://blog.robertobraga.net/wp-content/uploads/2010/01/Habilitando_Aging.png"><img class="aligncenter size-full wp-image-221" title="Definindo as propriedades de aging (por zona)" src="http://blog.robertobraga.net/wp-content/uploads/2010/01/Habilitando_Aging.png" alt="Definindo as propriedades de aging (por zona)" width="600" height="345" /></a></p>
<p><strong>Definindo intervalos e verificando funcionamento</strong><br />
O processo de <em>Scavenging</em> é configurado, como dito anteriormente, no nível de servidor DNS. A cada ciclo, a thread de Scavenging verifica quais zonas são primárias para o servidor. Dentre as zonas primárias, o processo será executado apenas nas zonas com <em>Aging</em> habilitado. Nessas zonas, <strong>o procedimento vai verificar quais registros dinâmicos expiraram</strong>. Para um registro ser considerado expirado ele deve ter seu timestamp <strong>maior que a soma dos intervalos de “<em>No-refresh</em>” e “<em>Refresh.</em></strong> Isto significa que o registro foi criado e não foi renovado pelo DNS Client que o criou e, provavelmente, refere-se a um computador que obteve um novo endereço IP via DHCP, por exemplo. <strong></strong></p>
<p>Como registros dinâmicos são em geral criados por concessões de endereço IP obtidas via DHCP, uma boa prática é definir os intervalos de <em>Aging</em> associados à duração do <em>lease</em> DHCP. Desta forma<strong>, a soma dos intervalos de “<em>No-refresh</em>” e “<em>Refresh</em>” deve ser menor que a duração do lease DHCP</strong>. Assim, a limpeza provavelmente ocorrerá logo antes da expiração do <em>lease</em>. Se o lease do servidor DHCP tiver duração de 8 dias, por exemplo, é razoável definir o “No-refresh” para 4 dias e “Refresh” para 3 dias (4+3 = 7, menor que 8).</p>
<p><a href="http://blog.robertobraga.net/wp-content/uploads/2010/01/intervalo.png"><img class="aligncenter size-full wp-image-222" title="Intervalos envolvidos na limpeza" src="http://blog.robertobraga.net/wp-content/uploads/2010/01/intervalo.png" alt="Intervalos envolvidos na limpeza" width="624" height="131" /></a></p>
<p>Dois eventos descrevem o correto funcionamento dos processos de limpeza. O evento 2501 descreve que o processo de <em>Scavenging</em> ocorreu corretamente. O evento 2502 reporta que, apesar do <em>Scavenging</em> ter sido executado, provavelmente nenhuma zona estava configurada para remoção automática de registros.</p>
<p>Outra recomendação relevante é tomar alguns cuidados na implementação. O <em>Scavenging</em> deve ser definido em servidores de sites centrais. Isto evita deleções acidentais. Deve ainda se tomar cuidado com a duração dos intervalos, definindo-os com uma margem de segurança.</p>
<p><em>*Contribuiu Luis Roberto Tognini &#8211; Premium Field Engineer, Microsoft</em></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.robertobraga.net/windows-server/dns-deep-dive-parte-2/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
