DNS forwarder

From EIK wiki

Sissejuhatus

Hea võrguühenduse saamiseks ei piisa ainult heast interneti pakkujast, kuna on olemas mitmeid viise kuidas võrguühendus kiiremaks muuta. Üks võimalustest on DNS edastaja (ing k forwarder) kasutamine. DNS edastamine on teenus mida peaks kasutama, et kiirendada DNS nimelahendus protsessi. See on väga kasulik juhtudel, kui päring on saadetud kliendi poolt aga vastutav DNS server ei suuda tuvastada vastava domeeni nime IP aadressi oma vahemälus või autoriteetsetes tsoonides. DNS edastaja funktsionaalsuse kaudu saab mitte lahenduvad aadressid edasi suunata alternatiivsetele nimeserveritele. DNS edastaja kasutamine on abiks inimestele ja ettevõtetele, kus on suured nimeruumid. See aitaks ka koostööd tegevatel ettevõtetel lahendada üksteise nimeruume, et tagada ja isegi kiirendada DNS protsesse, juhul kui ühel nendest ettevõtetest on nimelahendamise probleemid.

DNS

Domeeninimede süsteem (ingl Domain Name System ehk DNS) on internetiteenus, mis tõlgib domeeninimed internetis või intranetis kasutatavateks IP-aadressideks. Toimides omalaadse "telefoniraamatuna", on antud süsteem tavatarbijate internetikasutuses hädavajalikud. Arvuti, mis on konfigureeritud täitmaks DNS teenust, nimetatakse nimeserveriks. Näiteks domeenile www.wikipedia.org vastab IP-aadress [91.198.174.2]. Kui esmane nimeserver ei leia enda nimekirjast vastet, saadab see päringu teisele serverile jne.
DNS-st lähemalt saab lugeda siit Microsoft DNS.

DNS-server

Nimeserver ehk DNS-server on andmesidevõrgus töötav server, mis pakub domeeninimede IP-aadressidega vastendamise teenust. Ilma nimeserveriteta saaks võrgus olevatele ressurssidele ligi ainult nende IP-aadressi teades. Näiteks kui soovitakse brauseris avada www.wikipedia.org, tuleks aadressiribale kirjutada www.wikipedia.org asemele [91.198.174.2]. Tänu nimeserverile pole aga seda vaja teha. Igal internetiteenuse pakkujal on olemas oma nimeserverid. Nende IP-aadressid edastatakse internetiühenduse loomisel automaatselt või sisestatakse eelnevalt käsitsi. DNS-server töötab hajusandmebaasi põhimõttel, mis tähendab, et kogu info ei ole kunagi ühes serveris. Iga nimeserver haldab internetis teatud piirkonda ehk domeeni. Andmebaas on ka mitmes serveris dubleeritud, et tagada efektiivset töökindlust.

  • Lokaalne (puhverdav) nimeserver - puhverdab nimeinfot, et parandada päringute kiirust korduvate päringute puhul.
  • Juurserverid - sisaldavad infot kõigi tippdomeenide kohta (com, edu, ee jne).
  • Pädev (autoratiivne) nimeserver - server, mille andmebaasis on informatsioon domeeninime ja selle IP aadressi kohta. Pädevaks nimetatakse nimeserverit, mis toetub tema enda kohalikule andmestikule. Pädevalt nimeserverilt saadakse pädev vastus. Pädevas nimeserveris on olemas terviklik koopia tsooni andmetest. Need andmed võivad olla pärit kohalikust konfifailist või saadud teise pädeva nimeserveri kaudu. Nimeserver võib ühe tsooni jaoks pädev olla, aga teise jaoks mitte. Ühel tsoonil on tavaliselt mitu pädevat serverit, nendest üks on primaarne ja ülejäänud sekundaarsed serverid.
  • Primaarne nimeserver (ing k Primary Server) - ehk Master server on nimeserver, mis saab oma andmestiku kohalikust konfiguratsioonifailist, mitte väljaspoolt mõnelt teiselt serverilt. Mingi tsooni primaarne nimeserver võib samal ajal olla mõne teise tsooni jaoks sekundaarne nimeserver.
  • Sekundaarne server (ing k Secondary Server) - mõnikord ka Slave Server Sekundaarne nimeserver on nimeserver, mis saab oma andmestiku välisallikast, tavaliselt primaarsest nimeserverist ja zone transfer teel. See on tema ainus erinevus primaarsest nimeserverist. Mingi tsooni sekundaarne nimeserver võib samal ajal olla mõne teise tsooni jaoks primaarne nimeserver. Resolveri seisukohast on primaarsed ja sekundaarsed nimeserverid võrdväärsed. Nad mõlemad annavad pädevaid vastuseid.

