Keeping DNS clean with the help of DHCP
Inregistrarile outdated in DNS sunt ceva “normal” cam pentru orice admin cu o retea maricica. Cum saptamana trecut am avut conversatii cu mai multe persoane pe acest topic m-am gandit sa mai arunc un ochi pe DHCP si DNS. De ce DHCP, pentru ca este principalul mod prin care clientii isi inregistreaza numele in DNS. Cu cat intelegem mai bine interactiunea dintre cele doua componente cu atat mai usor vom intelege de ce avem inregistrari outdated in DNS.
Sa lamurim cateva chestii de baza:
– clientii configurati static isi inregistreaza singuri inregistrarile A si PTR in DNS. Cum in general vorbim de zone DNS AD Integrated, inseamna ca vor fi owneri pe acele obiecte si deci doar ei le vor putea updata (by default). Deci daca un astfel de client paraseste reteaua sa zicem si nu se mai intoarce, inregistrarea lui poate ramane in DNS pentru totdeauna. De asta trebuie sa aveti configurat DNS Aging and Scavenging.
– Aging and Scavenging e de baza intr-o infrastructura cu mai multe servere DHCP
– clientii setati pe DHCP vor negocia prin optiunea 81 cine va face inregistrarea in DNS. By default clientul isi face A-ul, iar DHCP-ul face PTR-ul. Recomand sa schimbati aceasta optiune si sa setati ca serverul DHCP sa faca inregistrarile in DNS. In felul acesta DHCP-ul va fi owner pe inregistrari iar daca este setat si cu credentialele potrivite, cu atat mai bine.
– serverele DHCP trebuie setate sa foloseasca un user special facut pentru dynamic updates. Daca toate serverele din organizatie folosesc acelasi user atunci, atunci clientul se poate plimba intre servere iar serverele ii vor putea updata inregistrarile.
Ok, am lamurit cateva chestii de baza, acum sa luam un caz in care generam inregistrari outdated in DNS. Userul scoate cablul din laptop si pleaca acasa, sau mai bine in vacanta. In mod normal clientul ar trebui sa faca un release pe DHCP si DNS (la shutdown sau ipconfig /release) insa daca se deconecteaza brusc lucrul asta nu se mai intampla.
Deci ce se intampla cu acea inregistrare in DNS? Pai e posibil sa ramana mult timp acolo daca nu avem setat Aging and Scavenging sau “Discart A and PTR records when lease is deleted”.
Da, serverul DHCP poate sterge inregistrarile in DNS (daca le-a facut el si are drepturi), dar asta doar cand expira lease-ul. Iar cu un lease de 8 zile, abia dupa 8 ZILE! Daca laptopul a fost deconectat dupa o zi, inseamna inca 7 zile in care inregistrarea mea pluteste prin DNS.
Dar si optiunea asta este influentata de cateva chestii. Odata de drepturi am zis. Pe urma de durata lease-ului.
Urmeaza optiunea DatabaseCleanupInterval ce specifica la ce interval serverul trece prin baza de date si sterge lease-urile expirate (60min by default, 4h pe W2K)
http://technet.microsoft.com/en-us/library/cc963208.aspx
Dar asta nu e tot, chiar daca lease-ul a expirat, nu este sters din baza de date. Exista un grace period numit LeaseExtension (4h by default). Abia dupa ce trece si LeaseExtension si ruleaza din nou DatabaseCleanup, abia atunci lease-ul este eliberat si sunt trimise comenzi catre DNS sa stearga vechile inregistrari. Astfel serverul DHCP va sterge si A-ul si PTR-ul (daca poate bineinteles).
http://technet.microsoft.com/en-us/library/cc783573(v=ws.10).aspx
Am lamurit aspectul asta, dar ce se intampla cu vechile inregistrari ce nu au fost puse in DNS de catre serverul DHCP. Pai e simplu si am mai spus. Aging and Scavenging. Sau se poate manual; cu powershell poti face foarte multe in ziua de azi si chiar exista exemple pe net. Doar sa ai rabdare, iar asta e regula de baza in DNS.
In Windows 2012 R2 exista si optiunea “Disable dynamic updates for DNS PTR records”. In felul acesta se va face update doar la A.
Deci, durata lease-ului este foarte importanta. Un lease mare poate face sa avem inregistrari outdated in DNS (unde clientul initial este offline de mult timp) dar ne poate scapa de duplicate pentru ca adersa IP nu va fi refolosita pe durata lease-ului. Pe partea cealalta, un lease mic, setat incorect, poate crea o tona de inregistrari in DNS, dar setat cum trebuie poate fi o varianta mai buna. Bineinteles ca si aging and scavenging trebuie setat iar recomandarile sunt ca intervalul de scavenging sa fie putin mai mare decat lease-ul din DHCP.
Sunt atatea variante si scenarii incat nu am cum sa le acopar pe toate asa ca o sa pun si cateva link-uri utile pe acest subiect:
http://support.microsoft.com/kb/816592
Si vreau sa mai reamintesc ca informatiile din DNS nu sunt ceva real time, e nevoie de timp pentru ca acestea sa fie updatate, nu o sa vedeti niciodata ca un client iese din retea si automat nu il mai rezolvi prin DNS. In majoritatea cazurilor intervalul asta de timp in care se updateaza informatia nu creeaza nici un fel de probleme, poate doar vizuale pentru unii admini. Dar asta nu inseamna ca nu trebuie sa faceti tot posibilul pentru a tine zonele DNS cat mai curate.