Windows Server 2008 R2 interpreteaza gresit raspunsul unui server de DNS BIND

Salut,

Numele meu este Liviu si fac parte din echipa de Networking din RoGTSC.

In acest post o sa va vorbesc despre o problema destul de des intalnita de la aparitia sistemul de operare Windows Server 2008 R2, exemplificat de un scenariu concret pe care l-am intalnit.

Avem un Windows Server 2008 R2 care totodata este si DC (Domain Controller). DC-ul isi face actualizarea recorduriilor de DNS la un DNS 3rd Party, si anume un server BIND. Serverul de 2008 R2 isi face inregistrarea recorduriilor de DNS in mod dinamic.

Problema intalnita:
Desi serverul isi inregistreaza corect toate recorduriile in DNS, intalnim urmatoarea eroare:

 

clip_image001

Am vazut in jur de 15 erori de genul acesta, cate o eroare pentru fiecare record de DNS ce trebuia inregistrat de Netlogon pe serverul BIND.

Error      10/22/2009 10:41:32 AM               NETLOGON         5774       None

The dynamic registration of the DNS record '_ldap._tcp.test.local.com 600 IN SRV 0 100 389 Server.test.local.com.' failed on the following DNS server: 

DNS server IP address: 192.168.1.1
Returned Response Code (RCODE): 0
Returned Status Code: 9502 

Err 9502: 
DNS_ERROR_BAD_PACKET
# Bad DNS packet.

Ca sa verificam raspunsul serverului de DNS am luat si un Network Trace de pe DC. Am observat urmatorul lucru:

1              09:41:32.547375                192.168.1.2         192.168.1.1         DNS       Dynamic update SOA _tcp.test.local.com
Zone:
          + _tcp.test.local.com: type SOA, class IN
Updates:
          +_ldap._tcp.test.local.com: type SRV, class IN, priority 0, weight 100, port 389, target Server.test.local.com

2              09:41:32.547375                192.168.1.1         192.168.1.2         DNS       Dynamic update response
Flags: 0xa880 (Dynamic update response, No error)
Zones: 0
Prerequisites: 0
Updates: 0
Additional RRs: 0

Din cate vedem in Trace-ul confirma ca recorduriile sunt create pe serverul de DNS. Serverul de DNS raspunde la Dynamic Update-ul DC-ului cu "Dynamic update response, No error"
Cu toate ca raspunsul serverului de DNS este valid, putem observa ca raspunsul acestuia nu contine Zones, Prerequisites, Updates si Additional RRs.

 

Conform RFC-ului 2136, raspunsul serverul de DNS nu trebuie sa contina Zones, Prequisites, Updates si Additional RRs.

Concluzia:

Desi totul pare sa fie in ordine, noua ni se genereaza o eroare.

Solutia pentru aceasta problema se afla intr-un articol de KB nou aparut:

DNS updates may be incorrectly reported as failed when you use a third-party DNS server application for DNS registration on a computer that is running Windows Server 2008 R2 or Windows 7

https://support.microsoft.com/kb/977158

In urma instalarii Hotfix-ului din acest articol de KB, va fi modificat printre altele si Dnsapi.dll, iar raspunsul serverului de DNS va fi interpretat corect de catre DC-ul nostru de Windows Server 2008 R2 si eroare nu va mai fi generata.

--- Liviu