Transferul de zone DNS

Nu am vorbit cam demult despre aplicaţia de DNS. Aşa că era timpul să continuăm cu materialele dedicate acestui subiect.
Să zicem că avem mai multe name servere. Ar fi foarte ok pentru noi dacă o singură sursă ar putea “updata” toate aceste servere. La ce mă refer? La menţinerea acurateţii zonelor şi la transferul acestora de la un server master la unul slave.
Dacă pe la începuturi zonele se transmiteau în full (AXFR) din cauză că şi “sedentarismul” Internetului permitea acest lucru, după ceva timp, această metodă de transfer a devenit nefiabilă. Astfel, s-au implementat IXFR-ul (incremental zone transfer) şi mesajele NOTIFY ajungându-se până la DDNS (dynamic update).
Poate pentru unii dintre voi a devenit acum mai clar conceptul de DNS poisoning despre care am vorbit în unele materiale related to IT security. Ce presupune această formăde atac? Un server de DNS slave este “bulit”
, scuzată-mi fie expresia, de transferuri de zone de la un server master maliţios.
Să începem să vorbim despre transferul full de zone, şi anume AXFR.
Prin RFC-urile 1034 şi 1035 se stabileşte faptul că name serverele secundare pentru nişte zone vor “interoga” master serverele pentru transferul zonelor respective. Timpul după care secundarele întreabă “principalele” este setat de variabila refresh. Cum se procedează mai exact? Slave-urile trimit un querry către masterul unei anumite zone cerând SOA RR-ul. Dacă serial number-ul deţinut de către slave server este mai mic decât cel obţinut de pe master, atunci are loc un trasfer full de fişier zonă. De aceea, este foarte important ca după fiecare modificare făcută într-un fişier zonă să incrementăm şi acest serial number despre care am vorbit în materialele anterioare.
Mai este un lucru de spus despre acest tip de transfer, şi anume că AXFR-ul foloseşte portul TCP 53.
Incremental zone transfer (IXFR)
Transferul de zone întregi poate consuma multe resurse şi bandwidth şi este un pic cam nefolositor dacă de exemplu schimbăm doar o intrare de tip A într-o zonă. Din cauza acestui neajuns, s-a standardizat prin RFC-ul 1995 acest IXFR, care ce este de fapt? Este transferul înregistrării care se modifică într-un fişier zonă. În rest funcţionează cam la fel cu AXFR-ul. Slave-ul trimite un querry înspre master după un timp stabilit prin valoarea refresh-ului, iar dacă serial numberul de pe master este mai mare decât cel deţinut de către slave, transferul IXFR are loc, bineînţeles dacă ambele servere suportă acest feature. Dacă nu, este înlocuit de către transferul AXFR.
Modul de operare default al BIND-ului pe un slave name server este să ceară transfer IXFR, iar master slave-ul trimite IXFR by default numai în cazul zonelor dinamice.
Trebuie să mai precizăm că timpul de propagare al schimbărilor într-un fişier zonă rămâne neschimbat indiferent de modul de transfer utilizat. Singura diferenţă constă în volumul de date transferat între master şi slave.




