Instalacija DNS servera na Linux (CentOS)

DNS (Domain Name System) je servis bez koga se teško može zamisliti bilo koja savremena mreža. Princip rada DNS-a je relativno jednostavan, a njegov zadatak je da prevede DNS naziv u IP adresu ili obratno.Kada administratori ili korisnici žele da pristupe nekom računaru (resursu) u mreži, pristupaju najčešće navođenjem imena. Uneti upit (ime resursa) šalje se DNS serveru, koji prepoznaje ime i korisniku vraća traženu IP adresu. Uz pomoć dobijene IP adrese pristupate određenom računaru u mreži. Ukoliko DNS server nema tražene podatke, a vi ne znate IP adresu resursa koji vam je na mreži potreban, praktično nemate način da do njega dođete.

Funkcionisanje DNS servisa obezbeđuju protokoli koji omogućavaju klijenti/server komunikaciju. Pristup DNS bazi ostvaruje se uz pomoć DNS klijenta koji se zove RESOLVER. Bitno je napomenuti da postoje dve vrste upita ka DNS serveru: rekurzivni i interaktivni upit. Kod rekurzivnog upita moguća su dva odgovora, DA ili NE dok kod interaktivnog upita odgovori mogu biti: da, ne i „možda zna neko drugi“

Ukoliko klijent pošalje interaktivni upit a DNS server nema odgovor, on će proslediti taj upit nekom drugom DNS serveru u mreži ili van nje (na internetu) kako bi dobio odgovor i prosledio ga nazad klijentu. U DNS konfiguracionom fajlu (o kome ćemo govoriti kasnije), postoji root hints zapis.

Root hints zapis je resurs koji je neophodan svakom DNS serveru koji pretenduje da razrešava DNS nazive iz spoljašnjeg sveta (u odnosu na mrežu ili namespace za koji je odgovoran). To je u stvari lista zapisa sa IP adresama root level DNS servera odnosno, servera najvišeg nivoa u globalnom DNS svetu, koji su neophodni u procesu razrešavanja spoljnjih DNS naziva, a dostupni su svakom korisniku interneta. Postoji 13 root dns servera odgovornih za top level domain (TDL) koji u svakom trenutku mogu da obezbede informaciju za početak pretrage koju vaš primarni DNS server ne može samostalno da razreši.

U nastavku ćemo govoriti o instalaciji i konfigurisanju DNS servera na CentOS 6.2,  distribucije Red Hat Linux.

Nakon instalacije CentOS-a, potrebno je podesiti IP adrese na mrežnoj kartici. To možete uraditi na više načina a jedan od njih je kucanje komande setup u terminalu. Nakon aktiviranja ove naredbe otvoriće vam se mali grafički interfejs kao na slici:

networkconf

Potrebno je izabrati NETWORK CONFIGURATION a zatim DEVICE CONFIGURATION.

deviceconf

Ovim ste ušli u podešavanja na vašoj mrežnoj kartici. Potrebno je odčekirati USE DHCP čime ćete otvoriti polja za unos statičkih adresa. U zavisnosti od konfiguracije vašeg rutera dodelićete statičku adresu svom budućem DNS serveru, netmasku, defaultnu rutu (adresa rutera) i unos za primarni DNS server, koji će u našem slučaju, takodje biti adresa rutera. Ova adresa je privremena dok ne osposobimo svoj DNS server.

networkconfdata

Nakon podešenih IP adresa prelazimo u DNS CONFIGURATION.

dnsconf

Ovde je potrebno podesiti ime računara, naziv budućeg domena, unos za primarni DNS server (privremeno) kao i DNS SEARCH PATH. U našem primeru, HOSTNAME (ime računara) je: dns , a domain.loc je naziv domena. Primarni dns će biti adresa rutera (ruter ima podesen dns servis), a dns search path je, naravno, naš domen:  domain.loc.

dnsconfdata

Nakon što smo sve podesili, potvrdićemo na OK, snimiti promene i komandom reboot restartujemo računar kako bi prihvatio promene.

Sada je potrebno instalirati BIND, paket koji služi za podešavanje DNS servera. To radimo pomoću komande yum install bind . CentOS će povući paket sa interneta i instalirati sve što nam je potrebno.  Sledeći korak je kreiranje i konfigurisanje zona.

U našem slučaju potrebne su dve zone, forward i reverse, što je i minimalna konfiguracija za DNS server ali dovoljna za rad. Krenućemo od konfiguracionog fajla named.conf, on se nalazi u direktorijumu etc. Koristimo komandu vim /etc/named.conf  čime otvaramo pomenuti fajl. Taster „i“ nas prebacuje u INSERT mode, odnosno mod za kucanje.