DNS tsoon

Tsoonid on DNSi hierarhilise struktuuri oluline osa, need aitavad jaotada nimelahendamise töökoormust. Tsoon on kogum hostinimesid ja neile vastavaid IP-aadresse. Täpsemat infot DNS tsoonide kohta saab siit Microsoft DNS.

Resolver

Nimelahendaja (ing k resolver) on programm, mis koostab nimepäringuid ja saadab neid nimeserveritele. Seega resolver on nimeserver, mis otsib klientarvuti tarbeks ressursikirjeid.

Erinevad DNS päringud

Päring (ing k query) - nimeserverile saadetav nõue ressursikirje saamiseks. Õige vastus päringule saadakse järgmiste sektsioonide kaudu:

  • Answer section, kus on kõik kirjed, mis serveril päringule vastamiseks olemas on.
  • Authority section, kus on NS (nime serveri) kirjed näitamaks kohti lisainfo hankimiseks.
  • Additional section, kus on igasugused lisakirjed, mis võivad olla kasulikud saadud vastuste tõlgendamisel. Enamasti on seal kirjas eelmises kahes sektsioonis nimetatud hostide IP-aadressid.

Kui DNS server edastab päringu DNS edastajale siis on see rekursiivne päring. See on erinev iteratiivsest päringust, mille DNS server saadab teisele DNS serverile standardse nimelahenduse päringu käigus (nimelahendus mis ei sisalda DNS edastajaid).

Iteratiivne päring

Resolveri poolt tehtav päring, mis küsib infot ainult selle kohta, mida nimeserver parajasti teab (kaasaarvatud puhverdatud info). Kui nimeserver täpset vastust ei tea, siis ta annab vastuseks nimekirja serveritest, kes asuvad otsitavale domeenile lähemal ning resolver otsustab ise, millise nimeserveri poole järgmisena pöördub. Iteratiivse päringu vastand on rekursiivne päring.
Iteratiivne paring.jpg

Rekursiivne päring

Resolveri poolt tehtav päring, mille puhul küsimuse saanud nimeserver proovib nimelahenduse ise ära teha. Kui nimeserver vastust ei tea, siis ta suunab päringud edasi (muutudes seega ise rekursiivset päringut saatvaks resolveriks) ja lõpuks saadab lõpptulemuse algsele resolverile tagasi. Rekursiivne paring.jpg

Kuidas DNS forwarder toimib?

