Atualizações dinâmicas de DHCP falhando

 

Artigo Escrito por Bruno Portela

Problema:

Mesmo com todas as configurações definidas no DHCP para que o mesmo realizasse o update no DNS, as opções no escopo e na conta de serviço, o computador cliente ainda estava tentando se registrar no DNS, completamente ignorando as configurações enviadas pelo DHCP.

Nessa tela, onde você configura as opções de atualização no DHCP, nesse caso, o servidor sempre será responsável por esse update.

Diagnóstico:

Após algumas horas de troubleshooting, testando com parâmetros diferentes e com o Name Protection ligado e desligado, nenhuma dessas opões estava surtindo efeito no cliente, encontramos o problema usando o Netmon.

Aqui o processo DORA entre o DHCP e o cliente, nesse caso, um DHCP relay.

Frame Time local adjusted Time delta Source Destination Proto Description

3247 15:10:11 19/08/2015 27.6429112 192.168.1.0 192.168.1.1 DHCP DHCP:Request, MsgType = DISCOVER, TransactionID = 0xE4D7FB2E

3248 15:10:11 19/08/2015 27.6430731 192.168.1.1 192.168.1.0 DHCP DHCP:Reply, MsgType = OFFER, TransactionID = 0xE4D7FB2E

3251 15:10:11 19/08/2015 27.6443007 192.168.1.0 192.168.1.1 DHCP DHCP:Request, MsgType = REQUEST, TransactionID = 0xE4D7FB2E

3252 15:10:11 19/08/2015 27.6456703 192.168.1.1 192.168.1.0 DHCP DHCP:Reply, MsgType = ACK, TransactionID = 0xE4D7FB2E

Nos últimos dois pacotes, nós temos as opção 81, esta opção é responsável em informar para o cliente quem irá fazer o update no DNS.

Primeiro o cliente pede por esta informação no pacote de REQUEST, e o DHCP preenche essa informação no pacote ACK.

A estrutura é algo parecido com isso.

– DHCPEOptionsFullyQualifiedDomainName:

– FullyQualifiedDomainName: – Type 81

Code: Fully Qualified Domain Name, 81(0x51)

Length: 3 UINT8(s)

– Flag: 0 (0x0)

MBZ: (0000….) 0

N: (….0…) SHOULD NOT perform the A RR (FQDN to address) DNS updates

E: (…..0..) ASCII encoding of the Domain Name field (deprecated)

O: (……0.) the server has not overridden the client’s preference for the ‘S’ bit

S: (…….0) SHOULD NOT perform the A RR (FQDN to address) DNS updates

RCODE1: 255 (0xFF)

RCODE2: 255 (0xFF)

Os valores que são importantes são os que estão na sessão de Flag, que indicam para o cliente quem será responsável por cada update.

A sessão acima é o ACK do DHCP com problema, e ele está definido como zero, dizendo que cliente deve fazer o update no DNS, e isso é exatamente o cliente estava tentando fazer.

Mas como a zona do DNS estava configurado para permitir somente updates Seguros, o DNS estava recusando todas as atualizações do cliente, porque o mesmo não era membro do domínio.

A atualização do PTR sempre é realizado, porque o DHCP é responsável por essa tarefa, não o cliente.

Para simular o ambiente, usei um servidor DHCP configurado para atualizar o DNS, e um cliente fora do domínio, e durante a renovação de IP, o resultado foi o seguinte.

– DHCPEOptionsFullyQualifiedDomainName:

– FullyQualifiedDomainName: – Type 81

Code: Fully Qualified Domain Name, 81(0x51)

Length: 3 UINT8(s)

– Flag: 3 (0x3)

MBZ: (0000….) 0

N: (….0…) SHOULD NOT perform the A RR (FQDN to address) DNS updates

E: (…..0..) ASCII encoding of the Domain Name field (deprecated)

O: (……1.) the server has overridden the client’s preference for the ‘S’ bit

S: (…….1) SHOULD perform the A RR (FQDN to address) DNS updates

RCODE1: 255 (0xFF)

RCODE2: 0 (0x0)

Os valores devem ser 1, não 0.

Com esse valor definido, o DHCP fez a atualização do registro no DNS corretamente.

Solução:

O cliente usava um DHCP em Windows Server 2003, e ele fez a migração para o 2012R2.

Provavelmente ele migrou toda a base em vez de somente os escopos, e a database podia estar corrompida antes da migração ou foi durante o processo.

A correção foi ele exportar os escopos, usando o Power Shell: http://blogs.technet.com/b/heyscriptingguy/archive/2014/02/24/using-powershell-to-migrate-dhcp-servers-part-1.aspx

Deletar a base toda, e importar novamente.

Com isso, o DHCP passou a enviar corretamente os parâmetros para o cliente DHCP e ele estava criando os registros no DNS.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s