Konfiguracioni fajl u našem slučaju izgleda ovako:

Gore je naznačeno gde šta treba da se izmeni, odnodno na liniji LISTEN-ON PORT 53, potrebno je u zagradi izbrisati adresu koja stoji i umesto nje napisati ANY kako bi server slušao na svim raspoloživim IP adresama. Takođe ANY dodajemo u liniji ALLOW-QUERY, kako bi dozvolio upite sa svih lokacija.

Sada je potrebo definisati dve neophodne zone, forward i reverse. Prva linija je zone “domain.loc” IN { .

Pod navodnicama unosimo naziv našeg domena. Tip zone je MASTER, (druga linija), a naziv fajla za ovu zonu je domain.zone . Ovaj fajl još uvek ne postoji i kada završimo sa konfiguracionim fajlom, potrebno je kreirati taj fajl.

Njegovo ime nije bitno, bitno je da se naziv kojeg smo uneli u konfiguracioi fajl i ime fajla kojeg ćemo kasnije napraviti, poklapaju!

U ovom slučaju, ime forward zone (razrešuje ime hosta u IP adresu) je domain.zone a obrnute zone (razrešuje IP adresu u ime hosta) je reverse.zone . Poslednju liniju u našem konfiguracionom fajlu komentarišemo uz pomoć znaka # na početku linije.

Fajlovi zona, koje moramo napraviti, treba da se nalaze u direktorijumu /var/named/ pa kreiranje startujemo komandom vim /var/named/domain.zone .

Otvoriće se blanko fajl koji posle našeg editovanja treba da izgleda ovako:

Ovaj fajl sadrži tri različita dns zapisa: SOA, NS i A zapis. SOA (start of authority) zapis ukazuje ko je osnovni server, u ovom slučaju to je naš računar dns.domain.loc . NS (name server) zapis ukazuje na autoritativni (nadležni) DNS server, u našem slučaju to je takođe dns.domain.loc računar.

Na kraju, potrebno je da kreiramo dva A zapisa, jedan je za ime računara a drugi za ime domena. Ovaj zapis pomaže da DNS prevodi ime u IP adresu i obrnuto! Neophodno je snimiti fajlove naredbom :wq! .

Ostalo je jos da kreiramo fajl za reverse zonu koja je neophodna, poput forward zone. Fajl kreiramo komandom vim /var/named/reverse.zone a on treba da izgleda ovako:

I ovaj fajl sadrži tri zapisa: SOA koji je isti kao i u prethodnom fajlu, name server (NS) koji je takođe isti i jedan novi zapis, PTR (pointer). Ovaj zapis služi za prevođenje IP adrese u ime.

U našem slučaju računar 20 (192.168.1.20) zove se dns.domain.loc .

Poslednje podešavanje je na mrežnoj kartici. Komandom setup, kao na početku, ulazimo u podešavanja za mrežnu karticu i DNS. Sve što treba da uradimo je da u okviru Primary DNS podešavanja, obrišemo adresu rutera i postavimo adresu našeg DNS servera: 192.168.1.20. Isto je potrebno promeniti i u okviru DNS CONFIGURATION podešavanja, a zatim komandom reboot resetovati računar radi prihvatanja promena.

Sada je primarni DNS server naša mašina a sa par komandi možemo proveriti da li sve funkcioniše kako treba.

Prvo što možemo da uradimo jeste da pingujemo google.com ili facebook.com – ili bilo koju drugu web stranicu (komanda ping, npr. ping google.com) Naš DNS u procesu pingovanja mora da razreši ime google.com u IP adresu, a potvrdni odgovor bi izgledao otprilike ovako:

ping

Još jedna komanda koja će vam potvrditi da vaš DNS razrešava imena kako treba, jeste nslookup.Forma je ista kao i kod komande ping…  nslookup facebook.com (primer). Ovom naredbom šaljete DNS upit za naziv: facebook.com i trebalo bi da u odgovoru dobijete IP adresu odgovarajućeg servera, uz potvrdu (predstavljanje) DNS servera koji je dao odgovor (to mora da bude unos za  vaš dns server).

Bio je to kratak prikaz instalacije i osnovne konfiguracije DNS servera na  CentOS-u.

itmogul-logoTekst je preuzet sa ugašenog bloga IT modul i originalni autor ovog teksta je Radoš Nikolić. Kompjuteraš IT blog će objavljivati tekstove sa tog bloga kako riznica znanja sa te lokacije ne bi otišla u zaborav.

Komentarišite

Email neće biti javno objavljen. Sajt je neobavezan podatak, svi ostali su obavezni.