DNS edastaja on DNS server, mis saadab teiste sisevõrgus olevate DNS serverite päringuid edasi välisvõrgus olevatele DNS serveritele. See tähendab seda, et see on tavaline DNS server kuhu teised sisevõrgus olevad DNS serverid pöörduvad oma päringutega, kui nad ei suuda seda lokaalselt lahendada. Kui ei ole määratud spetsiifilist DNS serverit, mis käituks kui DNS edastaja siis saadab iga DNS server päringuid võrgust välja ise kasutades oma juurvihjeid, mis on kas lokaalseid autoritatiivsed või vahemälus olevad andmed. Tulemuseks on see, et suurel hulgal tähtsat sisevõrgu DNS informatsiooni on võimalik tuvastada internetist. Lisaks veel turvalisuse ja privaatsus küsimustele võib selline lahendus põhjustada suure välise liikluse, mis on kulukas ja ebatõhus, eriti kui tegemist on aeglase interneti ühendusega. Kasutades DNS edastajat saab hallata nimelahendusi nende nimede jaoks, mis asuvad välisvõrgus (näiteks nimed mis asuvad internetis) ja muuta effektiivsemaks nimelahenduste käsitlemine arvutites, mis asuvad sisevõrgus. Kui määrata DNS server DNS edastajaks, siis samas on määratud see vastutama ka välisvõrgu liikluse eest, mis tõttu on see variant ka turvalisem. Sellel edastaja serveril on suur vahemälu kus on välisvõrgus asuvate nimelahenduste informatsioon kuna kõik välised DNS päringud lahendatakse läbi selle serveri. Tänu sellele suudab DNS edastaja server väikese ajaga lahendada suurel hulgal väliseid DNS päringuid kasutades vahemälus olevaid andmeid ning seega vähendades interneti liiklust üle võrgu ja DNS klientide päringutele vastamise aega.

DNS server, mis on konfigureeritud kasutama edastaja rolli käitub teistmoodi, kui tavaline DNS server.

  • Kui DNS server saab päringu üritab ta seda lahendada kasutades primaarset ja sekundaarset tsooni mida see võõrustab ning vahemälu.
  • Kui päringut ei saa teostada nende kohalike andmetega siis saadab ta päringu edasi sellele DNS serverile mis on konfigureeritud DNS edastajana.
  • DNS server ootab põgusalt edastajalt vastust ennem kui üritab kontakteeruda DNS serveritega mis on täpsustatud tema juurvihjetes.


Conditional Fowarder

Samuti saab edastada päringuid vastavalt konkreetsetele domeeninimedele kasutades tingimuslikke edastajaid (ing k conditional DNS forwarder). Tingimuslikud edastajad on DNS serverid, mis edastavad DNS päringuid vastavalt DNS’i domeeni nimele päringuss. Selle asemel, et edastada kõik päringud, mida ta lokaalselt lahendada ei suuda, edastajale, on tingimuslikud edastajad konfigureeritud edastama päringud teatud edastajatele, mis on päringus määratud domeeni nimedena. Spetsiaalselt määratud domeeni nimedele edastamine täiendab tavalist edastamist, lisades edastamis protsessi domeeni nime-põhised tingimused.

Tingimuslike edastajate sätted sisaldavad:

  • Domeeni nimesid, mille puhul DNS server edastab päringuid.
  • Ühte või mitut DNS serveri IP aadressi iga määratud domeeni nime kohta.

Näiteks saab DNS serverit konfigureerida nii, et see edastaks kõik talle saabuvad päringud, mille nimed lõppevad seeon.näide.ee, konkreetsele DNS serverile või mitmetele DNS serveritele.

Kui DNS klient või server teeb päringu DNS serverile, siis DNS server vaatab kas seda päringut saab lahendada kasutades oma enda tsooni andmeid või andmeid, mis on puhvris (vahemälus). Kui DNS server on seadistatud edastama päringut, päringus määratud domeeni nime järgi, siis päring edastatakse sellele domeeni nime IP aadressile, mis on selle domeeni nimega seotud.

Allolevas näites on iga päring edastatud vastavale DNS serverile, mis on seotud selle domeeni nimega. Kui DNS serveril pole nimekirjas ühtegi edastajat, päringus määratud domeeni nimedele, üritab server päringut lahendada kasutades tavalist rekursiooni.
Conditional forwarder.jpg

DNS server ei saa edastada päringuid domeeni nimede jaoks tsoonis, mida ta ise hostib. Näiteks autoratiivne DNS server tsoonis microsoft.com ei saa edastada päringuid, vastavalt domeeni nimega microsoft.com. Aga ta saab edastada päringuid DNS nimedele, mis lõppevad example.microsoft.com, kui example.microsoft.com on delegeeritud teisele DNS serverile.

