Primjena dns bind paketa usluge rekurzivnog keširanja. Postavljanje DNS servera za keširanje (BIND) za lokalnu mrežu. Provjera postavki i ponovno pokretanje Bind-a

DNS (Domain Name System) je važna i prilično teška za konfiguraciju komponenta neophodna za rad web stranica i servera. Mnogi korisnici koriste DNS servere koje obezbeđuje njihov hosting provajder, ali posedovanje sopstvenih DNS servera ima neke prednosti.

U ovom vodiču ćete naučiti kako instalirati Bind9 i konfigurirati ga kao DNS server za keširanje ili prosljeđivanje na Ubuntu 14.04 serveru.

Zahtjevi

  • Razumevanje osnovnih tipova DNS servera. Više detalja možete saznati na.
  • Dvije mašine, od kojih barem jedna koristi Ubuntu 14.04. Prva mašina će biti konfigurisana kao klijent (IP adresa 192.0.2.100), a druga kao DNS server (192.0.2.1).

Naučićete kako da konfigurišete klijentsku mašinu za slanje upita preko DNS servera.

Keširanje DNS servera

Serveri ovog tipa se također nazivaju razrješačima jer obrađuju rekurzivne upite i obično mogu tražiti DNS podatke sa drugih servera.

Kada keširajući DNS server nadzire odgovor na upit klijenta, on vraća odgovor klijentu i takođe ga pohranjuje u keš memoriju za vremenski period koji dozvoljava TTL vrijednost odgovarajućih DNS zapisa. Keš memorija se tada može koristiti kao izvor odgovora na naknadne zahtjeve kako bi se ubrzalo ukupno vrijeme obrade zahtjeva.

Gotovo svi DNS serveri u vašoj mrežnoj konfiguraciji će keširati. DNS server za keširanje je dobar izbor u mnogim situacijama. Ako ne želite da se oslonite na DNS servere vašeg hosting provajdera ili druge javne DNS servere, postavite sopstveni DNS server za keširanje. Što je kraća udaljenost od DNS servera do klijentskih mašina, to je kraće vrijeme potrebno za servisiranje DNS zahtjeva.

Prosljeđivanje DNS servera

Iz perspektive klijenta, DNS server za prosljeđivanje će izgledati gotovo identično serveru za keširanje, ali su mehanizmi i radno opterećenje potpuno drugačiji.

DNS server za prosleđivanje ima iste prednosti kao i server za keširanje. Međutim, on zapravo ne izvodi nikakve rekurzivne upite. Umjesto toga, prosljeđuje sve zahtjeve na eksterni server za rješavanje, a zatim kešira rezultate za sljedeće zahtjeve.

Ovo omogućava serveru za preusmjeravanje da poslužuje zahtjeve iz svoje keš memorije bez potrebe da obrađuje rekurzivne zahtjeve. Dakle, ovaj server obrađuje samo pojedinačne zahtjeve (preusmjerene zahtjeve klijenata), a ne cijelu proceduru rekurzije. Ovo može biti prednost u okruženjima sa ograničenim eksternim propusnim opsegom, gde servere za keširanje treba često menjati, iu situacijama kada lokalni zahtevi treba da se preusmere na jedan server, a eksterni zahtevi na drugi.

1: Instalirajte Bind na DNS server

Paket Bind se može naći u službenom Ubuntu spremištu. Ažurirajte svoj indeks paketa i instalirajte Bind koristeći apt manager. Također morate instalirati nekoliko ovisnosti.

sudo apt-get update
sudo apt-get install bind9 bind9utils bind9-doc

Nakon toga možete početi s postavljanjem servera. Konfiguracija servera za keširanje može se koristiti kao predložak za konfiguraciju servera za prosljeđivanje, tako da prvo morate konfigurirati DNS server za keširanje.

2: Podešavanje DNS servera za keširanje

Prvo morate da konfigurišete Bind kao DNS server za keširanje. Ova konfiguracija će prisiliti server da rekurzivno traži odgovore na zahtjeve klijenata na drugim DNS serverima. Uzastopno će ispitivati ​​sve odgovarajuće DNS servere dok ne pronađe odgovor.

Bind konfiguracijske datoteke su pohranjene u /etc/bind direktoriju.

Većinu datoteka nije potrebno uređivati. Glavna konfiguraciona datoteka se zove named.conf (named i bind su dva imena za istu aplikaciju). Ova datoteka upućuje na datoteke named.conf.options, named.conf.local i named.conf.default-zones.

Da biste konfigurisali DNS server za keširanje, trebate samo urediti named.conf.options.

sudo nano named.conf.options

Ova datoteka izgleda ovako (komentari izostavljeni radi jednostavnosti):

opcije (
direktorij "/var/cache/bind";
dnssec-validation auto;

slušaj-na-v6 (bilo koji; );
};

Da biste postavili server za keširanje, morate kreirati listu kontrole pristupa ili ACL.

Morate zaštititi DNS server koji obrađuje rekurzivne upite od napadača. Napadi DNS pojačanja su posebno opasni jer mogu uključiti server u distribuirane napade uskraćivanja usluge.

Napadi pojačanja DNS-a su jedan od načina da se sruše serveri i web stranice. Da bi to učinili, napadači pokušavaju pronaći javne DNS servere koji obrađuju rekurzivne upite. Oni lažiraju IP adresu žrtve i šalju upit koji će vratiti veoma veliki odgovor DNS serveru. U ovom slučaju, DNS server vraća previše podataka serveru žrtve kao odgovor na mali zahtjev, povećavajući dostupni propusni opseg napadača.

Hostovanje javnog rekurzivnog DNS servera zahteva pažljivu konfiguraciju i administraciju. Da biste spriječili hakovanje servera, konfigurirajte listu IP adresa ili mrežnih raspona kojima server može vjerovati.

Prije bloka opcija dodajte blok acl. Kreirajte oznaku za ACL grupu (u ovom vodiču grupa se zove goodclients).