Tingimusliku edastaja domeeni nime pikkus

Kui tingimusliku edastajana seadistatud DNS server saab päringu, siis võrdleb ta seda domeeni nime oma domeeni nimede tingimuste nimekirjaga ning kasutab pikimat domeeni nime tingimust, mis vastab päringus olevale domeeni nimele.

Allpool toodud näites on toodud DNS serveri tingimusliku edastusega seotud sammud, et teha selgeks kuidas päring domeeni nimele edastatakse: Conditional forwarder example.jpg


1. DNS server saab päringu domeenilt networks.example.microsoft.com.
2. Seda domeeni nime võrreldakse nii microsoft.com-ga kui ka example.microsoft.com-ga.
3. DNS server teeb kindlaks, et example.microsoft.com on see domeeni nimi, mis klapib rohkem selle domeeni nimega, mis on päringus.
4. DNS server edastab päringu DNS serverile IP aadressiga 172.31.255.255, mis on seotud domeeni nimega example.microsoft.com.

Forward-only serverid

Kui DNS server on seadistatud edastajana või kasutab edastajaid ning ei saa lokaalselt päringuid lahendada, siis üritab server lahendada päringut kasutades tavalist rekursiooni. DNS serverit võib seadistada ka nii, et ta ei kasutaks rekursiooni kui edastamine ebaõnnestub. Sellise seadistusega server ei ürita nime lahenduseks teha enam ühtegi rekursiivset päringut. Kui ta ei saa päringule vastust üheltki serverilt, mis on konfigureeritud edastajana, siis päring ebaõnnestub. Selliselt käituvat serverit kutsutakse forward-only serveriks.

Forward-only DNS serverid on erinevad mitte rekursiivsetest (ehk iteratiivsetest) DNS serveritest kuna nad ehitavad endale puhvri, mis on seotud domeeni nimedega ning kasutavad seda domeeni nimede lahendamiseks. Mitte rekursiivne DNS server ei ehita puhvrit, mis on seotud domeeniga ega ka kasuta rekursiooni. Mõlema seadistuse puhul üritab DNS server enne lahendada päringuid kasutades autoratiivseid andmeid kui edastajaid.

Rekursiooni saab keelata terves DNS serveris või domeeni nime põhjal. Kui sa keelad rekursiooni terves DNS serveris, siis ei saa selles DNS serveris edastajaid kasutada.

Edastamis järjekord

DNS serveris olevate DNS edastajate IP aadresside järjekord määrab nende kasutamise järjekorra. Kui DNS server on edastanud päringu esimese IP aadressiga olevale edastajale, siis see ootab natukene aega (vastavalt DNS serveri time out seadistusele) vastust sellelt edastajalt ennem kui jätkab edastamis operatsioone järgmise IP aadressiga. Server jätkab selle tegevusega nii kaua kuni on saanud kinnituse vastuse edastajalt.

Näiteks alloleval joonisel esimese ja teise IP aadressiga edastajad ei vasta serverile. Järjekorras kolmanda IP aadressiga edastaja vastab ning päring saadetakse sellele DNS serverile. Forwarding sequence.jpg

DNS edastaja seadistamine

Allolevatel piltidel on juhend DNS edastaja seadistamiseks operatsiooni süsteemis Windows Server 2003.

1. Avage DNS serveri aken ning vajutage paremat hiire klahvi "DNS serveril", seejärel valige "Properties" Dns forwarder1.jpg

2. Valige "Forwarders" lahter ning lisage märge klikkides kastile "Enable forwarders" ja lisage edastaja DNS serveri IP aadress ning klikkige "Add". Forward-only serveri seadistamiseks tuleb lisada märge klikkides kastile "Do not use recursion".
Dns forwarder2.jpg

Kasutatud allikad

Autor

Arvi Alamaa A21