acl goodclients (
};
opcije (
. . .

U ovom bloku navedite IP adrese ili mreže koje će imati pristup ovom DNS serveru. Pošto server i klijent rade na podmreži /24, možete ograničiti pristup ovoj podmreži. Također morate deblokirati localhost i lokalne mreže, koje se automatski povezuju.

acl goodclients (
192.0.2.0/24;
localhost;
lokalne mreže;
};
opcije (
. . .

Sada imate siguran klijentski ACL. Možete započeti postavljanje rezolucije zahtjeva u bloku opcija. Dodajte mu sljedeće redove:

opcije (
direktorij "/var/cache/bind";
rekurzija da;

. . .

Blok opcija eksplicitno omogućava rekurziju, a zatim konfigurira opciju dopuštanja upita za korištenje ACL-a. Također možete koristiti drugi parametar, kao što je dozvoli-rekurziju, za upućivanje na ACL grupu. Kada je rekurzija omogućena, dozvoli-rekurzija će definirati listu klijenata koji mogu koristiti rekurzivne usluge.

Međutim, ako dopusti-rekurzija nije postavljena, Bind se vraća na listu dopuštenih upita-cache, zatim na listu dopuštenih upita i konačno na defaultne lokalne mreže i liste lokalnih hostova. Budući da samo postavljamo server za keširanje (nema svoje zone i ne prosljeđuje upite), lista dopuštenih upita uvijek će se primjenjivati ​​samo na rekurziju. Ovo je najčešći način definiranja ACL-a.

Sačuvajte i zatvorite datoteku.

Ovo su sve postavke koje treba dodati u konfiguracijski fajl DNS servera za keširanje.

Napomena: Ako želite da koristite samo ovu vrstu DNS-a, nastavite da proverite konfiguracije, ponovo pokrenite uslugu i konfigurišite svog klijenta.

3: Postavljanje DNS servera za prosljeđivanje

Ako vaša infrastruktura više odgovara DNS serveru za prosljeđivanje, možete malo prilagoditi postavke.

Trenutno datoteka named.conf.options izgleda ovako:

acl goodclients (
192.0.2.0/24;
localhost;
lokalne mreže;
};
opcije (
direktorij "/var/cache/bind";
rekurzija da;
dozvoli-upit(dobri klijenti;);
dnssec-validation auto;
auth-nxdomain br; # u skladu sa RFC1035
slušaj-na-v6 (bilo koji; );
};

Možete koristiti isti ACL da ograničite DNS server na određenu listu klijenata. Međutim, ovo zahtijeva malu promjenu konfiguracije tako da poslužitelj više ne pokušava izvršiti rekurzivne upite.

Ne mijenjajte rekurziju u ne. Server za preusmjeravanje i dalje podržava rekurzivne usluge. Da biste postavili server za preusmjeravanje, potrebno je da kreirate listu servera za keširanje na koje će on preusmjeravati zahtjeve.

Ovo se radi u bloku options(). Prvo, trebate kreirati novi blok prosljeđivača u njemu, gdje će biti pohranjene IP adrese rekurzivnih servera imena na koje želite da preusmjerite zahtjeve. U ovom slučaju, to će biti Google DNS serveri (8.8.8.8 i 8.8.4.4):

. . .
opcije (
direktorij "/var/cache/bind";
rekurzija da;
dozvoli-upit(dobri klijenti;);
špediteri (

8.8.8.8;

8.8.4.4;

};
. . .

Rezultirajuća konfiguracija izgleda ovako:

acl goodclients (
192.0.2.0/24;
localhost;
lokalne mreže;
};
opcije (
direktorij "/var/cache/bind";
rekurzija da;
dozvoli-upit(dobri klijenti;);
špediteri (
8.8.8.8;
8.8.4.4;
};
samo naprijed;
dnssec-validation auto;
auth-nxdomain br; # u skladu sa RFC1035
slušaj-na-v6 (bilo koji; );
};

Zadnja promjena se odnosi na parametar dnssec. Uz trenutnu konfiguraciju i ovisno o postavkama DNS servera na koje se zahtjevi preusmjeravaju, u zapisnicima se mogu pojaviti sljedeće greške:

Jun 25 15:03:29 keš nazvan: greška (potjera DS servere) rješavanje "in-addr.arpa/DS/IN": 8.8.8.8#53
25. jun 15:03:29 keš nazvan: greška (nema važećeg DS) rješavanja "111.111.111.111.in-addr.arpa/PTR/IN": 8.8.4.4#53

Da biste ih izbjegli, morate promijeniti parametar dnssec-validacije u yes i eksplicitno omogućiti dnssec.

. . .
samo naprijed;
dnssec-enable da;
dnssec-validacija da;
auth-nxdomain br; # u skladu sa RFC1035
. . .

Sačuvajte i zatvorite datoteku. Postavljanje DNS servera za prosljeđivanje je završeno.

4: Provjerite postavke i ponovo pokrenite Bind

Sada morate biti sigurni da postavke rade kako se očekuje.

Da provjerite sintaksu konfiguracijskih datoteka, unesite:

sudo named-checkconf

Ako nema grešaka u datotekama, komandna linija neće prikazati nikakav izlaz.

Ako dobijete poruku o grešci, ispravite je i testirajte ponovo.

Zatim možete ponovo pokrenuti Bind demon da ažurirate postavke.

sudo service bind9 restart

Zatim morate provjeriti zapise servera. Pokrenite naredbu na serveru:

sudo tail -f /var/log/syslog

Sada otvorite novi terminal i počnite postavljati klijentsku mašinu.

5: Podešavanje klijenta

Prijavite se na klijentsku mašinu. Proverite da li je klijent naveden u ACL grupi konfigurisanog DNS servera. U suprotnom, DNS server će odbiti da poslužuje zahtjeve ovog klijenta.

Uredite datoteku /etc/resolv.conf da usmjerite server na server imena.

Promjene napravljene ovdje će postojati samo do ponovnog pokretanja, što je odlično za testiranje. Ako ste zadovoljni rezultatima testnih postavki, ove postavke možete učiniti trajnim.

Otvorite datoteku sa sudo u uređivaču teksta:

sudo nano /etc/resolv.conf

Datoteka treba da navede DNS servere koji će se koristiti za rješavanje upita. Da biste to učinili, koristite direktivu poslužitelja imena. Komentirajte sve trenutne unose i dodajte liniju servera imena koja pokazuje na vaš DNS server:

server imena 192.0.2.1
# server imena 8.8.4.4
# server imena 8.8.8.8
# server imena 209.244.0.3

Sačuvajte i zatvorite datoteku.

Sada možete poslati zahtjev za testiranje kako biste bili sigurni da je ispravno riješen.

Za ovo možete koristiti ping:

ping -c 1 google.com
PING google.com (173.194.33.1) 56(84) bajtova podataka.
64 bajta od sea09s01-in-f1.1e100.net (173.194.33.1): icmp_seq=1 ttl=55 vrijeme=63,8 ms
--- google.com ping statistika ---
1 paket odaslan, 1 primljen, 0% gubitak paketa, vrijeme 0ms
rtt min/avg/max/mdev = 63.807/63.807/63.807/0.000 ms

Svrha DNS-a je da prevede imena domena koje je ljudima lako zapamtiti u IP adrese koje računari mogu razumjeti, proces koji se naziva razlučivanje imena. Šta će nam dati instaliranje vlastitog DNS servera za keširanje? Ovo će malo ubrzati odziv sajtova + Linux ne prihvata NetBios imena baš dobro, ali ponekad morate da pronađete računare ili štampače unutar lokalne mreže, ali želite da to uradite po imenu.

Pamtiti IP adrese nije zgodno, a stalno gledanje u dnevnik DHCP servera takođe nije naš metod. Za takve slučajeve potreban vam je DNS na lokalnoj mreži. Sama instalacija bind9 paketa nije teška. Greške obično nastaju u fazi njegove konfiguracije, jer; Nakon lako čitljivih konfiguracijskih datoteka sistema, osoba se suočava s nerazumljivom sintaksom, koja je, inače, vrlo slična programskom jeziku S. server će raditi unutar lokalne mreže, nema smisla prenositi ga u chroot okruženje i cijelo podešavanje traje vrlo malo vremena. Ovim se lirski dio može završiti, idemo na instalaciju i konfiguraciju.

Hajde da instaliramo Bind9 DNS server:

# apt - nabavite instalaciju bind9

Nakon završetka, preuzimanja i instalacije, trebamo urediti njegovu konfiguracijsku datoteku:

#vim /etc/bind/named. konf. opcije

Pronalazimo odeljak, nalazi se na samom početku konfiguracionog fajla, osim njega nema ništa drugo...

opcije ( direktorij "/var/cache/bind" ; // Ako postoji zaštitni zid između vas i servera imena koje želite// da biste razgovarali, možda ćete morati popraviti firewall da biste omogućili višestruko// portovi za razgovor. Vidi http://www.kb.cert.org/vuls/id/800113// Ako je vaš ISP dao jednu ili više IP adresa za stabilno// servere imena, vjerovatno ih želite koristiti kao prosljeđivače.// Dekomentirajte sljedeći blok i umetnite adrese koje zamjenjuju// čuvar mjesta za sve 0. // prosljeđivači ( // 0.0.0.0; // ); auth - nxdomain no; # u skladu sa RFC1035 slušanje - na - v6 ( bilo koji ; ); );

Odjeljak prosljeđivača je odgovoran za to gdje će biti poslan DNS zahtjev za rješavanje imena ako se ne nalazi u vlastitoj bazi podataka. U zadnje vrijeme nisam nimalo zadovoljan, rad ovih servera sa provajderom je razlog zašto možete povezati one treće strane, na primjer Googleove, vrlo je lako zapamtiti IP 8.8.8.8, koristit ću njegov primjer da konfigurišite ga, ali vam niko ne smeta da koristite one koje vam se najviše sviđaju.

Uređujemo odjeljak, prvo morate ukloniti komentare iz njega i dodati DNS treće strane, ako postoji potreba za dodavanjem nekoliko servera, na primjer, u slučaju da google server ne može izdržati vaše zahtjeve i pokvari se :), zatim IP drugih servera se može napisati u koloni, tada možete postići veću toleranciju grešaka.

špediteri(8.8.8.8; 193.58.251.251; //Ruski DNS servis -SkyDNS};

U ovom dijelu je bolje unijeti IP servera koji ste naveli u datoteci /etc/resolv.conf ili ga unesite u odjeljak nameserver ovaj IP. Sačuvajte promjene i izađite. Ponovo pokrenite server i provjerite. Ukucavamo u komandnoj liniji nslookup mail.ru
Trebalo bi izaći:

Neovlašteni odgovor: Ime: mail. ru Adrese: 94.100.191.202

Ovo sugerira da naš server nije glavni u servisiranju ove zone (mail.ru), već je dodao zahtjeve u keš memoriju!
Sada treba da kreiramo DNS zonu za našu mrežu kako bi mašine mogle da pronađu različite mrežne usluge - mogu postojati, na primer, mrežni štampači, oni mogu biti nezavisni ili zajednički na drugim radnim stanicama.
Naša zona se može nazvati imenom organizacije – tj. naziv organizacije.
Prije svega, kreiramo zonu, za to ćemo urediti named.conf.local

#vim /etc/bind/named. konf. lokalni

i dodajte mu sljedeće:

zona "orgname" ( tip master ; datoteka "/etc/bind/db.orgname" ; );

Sačuvaj i izađi
Sada treba da kreiramo konfiguracioni fajl zone

# vim / etc / bind / db . orgname

i u njega zalijepite sljedeće:
(Molimo obratite pažnju na sintaksu konfiguracijske datoteke, čak i tačke imaju značenje)

@IN SOA ime organizacije.

root. orgname. (20101015 4h; vrijeme ažuriranja - 4 sata 1h; ponavljanje svaki sat 1w; koliko dugo čuvati informacije - 1 sedmica 1d);
TTL (vrijeme života) zapisa je 1 dan @ IN NS naziv organizacije. ;
ime servera @ IN A 192.168.10.1 ;

A - zapis - IP adresa našeg DNS servera koji opslužuje ovu zonu, @ znači da je ovo korijenska zona.

* IN CNAME @ štampač IN A 192.168.10.25 ;

Možete kreirati DNS zapis za mrežni štampač koji se nalazi na 192.168.10.25

Sada, kada dodajete novi mrežni uređaj, trebate učiniti 2 stvari:

1) Rezervišite IP adresu na DHCP serveru, možete pročitati kako to učiniti u članku - Podešavanje DHCP servera
2) Kreirajte DNS zonu za ovu IP adresu, upišite naziv uređaja U XXX.XXX.XXX.XXX. Gdje je: naziv uređaja je naziv mreže uređaja; XXX.XXX.XXX.XXX je njegova IP adresa koja je rezervisana na DHCP serveru.

sada moramo urediti datoteku resolv.conf

#vim /etc/resolv. konf i unesite tamo:.
server imena 127.0.0.1
sve što je bilo može se komentirati stavljanjem #

server se restartuje

# ponovno pokretanje

Ovo je urađeno tako da server traži sve u svojoj bazi podataka, a tek tada će BIND preusmjeriti zahtjeve na server 8.8.8.8 IP čiji je IP uključen u direktivu

špediteri

Sada možete provjeriti funkcionalnost: Ako se testiranje odvija pod Windowsom:

ping ime uređaja. orgname<<>Ako testiramo sa Linuxa:<<>ping ime uređaja. naziv organizacije - c 4<<- opcode: QUERY, status: NOERROR, id: 63893 ;; flags: qr rd ra ad; QUERY: 1, ANSWER: 4, AUTHORITY: 13, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;tut.by. IN A ;; ANSWER SECTION: tut.by. 103 IN A 178.172.160.5 tut.by. 103 IN A 178.172.160.4 tut.by. 103 IN A 178.172.160.2 tut.by. 103 IN A 178.172.160.3 ;; AUTHORITY SECTION: . 6029 IN NS i.root-servers.net. . 6029 IN NS b.root-servers.net. . 6029 IN NS m.root-servers.net. . 6029 IN NS k.root-servers.net. . 6029 IN NS e.root-servers.net. . 6029 IN NS d.root-servers.net. . 6029 IN NS j.root-servers.net. . 6029 IN NS g.root-servers.net. . 6029 IN NS l.root-servers.net. . 6029 IN NS f.root-servers.net. . 6029 IN NS h.root-servers.net. . 6029 IN NS a.root-servers.net. . 6029 IN NS c.root-servers.net. ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) ;; WHEN: Tue Mar 22 16:46:24 MSK 2016 ;; MSG SIZE rcvd: 310

Pingovi bi trebali ići na IP koji ste naveli umjesto XXX.XXX.XXX.XXX Brzinu obrade zahtjeva možete provjeriti i pomoću naredbe dig # dig @127.0.0.1 tut.by ;> DiG 9.9.5-9+deb8u6-Debian > @127.0.0.1 tut.by ; (pronađen 1 server) ;; globalne opcije: +cmd ;; Dobio odgovor: ;; ->>HEADER Dobar dan, čitaoci. Nastavljajući teorijski materijal o, u ovom članku želim razmotriti praktični primjer instalacije i podešavanja drugačije BIND konfiguracije servera..

U članku ću opisati

postavljanje DNS keša i puna DNS glavni server. Započet ću opis općim konceptima i potrebnim koracima za organiziranje bilo kojeg DNS serveri. Opće informacije Imenovano je demon koji je deo paket bind9 i bitak server imena domena Demon nazvan. Uzima postavke iz glavne konfiguracijske datoteke koja se zove named.conf i nalazi se u imeniku /etc/bind. U glavnoj konfiguraciji opisano radni direktorij servera, često je ovo imenik /var/cache/bind, u kojoj laž fajlovi opisa zona i drugi servisni fajlovi. Prepiska imena zona I fajl opisa zone setovi zonsku sekciju sa parametrom fajl. Sekcija zona takođe postavlja tip odgovornosti ovog servera za zonu (master, slave, itd.), a takođe definiše posebne parametre za trenutnu zonu (na primer, na kom interfejsu da se obrađuju zahtevi za trenutnu zonu). U fajlovima opisa zone sadrži parametre zone i zapise resursa (putevi navedeni u ovom paragrafu mogu se razlikovati, ovisno o Linux distribuciji ili parametrima).

Ovo je opća šema rada koja će vam pomoći da izbjegnete zabunu u budućnosti prilikom razmatranja specifičnih konfiguracija.

Format konfiguracijske datoteke za 4. verziju programa razlikuje se od onog korištenog u osmoj i devetoj verziji BIND. S obzirom da računam na ugradnju novog DNS server, ali ne vidim smisao u instaliranju stare verzije, pa ću pogledati konfiguraciju nove verzije.

Početni podaci

Da bi DNS ispravno radio, morate imati . DNS u trenutnom članku će biti konfiguriran na Debian distribuciji također će biti zabilježene. Mrežna konfiguracija štanda je sljedeća:

DNS: ~# CAT/ETC/Network/InterFaces Auto LO IFACE LOOPBACK AUTH0 IFACE ETH0 INETCAS 10.0.152 MREŽNA MASKA 255.255.255.0 GATEWAY 10.0.254 AUTOO AUTH1 AUTH1 AUTH1 A61 Net maska ​​255.255.255.0

Gdje 10.0.0.152/24 - eksterno sučelje (podmreža koju dodjeljuje provajder), 192.168.1.1/24 - interni (lokalna mreža). Prilagođena zona će se zvati example.com. U primjeru sa slave server, sekundarni server će se nalaziti na IP-u 10.0.0.191 .

Instaliranje BIND9

Da bi DNS server radio, morate bind9 (u nekim distribucijama - vezati ). Kao što je navedeno na dijagramu - glavna konfiguracijska datoteka BIND je fajl named.conf(ova datoteka se može smjestiti u direktorij /etc, ponekad u /etc/bind).

Parametri (sintaksa) named.conf

Sintaksa named.conf datoteke pridržava se sljedećih pravila:

IP adrese- IP lista mora biti odvojena simbolom ";" , moguće je navesti podmrežu u formatu 192.168.1.1/24 ili 192.168.1.1/255.255.255.0, (da biste isključili IP morate staviti znak ispred nje!), moguće je specificirati imena "bilo koji", "ništa", "localhost" u dvostrukim navodnicima.

Komentari- linije koje počinju sa #, // i zatvorene u /* i */ smatraju se komentarima.

IN fajlovi opisa zona -simbol @ je “varijabla” koja pohranjuje ime zone specificirane u konfiguracijskoj datoteci named.conf ili u @ direktivi $ORIGIN trenutni opis zone.

Svaki završen niz parametri se moraju završavati simbolom; .

Acl sekcija

ACL (lista kontrole pristupa)- omogućava vam da odredite imenovanu listu mreža. Format odjeljka: acl "ime_mreže" (ip; ip; ip; );

Options section

Options section setovi globalni parametri konfiguracijski fajl koji kontrolira sve zone. Ovaj odjeljak ima format: options(options_section_operators);. Opcije se mogu "ugnijezditi". Sekcija zona, na taj način nadjačava globalne parametre. Često korišteni izjave o opcijama:

  • dozvoli-upit ( list_ip} - Dozvoljava odgovore na upite samo od list_ip. Ako je odsutan, server odgovara na sve zahtjeve.
  • dozvoli-rekurziju( list_ip} - Rekurzivni upiti će se izvršavati za zahtjeve iz liste_ip. Za ostalo - iterativno. Ako parametar nije specificiran, poslužitelj izvodi rekurzivne upite za sve mreže.
  • dozvoli-transfer ( list_ip} - Označava listu servera kojima je dozvoljeno da preuzmu zonu sa servera (ovdje su uglavnom navedeni slave serveri)
  • direktorij /put/do/rad/dir- specificira apsolutnu putanju do radnog direktorija poslužitelja. Ova izjava je važeća samo u odjeljku opcija.
  • špediteri ( ip port, ip port...} - označava adrese domaćina i, ako je potrebno, portove na koje se prosljeđuju zahtjevi (obično je ovdje naznačen DNS ISP provajdera).
  • naprijed SAMO ili naprijed PRVO - parametar prvo označava da DNS server treba da pokuša da razreši imena koristeći DNS servere navedene u parametru prosleđivača, i samo ako nije bilo moguće razrešiti ime pomoću ovih servera, pokušaće samostalno rešavanje imena.
  • obavijestiti DA|NE - DA- obavijesti slave servere o promjenama u zoni, NO- ne obavještavati.
  • rekurzija DA|NE - DA- obavljati rekurzivne upite ako to zahtijeva klijent, NO- ne izvršavati (samo iterativni upiti). Ako se odgovor nađe u kešu, vraća se iz keša. (može se koristiti samo u odjeljku Opcije)

Zone Section

Definira opis zone(a). Format odjeljka: zona( section_zone_operators}; Operateri, koji se najčešće koriste:

  • dozvoli ažuriranje( list_ip} - specificira sisteme kojima je dozvoljeno da dinamički ažuriraju ovu zonu.
  • fajl "ime datoteke " - specificira putanju datoteke parametara zone (mora se nalaziti u direktoriju navedenom u odjeljku opcija u naredbi direktorija)
  • majstori ( list_ip} -okazuje listu glavnih servera. (dozvoljeno samo u podređenim zonama)
  • ukucaj " zone_type " - označava tip zone opisan u trenutnom odjeljku; zone_type može imati sljedeće vrijednosti:
    • naprijed- označava zonu preusmjeravanja koja prosljeđuje zahtjeve koji pristižu u ovu zonu.
    • hint- označava pomoćnu zonu (ovaj tip sadrži informacije o root serverima koje će server kontaktirati ako ne može pronaći odgovor u kešu)
    • majstor- specificira da radi kao glavni server za trenutnu zonu.
    • rob- specificira da radi kao slave server za trenutnu zonu.

Dodatne opcije konfiguracije

Vrijednosti vremena u datotekama zona podrazumevano je naznačeno u sekundama, osim ako iza njih ne stoji jedno od sledećih slova: S - sekunde, M - minute, H - sati, D - dani, W - nedelje. Shodno tome, unos 2h20m5s imat će vrijednost od 2 sata 20 minuta 5 sekundi i odgovarati 8405 sekundi.

Bilo koje ime hosta/unosa koje se ne završava sa dot broji ne FQDN naziv i biće dopunjen imenom trenutne zone. Na primjer, unos domena u datoteci zone examle.com bit će proširen na FQDN ime domen.examle.com. .

IN BIND konfiguracijske datoteke može se primijeniti sljedeće direktive:

  • $TTL- definira zadani TTL za sve zapise u trenutnoj zoni.
  • $ORIGIN- mijenja naziv zone od onog navedenog u datoteci named.conf. Istovremeno, opseg ove direktive se ne proteže "iznad" (to jest, ako je datoteka uključena direktivom $INCLUDE, tada se opseg $ORIGN ne proteže na nadređenog)
  • $INCLUDE- uključuje navedenu datoteku kao dio datoteke zone.

Posebno bih želio da opišem parametar dozvoli-prijenos ( 10.0.0.191; );. Ovaj parametar opisuje servere kojima je dozvoljeno da preuzmu kopiju zone - tzv slave server. U sljedećem primjeru ćemo pogledati postavku slave DNS.

Da bi evidentiranje ispravno funkcioniralo, potrebno je kreirati odgovarajući direktorij i dodijeliti potrebna prava:

Dns:~# mkdir /var/log/bind/dns:~# chmod 744 /var/log/bind/dns:~# ps aux | grep named bind 4298 0,0 3,4 46792 13272 ? Ssl Jul05 0:00 /usr/sbin/named -u bind root 4815 0.0 0.1 3304 772 pts/4 S+ 18:19 0:00 grep named dns:~# chown bind /var/log/bind/ dns:~# ls -ld /var/log/bind/ drwxr--r-- 2 bind root 4096 6. jul 18:18 /var/log/bind/

Dns:~# cat /var/cache/bind/example.com $TTL 3D @ IN SOA ns.example.com. root.example.com. (2011070601; serijski 8H; osvježavanje 2H; ponovni pokušaj 2W; isteći 1D) ; minimum @ IN NS ns.example.com. @ IN NS ns2.example.com. @ IN A 10.0.0.152 @ IN MX 5 mx.example.com. ns IN A 10.0.0.152 ns2 IN A 10.0.0.191 mx IN A 10.0.0.152 www IN CNAME @

kao i u domenu in-addr.arpa.

Dns:~# cat /var/cache/bind/0.0.10.in-addr.arpa $TTL 3600 @ IN SOA ns.examle.com. root.example.com. (2007042001; Serijski 3600; Osvježi 900; Pokušaj ponovo 3600000; Istek 3600) ; Minimalni IN NS ns.examle.com.

IN NS ns2.example.com. 152 U PTR examle.com. 191 IN PTR ns.example.com. * U PTR examle.com. dns:~# cat /var/cache/bind/1.168.192.in-addr.arpa $TTL 3600 @ IN SOA ns.examle.com. root.example.com. (2007042001; Serijski 3600; Osvježi 900; Pokušaj ponovo 3600000; Istek 3600) ; Minimalni IN NS ns.examle.com.

IN NS ns2.example.com. * U PTR examle.com.

Naša mreža je mala, pretpostavlja se da ima vrlo malo mašina na mreži. Sve mrežne usluge su hostovane na jednom hostu, example.com., tako da i glavni DNS (ns.example.com.) i mail server (mx.example.com.) upućuju na istu mašinu (10.0.0.152). Sekundarni (slave) autoritativni server zone Glavna funkcija slave server- automatska sinhronizacija opisa zone sa glavnim serverom. Ovaj zadatak je regulisan dokumentom 4.3.5. RFC 1034

u sekciji Prema ovom dokumentu, preporučuje se razmjena podataka između servera korištenjem AXFR zahtjeva. Za ovaj zahtjev, cijela zona se mora prenijeti u jednoj TCP vezi (RFC 1035). također,

slave DNS server dijeli opterećenje sa glavnim serverom ili preuzima cjelokupno opterećenje u slučaju kvara na prvom serveru. Prije nego počnete

postavljanje slave DNS servera<<>, morate provjeriti možete li ručno dobiti zonu sa sekundarnog servera koristeći sljedeću naredbu:<<>Root@debian:~# dig @10.0.0.152 example.com. axfr;

  1. > DiG 9.7.3 > @10.0.0.152 example.com. axfr; (pronađen 1 server) ;; globalne opcije: +cmd example.com. 259200 IN SOA ns.example.com. root.example.com. 2011070801 28800 7200 1209600 86400 example.com. 259200 IN NS ns.example.com. example.com. 259200 IN NS ns2.example.com. example.com. 259200 U 10.0.0.152 example.com. 259200 U MX 5 mx.example.com. mx.example.com. 259200 U 10.0.0.152 ns.example.com. 259200 U 10.0.0.152 ns2.example.com. 259200 U 10.0.0.191 www.example.com. 259200 U CNAME example.com. example.com. 259200 IN SOA ns.example.com. root.example.com. 2011070801 28800 7200 1209600 86400 ;; Vrijeme upita: 14 msec ;; SERVER: 10.0.0.152#53(10.0.0.152) ;; KADA: Pet Jul 8 15:33:54 2011 ;; XFR veličina: 11 zapisa (poruka 1, bajtova 258) Kopiraj
  2. named.conf konfiguracijski fajl sa glavnog servera; Zamijenite tip master parametra
  3. on tip slave Zamijenite Parametar dozvoli-prijenos (10.0.0.191; ); u onim zonama za koje će biti sekundarni;
  4. Izbrišite zone, koje trenutni server neće opsluživati, uključujući korijenski, ako slave neće odgovoriti na rekurzivne zahtjeve;
  5. Kreirajte direktorije za dnevnike, kao u prethodnom primjeru.

Ukupno, dobijamo konfiguraciju slave servera:

Root@debian:~# cat /etc/bind/named.conf options ( direktorij "/var/cache/bind"; dopusti-upit (bilo koji; ); // odgovara na upite sa svih sučelja rekurzija br; // onemogući rekurzivno traži auth-nxdomain no // za RFC1035 kompatibilnost listen-on-v6 (none; // ne treba nam verzija IPv6 "nepoznata"); // zone opisane u nastavku definiraju server kao autoritativan za loopback // sučelja, kao i za zone emitiranja (prema RFC 1912) zona "localhost" ( tip master; datoteka "localhost"; ); zona "127.in-addr.arpa" ( tip master; datoteka "127.in-addr.arpa"; ); zona "0.in-addr.arpa" (tip master; datoteka "0.in-addr.arpa"; ); zona "255.in-addr.arpa" ( tip master; datoteka "255.in-addr.arpa"; ); // opis zone glavne zone "example.com" ( tip slave; datoteka "example.com"; masters ( 10.0.0.152; ); ); //opis zone reverzne zone "0.0.10.in-addr.arpa" ( tip slave; datoteka "0.0.10.in-addr.arpa"; masters ( 10.0.0.152; ); ); // logovanje postavki logovanja ( kanal "misc" (fajl "/var/log/bind/misc.log" verzije 4 veličine 4m; vrijeme ispisa DA; ozbiljnost ispisa DA; kategorija printanja DA; ); kanal "upit" (datoteka "/var/log/bind/query.log" veličine 4m; vrijeme ispisa DA; ozbiljnost ispisa NE; kategorija zadane kategorije ("razno"; ); ) ;

nakon ponovnog pokretanja našeg slave serverće uspješno kopirati potrebne informacije sa glavnog servera, što će biti naznačeno prisustvom datoteka u direktoriju:

Root@debian:~# ls -la /var/cache/bind/ ukupno 28 drwxrwxr-x 2 root bind 4096 8. jul 18:47 . drwxr-xr-x 10 root root 4096 8. jul 15:17 .. -rw-r--r-- 1 bind bind 416 8. jul 18:32 0.0.10.in-addr.arpa ...... - rw-r--r-- 1 bind bind 455 8. jul 18:32 example.com ........

U osnovi, /stroallow-transfer (pngp slave server ne može pohraniti kopiju zone na svom sistemu datoteka. Ova kopija je potrebna samo kada se DNS pokrene. Posjedovanje kopije zone u sistemu datoteka može spriječiti kvar ako glavni server nije dostupan tokom pokretanja slave DNS-a. Ako ne navedete opciju datoteke u odjeljku zone, kopija se neće kreirati.

Postavljanje netfilter() za DNS BIND

Zapravo, nakon konfigurisanja servera, bilo bi dobro da ga zaštitite. Znamo da server radi na portu 53/udp. Nakon što pročitate članak o tome i upoznate se s njim, možete kreirati pravila za filtriranje mrežnog prometa:

Dns ~ # iptables-save # tipična pravila za iptables za DNS *filter:INPUT DROP :NAPUŠTANJE NAPRED :IZLAZ DROP -A INPUT -i lo -j PRIHVATI -A INPUT -m conntrack --ctstate POVEZANO, UTVRĐENO -j PRIHVATI -A IN -m conntrack --ctstate INVALID -j DROP # dozvoljava pristup lokalnoj mreži DNS serveru: -A INPUT -s 192.168.1.1/24 -d 192.168.1.1/32 -p udp -m udp --dport 53 -m conntrack - -ctstate NOVO -j PRIHVATI -A IZLAZ -o lo -j PRIHVATI -A IZLAZ -p icmp -j PRIHVATI -A IZLAZ -p udp -m udp --sport 32768:61000 -j PRIHVATI -A IZLAZ -p tcp - m tcp --sport 32768:61000 -j ACCEPT -A OUTPUT -m conntrack --ctstate POVEZANO, ESTABLISHED -j ACCEPT # dozvoli pristup DNS serveru za odlazne zahtjeve -A IZLAZ -p udp -m udp --dport 53 -m conntrack - -ctstate NOVO -j PRIHVATI UKLJUČIVANJE

Ovo je tipičan primjer! Da biste postavili iptables pravila koja odgovaraju vašim zadacima i konfiguraciji mreže, morate razumjeti kako netfilter radi u Linuxu čitajući gornje članke.

Rješavanje problema

Glavni izvor za identifikaciju DNS problema je. Evo primjera grešaka pri pokretanju kada sam napravio grešku s putanjom do core server zone file:

5. jul 18:12:43 dns-server imenovan: počinje BIND 9.7.3 -u bind 5. jul 18:12:43 dns-server imenovan: izgrađen sa "--prefix=/usr" "--mandir=/usr/ share/man" "--infodir=/usr/share/info" "--sysconfdir=/etc/bind" "--localstatedir=/var" "--enable-threads" "--enable-largefile" "- -with-libtool" "--enable-shared" "--enable-static" "--with-openssl=/usr" "--with-gssapi=/usr" "--with-gnu-ld" "- -with-dlz-postgres=ne" "--with-dlz-mysql=ne" "--with-dlz-bdb=yes" "--with-dlz-filesystem=da" "--with-dlz-ldap =yes" "--with-dlz-stub=yes" "--with-geoip=/usr" "--enable-ipv6" "CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2" "LDFLAGS=" " CPPFLAGS=" 5. jul 18:12:43 dns-server imenovan: prilagođeno ograničenje otvorenih datoteka od 1024 do 1048576 5. jul 18:12:43 dns-server nazvan: pronađen 1 CPU, koristeći 1 radničku nit 5. jul 18:12: 43 dns-server imenovan: koristi do 4096 soketa 5. jul 18:12:43 dns-server named: učitava konfiguraciju iz "/etc/bind/named.conf" 5. jul 18:12:43 dns-server named: čitanje izgrađeno -u pouzdanim ključevima iz datoteke "/etc/bind/bind.keys" 5. jul 18:12:43 dns-server imenovan: koristi zadani raspon UDP/IPv4 portova: 5. jul 18:12:43 dns-server nazvan: koristi zadani Opseg UDP/IPv6 portova: 5. jul 18:12:43 dns-server nazvan: slušanje na IPv4 interfejsu lo, 127.0.0.1#53 5. jul 18:12:43 dns-server nazvan: slušanje na IPv4 interfejsu eth1, 192.168.1.1 #53 Jul 5 18:12:43 dns-server named: generiranje ključa sesije za dinamički DNS Jul 5 18:12:43 dns-server named: nije mogao konfigurirati root savjete iz "/etc/bind/db.root": fajl nije pronađen 5. jul 18:12:43 dns-server named: konfiguracija učitavanja: datoteka nije pronađena # datoteka nije pronađena 5. jul 18:12:43 dns-server named: izlazi (zbog fatalne greške) 5. jul 18:15:05 dns-server imenovan: počinje BIND 9.7.3 -u bind 5. jul 18:15:05 dns-server imenovan: izgrađen sa "--prefix=/usr" "--mandir=/usr/share/man" "- infodir =/usr/share/info" "--sysconfdir=/etc/bind" "--localstatedir=/var" "--enable-threads" "--enable-largefile" "--with-libtool" "- - enable-shared" "--enable-static" "--with-openssl=/usr" "--with-gssapi=/usr" "--with-gnu-ld" "--with-dlz-postgres= ne " "--with-dlz-mysql=ne" "--with-dlz-bdb=yes" "--with-dlz-filesystem=yes" "--with-dlz-ldap=yes" "--sa - dlz-stub=yes" "--with-geoip=/usr" "--enable-ipv6" "CFLAGS=-fno-strict-aliasing -DDIG_SIGCHASE -O2" "LDFLAGS=" "CPPFLAGS=" 5. jul 18:15 :05 dns-server named: prilagođeno ograničenje otvorenih datoteka od 1024 do 1048576 5. jul 18:15:05 dns-server named: pronađen 1 CPU, koristeći 1 radnu nit 5. jul 18:15:05 dns-server named: korištenje gore na 4096 soketa 5. jul 18:15:05 dns-server named: učitavanje konfiguracije iz "/etc/bind/named.conf" 5. jul 18:15:05 dns-server named: koristeći zadani UDP/IPv4 opseg portova: 5. jul 18:15:05 dns-server imenovan: koristeći zadani UDP/IPv6 opseg portova: 5. jul 18:15:05 dns-server imenovan: slušanje na IPv4 interfejsu lo, 127. 0.0.1#53 5. jul 18:15:05 dns-server imenovan: slušanje na IPv4 interfejsu eth1, 192.168.1.1#53 5. jul 18:15:05 dns-server imenovan: automatska prazna zona: 254.169.IN-ADDR. ARPA 5. jul 18:15:05 dns-server imenovan: automatska prazna zona: 2.0.192.IN-ADDR.ARPA 5. jul 18:15:05 dns-server imenovan: automatska prazna zona: 100.51.198.IN-ADDR. ARPA 5. jul 18:15:05 dns-server imenovan: automatska prazna zona: 113.0.203.IN-ADDR.ARPA 5. jul 18:15:05 dns-server imenovan: automatska prazna zona: 255.255.255.255.IN-ADDR. ARPA 5. jul 18:15:05 dns-server pod nazivom: automatska prazna zona: 0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6 .ARPA 5. jul 18:15:05 dns-server pod nazivom: automatska prazna zona: 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0. IP6.ARPA 5. jul 18:15:05 dns-server imenovan: automatska prazna zona: D.F.IP6.ARPA 5. jul 18:15:05 dns-server imenovan: automatska prazna zona: 8.E.F.IP6.ARPA 5. jul 18:15 :05 dns-server nazvan: automatska prazna zona: 9.E.F.IP6.ARPA 5. jul 18:15:05 dns-server imenovan: automatska prazna zona: A.E.F.IP6.ARPA 5. jul 18:15:05 dns-server imenovan: automatski prazna zona: B.E.F.IP6.ARPA 5. jul 18:15:05 dns-server pod nazivom: automatska prazna zona: 8.B.D.0.1.0.0.2.IP6.ARPA 5. jul 18:15:05 dns-server pod nazivom: zona 0. in-addr.arpa/IN: učitana serija 1. jul 5 18:15:05 dns-server imenovan: zona 127.in-addr.arpa/IN: učitan serijski 1. jul 5 18:15:05 dns-server imenovan: zona 255.in-addr.arpa/IN: učitan serijski 1. jul 5 18:15:05 dns-server nazvan: zona localhost/IN: učitan serijski 2. jul 5 18:15:05 dns-server nazvan: pokretanje # pokretanje je uspješno

Odličan dijagnostički alat je.

Nastavi

U trenutnom članku opisao sam postavljanje osnovnih konfiguracija BIND DNS servera. Svrha članka je bila dati ideju o ​​funkcionisanju BIND servera u UNIX-u. Praktično se nisam dotakao pitanja sigurnosti DNS-a i malo sam se dotakao tako specifičnih postavki kao što je rad servera u edge modu, kada se različite informacije o zoni(ama) šalju različitim mrežama. Radi dubljeg razumijevanja, navest ću listu dodatnih izvora u kojima ćete, nadam se, moći dobiti potrebne informacije. Staviću tačku na ovo. Do sljedećeg puta.

Sistem imena domena: http://citforum.ru/internet/dns/khramtsov/
slave server- Imena domena - Koncepti i mogućnosti: http://tools.ietf.org/html/rfc1034
RFC 1035- Imena domena - Implementacija i specifikacija: http://tools.ietf.org/html/rfc1035
RFC 1537- Uobičajene greške u konfiguraciji datoteke DNS podataka: http://tools.ietf.org/html/rfc1537
RFC 1591- Struktura i delegiranje sistema imena domena: http://tools.ietf.org/html/rfc1591
RFC 1713- Alati za DNS debugging: http://tools.ietf.org/html/rfc1713
RFC 2606- Rezervirana DNS imena najvišeg nivoa: http://tools.ietf.org/html/rfc2606
DNS sigurnost (DNSSEC): http://book.itep.ru/4/4/dnssec.htm
BIND 9 Referentni priručnik za administratore: http://www.bind9.net/manual/bind/9.3.2/Bv9ARM.html
Secure BIND Template: http://www.cymru.com/Documents/secure-bind-template.html
Konfiguracijski parametri su dobro opisani naruski: http://www.bog.pp.ru/work/bind.html
Automatsko kreiranje fajla zone: http://www.zonefile.org/?lang=en#zonefile


Autor: Paul Cobbaut
Datum objave: 24.05.2015
Prijevod: A. Panin
Datum prevoda: 11. jul 2015

Poglavlje 4: Uvod u DNS servere

4.3. Keširanje DNS servera

DNS server koji ne opslužuje DNS zonu, ali je povezan sa drugim serverima imena za keširanje upita, naziva se DNS server za keširanje. DNS serveri za keširanje ne rade sa bazama podataka DNS zona koje sadrže zapise resursa. Umjesto toga, oni se povezuju na druge servere imena i keširaju relevantne informacije.

Postoje dvije vrste DNS servera za keširanje. Ovo su DNS serveri koji koriste DNS servere za prosleđivanje, kao i DNS serveri koji koriste root DNS servere.

4.3.1. Keširanje DNS servera koji ne koristi prosljeđivanje

DNS server za keširanje koji ne koristi prosljeđivač mora dobiti svoje informacije s nekog drugog mjesta. Kada se primi zahtjev od klijenta, on kontaktira jedan od korijenskih servera. Root server prosljeđuje informacije o serveru koji opslužuje ciljnu domenu najvišeg nivoa do keš servera, koji će ih zauzvrat usmjeriti na drugi DNS server. Posljednji server može ili imati informacije da odgovori na zahtjev, ili može proslijediti informacije o drugom DNS serveru koji bi mogao imati te informacije. Na kraju će naš DNS server primiti informacije koje su mu potrebne da odgovori na zahtjev i pošalje odgovor klijentu.

Ilustracija ispod prikazuje proces slanja zahtjeva klijenta za informacijama o IP adresi za ime domene linux-training.be. Naš server za keširanje će se povezati sa korijenskim serverom i bit će preusmjeren na server koji opslužuje .be domen najvišeg nivoa. Zatim će se povezati sa serverom koji opslužuje .be domen najvišeg nivoa i biti preusmjeren na jedan od servera imena Openminds organizacije. Jedan od ovih servera imena (u ovom slučaju nsq.openminds.be) će odgovoriti na zahtjev sa IP adresom servera s imenom domene linux-training.be. Kada naš server za keširanje prosledi ove informacije klijentu, klijent će moći da se poveže na dotičnu veb lokaciju.

Kada koristite tcpdump sniffer za rješavanje datog imena domene, možete dobiti sljedeći izlaz (prvih 20 znakova svake linije je uklonjeno).

192.168.1.103.41251 > M.ROOT-SERVERS.NET.domain: 37279% A? linux-tr\aining.be. (46) M.ROOT-SERVERS.NET.domain > 192.168.1.103.41251: 37279- 0/11/13 (740) 192.168.1.103.65268 > d.ns.dns.be.domain: 385% A? linux-trening.\be. (46) d.ns.dns.be.domain > 192.168.1.103.65268: 38555- 0/7/5 (737) 192.168.1.103.7514 > ns2.openminds.be.domain: 60888 linux-train\ing.be. (46) ns2.openminds.be.domain > 192.168.1.103.7514: 60888*- 1/0/1 A 188.93.155.\ 87 (62)

4.3.2. Keširanje DNS servera pomoću servera za prosljeđivanje

DNS server za keširanje koji koristi prosljeđivač je DNS server koji dobija sve potrebne informacije od prosljeđivača. Na primer, DNS server provajdera Internet usluga može da deluje kao DNS server za preusmeravanje.

Gornja ilustracija prikazuje DNS server na lokalnoj mreži kompanije, koji koristi DNS server koji je obezbedio ISP kao DNS server za prosleđivanje. Ako je IP adresa DNS servera koji je dao Internet provajder 212.71.8.10, sledeće linije moraju biti prisutne u named.conf konfiguracionoj datoteci DNS servera kompanije:

Špediteri ( 212.71.8.10; );

Osim toga, također možete konfigurirati svoj DNS server za rad s uslovnim prosljeđivačima. Opis DNS servera uslovnog prosljeđivanja u konfiguracijskoj datoteci je sljedeći:

Zona "someotherdomain.local" (tip forward; samo prosljeđivanje; prosljeđivači (10.104.42.1; ); );

4.3.3. Iterativni ili rekurzivni upit

Rekurzivni zahtjev je DNS zahtjev, nakon slanja kojeg klijent očekuje da dobije konačan odgovor od DNS servera (na ilustraciji iznad prikazan je podebljanom crvenom strelicom usmjerenom od MacBook-a do DNS servera). Iterativni zahtjev je DNS zahtjev, nakon slanja kojeg klijent ne očekuje da će dobiti konačan odgovor od DNS servera (na slici iznad prikazan je sa tri crne strelice usmjerene sa DNS servera). Iterativni upiti se najčešće izvode između servera imena. Korijenski poslužitelji imena ne odgovaraju na rekurzivne upite.

DNS server koji upravlja DNS zonom naziva se autoritativni DNS server za tu zonu. Zapamtite da je DNS zona samo zbirka zapisa resursa.

Prvi autoritativni DNS server za DNS zonu naziva se primarni DNS server. Ovaj server će raditi sa kopijom baze podataka DNS zone koja je i čitljiva i upisiva. Ako trebate povećati sigurnost podataka u slučaju kvarova, poboljšati performanse servera ili balansiranje opterećenja, možete upotrijebiti drugi DNS server, koji će također upravljati ovom DNS zonom. Ovaj server će se zvati sekundarni DNS server.

Sekundarni server prima kopiju baze podataka DNS zone od primarnog servera tokom procesa prenosa DNS zone. Zahtjeve za prijenos podataka DNS zone šalju sekundarni serveri u određenim vremenskim intervalima. Trajanje ovih vremenskih intervala je postavljeno unutar zapisa SOA resursa.

Možete prisilno osvježiti podatke DNS zone koristeći rndc uslužni program. Primjer ispod pokreće prijenos podataka za fred.local DNS zonu i ispisuje odgovarajući dio syslog datoteke /var/log/syslog.

root@debian7:/etc/bind# rndc osvježi fred.local root@debian7:/etc/bind# grep fred /var/log/syslog | rep -7 | rezati -c38- zona fred.local/IN: slanje obavještenja (serijski 1) primljena komanda kontrolnog kanala "osvježi fred.local" zona fred.local/IN: Transfer je započeo. prijenos "fred.local/IN" sa 10.104.109.1#53: povezan pomoću 10.104.33.30#57367 zone fred.local/IN: prenesen serijski 2 prijenos "fred.local/IN" sa 10.104.109.1#53: prijenos završeno: 1 poruka, 10 zapisa, 264 bajta, 0,001 sekundi (264 000 bajtova/sek) zona fred.local/IN: slanje obavijesti (serijski 2) root@debian7:/etc/bind#

Kada dodate sekundarni DNS server u DNS zonu, možete konfigurisati server da bude podređeni DNS server primarnom serveru. Primarni DNS server će biti glavni DNS server u odnosu na sekundarni server.

Najčešće je primarni DNS server glavni server koji komunicira sa svim slave serverima. Ponekad slave server može biti i glavni server za slave servere na sljedećem nivou. Na slici ispod, server pod nazivom ns1 je primarni server, a serveri pod nazivom ns2, ns3 i ns4 su sekundarni serveri. Iako je glavni server za servere pod nazivom ns2 i ns3 ns1, glavni server za ns4 je ns2.

Zapis SOA resursa sadrži vrijednost brzine osvježavanja podataka DNS zone pod nazivom osvježavanje. Ako je ova vrijednost postavljena na 30 minuta, slave server će slati zahtjeve za prijenos kopije podataka DNS zone svakih 30 minuta. Ovaj unos također sadrži vrijednost za dužinu vremenskog perioda pod nazivom ponovni pokušaj. Ova vrijednost se koristi ako glavni server ne odgovori na posljednji zahtjev za prijenos podataka DNS zone. Vrijednost koja se zove vrijeme isteka postavlja vremenski period u kojem slave server može odgovoriti na zahtjeve klijenata bez ažuriranja podataka DNS zone.

Ispod je primjer korištenja uslužnog programa nslookup za čitanje podataka zapisa SOA resursa za DNS zonu (linux-training.be).

Root@debian6:~# nslookup > set type=SOA > server ns1.openminds.be > linux-training.be Server: ns1.openminds.be Adresa: 195.47.215.14#53 linux-training.be origin = ns1.openminds.be mail addr = hostmaster.openminds.be serijski = 2321001133 osvježavanje = 14400 minimalno = 14400 istek = 360

Transferi podataka DNS zone se dešavaju samo kada se podaci u bazama podataka DNS zona promijene (tj. kada se dodaju, brišu ili mijenjaju jedan ili više glavnih zapisa resursa na strani servera). Slave server uspoređuje broj verzije (serijski broj) svoje kopije SOA zapisa resursa sa brojem verzije SOA zapisa resursa odgovarajućeg glavnog servera. Ako se brojevi verzija podudaraju, nije potrebno ažuriranje podataka (jer nijedan drugi zapis resursa nije dodan, obrisan ili promijenjen). U istom slučaju, ako je broj verzije SOA zapisa resursa na strani slave servera manji od broja verzije istog zapisa na strani odgovarajućeg glavnog servera, bit će napravljen zahtjev za prijenos podataka DNS zone.

Ispod je snimak prozora Wireshark sniffera s podacima presretnutim tokom prijenosa podataka DNS zone.

4.9. Potpuni ili djelomični prijenosi podataka DNS zone

Prijenos podataka DNS zone može biti potpun ili djelomičan. Odluka o korištenju jednog ili drugog načina rada ovisi o količini podataka koji se moraju prenijeti da bi se u potpunosti ažurirala baza podataka DNS zone na slave serveru. Djelomični prijenos podataka zone je poželjniji kada je ukupna količina promijenjenih podataka manja od veličine cijele baze podataka. Potpuni prijenos podataka o DNS zonama vrši se korištenjem AXFR protokola, a djelomični prijenos podataka DNS zone se vrši korištenjem IXFR protokola.