DNS DNS elmélet és szerverkonfiguráció Összeállította: Sallai András Terjesztés csak csak engedéllyel. Copyright 2006 v.2
Tartalom DNS elmélete Bind9 konfiguráció
Domain Name System Osztott név adatbázis Osztott, hierarchikus adatbázis Névszerverek százezrei Nevek milliói Gondoltak a redundanciára és a hibatűrésre is Legfontosabb feladat: Név IP cím összerendelés feloldása Egy sor más információt szolgáltat
Kényelem A számítógépeket IP cím azonosítja Minden felhasználó azonban neveket szeret beírni
Hosts fájl Kezdetben hosts táblázat Ez idővel hatalmasra dagadt Sűrű módosítás Egyre többen töltötték le Egyre gyakrabban töltötték le
DNS P. Mockapetris <- főszerep ISI (Information Science Institute) munkatársa
Feladatuk általánosan A nevek feloldása hálózati kommunikációval történik Kettős feladat (mint a közúti-közlekedésben): Látni Láttatni
Illetékesség fogalma Autoritatív - A szerver illetékes egy név dolgában
Fa szerkezetű gyökér Top level (TLD)
Zóna A név-fa zónákra oszlik Egy zóna a fa egyben kezelt része (pl. az összes TLD-t kezelő root) Egy zóna az illetékes szerveren ált. Egy fájl.
Elsődleges - másodlagos Elsődleges szerver -> zóna adminja változtatja Másodlagos szerver -> tükrözzük az elsődlegesről
Delegálás A zóna egyes darabjainak kezelését más szerverekre bízzuk Pl: én kezelem a intezet.hu zónát. Az osztaly1 nevű aldomaint akar a cég léterehozni, és ezt az osztály1 osztályon levő szerverről akarják kezelni. Akkor a szerveremen delegálom osztaly1.intezet.hu zónát. Az osztály1 gazdája felelőse és teljes ura lesz ennek az aldomainnek.
Több színtű névmegadás Többszintű névmegadás delegálással lehetséges De nem feltétele! Magam is hozhatok létre olyan domaineket, amelyek pontot tartalmaznak: osztaly.intezet.hu
FQDN (Fully Qualified Domain Name) Hierarchia -> Minden név egyedi Domain pontokkal elválasztott részei -> szegmens
FQDN jelölése Domain név teljes -> végére pontot teszünk Előfordulhat ilyen domain: jupiter.vas.edu jupiter.vas.edu.intezet.hu Az edu végzödés nem garantálja, hogy FQNről van szó.
Domain név megadás Latin ABC [a-z] Számjegyek [0-9] Kötőjel [-]! Aláhúzás nem lehet!
Domain név megadás II. Ma már használható ékeztes domain is. Ékezetes domain esetén egy szabály alapján meghatározott alakban írjuk a domaint. Nem kell ezt nekünk kalkulálni: http://www.domain.hu/domain/ekezetes.html
Inverz feloldás (reverz) IP címből - domain név Biztonság növelésénél fontos -> Csak olyan címről fogadunk kapcsolatot ahol a hozzátartozó név kideríthető
in-addr.arpa in-addr.arpa bevezetése az inverz feloldáshoz Adott IP cím: 195.166.85.2 A címhez tartozó nevet így kapjuk meg: 2.85.166.195.in-addr.arpa
Névfeloldás menete pluto.bme.hu címet keressük Gépen van egy rezolver (feloldó program) Nem maga végzi a feloldást, csak kéri egy DNS szervertől Telepítéskor megadtunk két DNS szervert - IP címet adunk meg
DNS kérés : pluto.bme.hu Az én DNS szerverem válaszol azonnal A gyökérszerverhez fordul megtudja hu zónáért illetékes szerverek listáját Az újabb névszervertől az én DNS szerverem most azt kérdezi ki a felelős a bme zónáért Az újabb névszervertől az én DNS szerverem azt kérdezi hol található a pluto Ezt nevezzük REKURZÍV FELOLDÁS-nak
Rekurzív feloldás DNS-es szerverek nem végeznek minden kliensnek ilyen feloldást, csak a konfigurációban megadottaknak
Cache -- TTL A névszerverek tárolják egy ideig a feloldást, hogy ha legközelebb kérik tőle azonnal tudja a választ - hálózati forgalom csökkenése - gyors névfeloldás A tárolás idejét a zóna adminisztrátora adja meg a zóna leírásánál TTL Time To Live Ennyi másodpercig tárolják a cache szerverek az adatokat
Névszerver felosztása Caching only Autoritatív (látató) Forwarder Slave
Caching only Nem illetékes (autoritatív) egyetlen névnél sem, csak klienseknek oldja fel a neveket
Autoratív Amelyek nevekhez tartozó címeket (amiről eddig szó volt.
Forwarder Saját cache-ével egészítjük ki saját szerverünk cache-ét
Slave Csak forwardert használ a nevek feloldására (egyet vagy többet)
Lame delegálás Ha valahova delegálunk egy nevet, akkor azt az ottani adminisztrátorral is meg kell beszélni, hogy azt folyamatosan szolgáltassa. Ha ez nem történik meg, akkor beszélünk lame delegálásról.
DNS adatbázis rekordtípusai SOA Start Of Authority A -- Address NS Name Server Glue rekord speciális A rekord CNAME Canonical NAME MX Mail exchanger TXT TeXT HINFO Hardware INFOrmation PTR PoinTeR
SOA - Start of Authority rekord, zóna kezdő rekord A SOA rekord adja meg egy zónára vonatkozó közös információkat. valami.hu. SOA gep.valami.hu. mester.valami.hu. ( 1999093001 ;Serial nr. 86400 ;Refresh 1800 ;Retry 604800 ;Expire 43200) ;TTL
SOA rekord első sor valami.hu. SOA gep.valami.hu mester.valami.hu - zóna neve - elsődleges névszerver - emailcím úgy kapjuk, hogy az első pont karaktert (amit nem előz meg egy (backslash \) at jelre (@) cseréljük
SOA rekord második sor 2006091801 ; Serial nr. A slave szerverek ellenőrizhetik, hogy a náluk lévő adatok nem avultak-e el. Az elsődleges zóna adminja minden javításkor növeli ezt a számot. Szokás: Akt. Dátum plusz a mai javítás száma két számjegyel: ÉÉÉÉHHNNVV
SOA rekord harmadik sor 86400 ; Refresh Másodpercben megadott szám Frissítési idő A Slave szervernek mennyi időnként kell megnézni, hogy nem avultak-e el az adatai
SOA rekord negyedik sor 1800 ; Retry Másodpercben megadott szám Ha frissítés nem sikerült mennyi idő múlva próbálkozzunk újra
SOA rekord ötödik sor 604800 ; Expire Másodpercben megadott szám Ha nem sikerül a masterrel kommunikálni akkor ennyi ideig szolgáltatják a világnak a zónát
SOA rekord hatodik sor 43200 ; TTL Másodpercben megadott szám A zóna rekordjaira vonatkozó alapérték
TTL értékek Fontos az ésszerű beállítás Szokásos értékek: - refresh 86400 1 nap - retry 3600 1 óra - expire 604800 1 hét - TTL 86400 1 nap Ha gyors változásvárható a TTL-et érdemes kicsire venni.
Hiba Ha az expire idő nem nagyobb mint a refresh akkor a másodlagos szerver nem fogja szolgáltatni az adatokat
TTL értékek könnyebben A 8-as változatú Bindtól használhatók a köv. formátáumok: 1W2D3H W egy hét D egy nap H egy óra
A rekord Domain névhez rendelünk egy IP címet pl: pandora.bme.hu. A 195.199.17.8
A rekord II. Nem kötelező megadni a teljes FQDN-t: pandora A 195.199.17.8 Mivel adott zónában, vagyunk, a többi egyértelmű Ha mégis FQDN-et adunk meg akkor pont a végén!
NS rekord A névszerverek címe Kettő szokott lenni: Egyik maga a master szerver, a másik a Slave szerver Pl: IN NS gep.osztaly.valami.hu. IN NS gep.osztaly.masvalami.hu
Név szerver Ma már kötelező két névszerver megadása A két DNS szervernek különböző hálózatban kell lennie!
Glue rekord - Idegen (ragadvány) A rekord A delegált zóna egyik névszervere az adott zónában van. Pl.: gep.osztaly.valami.hu -nak saját DNS szervere van, mégis meg kell adni ezt feljebb a valami.hu zónában is! Különben csapdába kerülünk! Konkrétan: gep.osztaly A 195.166.12.1
CNAME rekord A hostnak becenevet adhatunk vele pl: www CNAME gep gep.valahol.hu www.valahol.hu ekkor így is elérhető:
MX rekord A domainbe érkező leveleket fogadó szerver címe IN MX IN MX 10 mail.valahol.hu 20 masik.valahol.hu A számoknak akkor van jelentősége, ha több (mint itt 2) mail szerver várja a leveleket. Egyik elsődleges. A másik csak akkor fogadja a leveleket, ha az első nem működik. A szám a prioritást adja meg.
TXT rekord Tetszőleges szöveget írhatunk ide. Megjegyzés stb.
HINFO rekord Hardverről szokás (lehetne szokás, nem szokás) írni ide információkat
PTR rekord Cím név feloldásra -> inverz feloldás Az in-addr.arpa domain alá tartozó ág szolgálja a IP címek feloldását Pl: 8.2.166.195.in-addr-arp IN PTR valami.hu
Domain akarunk magunknak I. Meg kell néznünk van-e ilyen domain http://domain.hu Slave szerver szolgálatót keresünk Regisztrátort keresünk Az Mastert mi szolgáltatjuk: beállítjuk a szerverünkön
Domain akarunk magunknak Meg kell néznünk van-e ilyen domain http://domain.hu Várakozási lista -> 2 hét Ha nincs Slave szerver a regisztrátor nem csinálja meg a delegálást!.hu domainre gondolok
DNS szerver programok BIND mydns-mysql mydns-pgsql pdns-server
BIND - Berkeley Internet Name Domain Jelen nagy verziók: BIND8 BIND9 apt-get install bind9 (rendelkezésre áll a 8-as verzió bind csomagban, ne tévesszük össze)
BIND9 konfig fájlok I. /etc/bind/ Minden zónát fel kell vennünk a /etc/bind/named.conf fájlban (A TOP level domainek elérhetősége alapból konfigurálva van)
BIND9 konfig fájlok II. /etc/bind/named.conf.options fájl globálisa bind egészére vonatkozó beállításokat tartalmazza
directory opció Egy könyvtárra mutat A zónafájlok helye ehhez a könyvtárhoz képest ralatívan értendők. Esetünkben ezért így helyes: /var/cache/bind
forwarders opció Ha TOP level domainek lekérdezése helyett az ISP szervereitől akarunk lekérdezni DNS-t a gyorsabb elérés érdekében (mivel azok a névszerverek közelebb vannak), akkor ide írjuk azok IP címét.
Query-source address * port 53; A 8.3 bindtól tetszőleges port megadható amelyen a bind figyeli a kéréseket.
BIND9 konfig fájlok III. Minden zónának kell külön ún. zónafájlt csinálni, melyek szokásos helye (ez állítható a /etc/bind/named.conf fájlban), a /var/cache/bind vagy /var/lib/named Debian alatt a /var/cache/bind automatikusan létrejön Itt két újabb könyvtár létrehozása szokásos. Master és slave. A master könyvtárban tároljuk azokat a zónákat amelyeknek Master szervere vagyunk, és értelemszerűen a slave könyvtárban azoknak a zónáknak a fájljait tesszük amelyeknek slave vagyunk.
Zónafájlok helye mkdir /var/cache/bind/master mkdir /var/cache/bind/slave
valahol.hu zóna bejegyzése mcedit /etc/bind/named.conf zone valahol.hu in { type master; notify yes; fájl master/valahol.hu.zone ; };
valahol.hu zóna bejegyzése A zóna neve zone valahol.hu in { Master típusú zóna type master; notify yes; A Slave szervernek nem kell a refresh lejáratára figyelni, maga kezdeményezheti a frissítést fájl A zónafájl helye master/valaho.hu.zone ; };
valahol.hu zóna bejegyzése II. A zónafájloknak szokásos kiterjesztése.zone A fájl neve a zóna nevével egyezik (opcionális, de szokás és ésszerű). touch /var/cache/bind/valahol.hu.zone
valami.hu.zone fájl $TTL 3D @ IN SOA gep.valahol.hu hostmaster.valaho.hu( 2006092401 8H 2H 4W 1D) IN NS gep.valaho.hu IN MX 10 mail.valahol.hu gep IN A 195.166.22.8 www IN CNAME gep mail IN CNAME gep
postmaster@valahol.hu DNS szerverünkön működnie kell a postmaster@valahol.hu e-mail címnek. E nélkül a regirsztrátorok nem fogadják el kérelmünket.
Technikai ellenőrzés http://www.domain.hu/domain/regcheck
Technikai ellenőrzés.hu domain esetén 2 hét várakozási idő A regisztrátor csak akkor delegálja a toplevel szervereken a domainünket, ha lefut a regchek, azaz a technikai ellenőrzés sikeres
BIND újraindítása Új zóna esetén: /etc/init.d/bind9 reload Ha változtatunk egy zónán: rndc reload
Ellenőrző eszközök host kiszolgáló lekérdezése dig kiszolgáló tesztelése dlint hiba ellenőrző nslookup kiszolgáló interaktív lekérdezése
dig Kiszolgáló tesztelése Megadjuk neki melyik névszerver beállításaira vagyunk kíváncsiak, és melyik domain-re.
Postmaster ellenőrzése telnet localhost 25 Telnet 127.0.0.1 Megnézzük a postaládát Ha távolról lépünk be, akkor nem kell megnézni, ha nincs ilyen e-mail cím akkor nem fogadja el, hacsak nem vagyunk OpenRelay
Inverz zóna mcedit /etc/bind/named.conf zone 22.165.195.in-addr.arpa in { type master; notify yes; fájl master/159.166.228.zone ; };
Zóna fájl mcedit /var/cache/bind/master/195.166.22.zone $TTL 3D @ IN SOA gep.valahol.hu hostmaster.valahol.hu( 2006092401 8H 2H 4W 1D) IN NS gep.valahol.hu 8 IN PTR gep.valahol.hu
PTR ellenőrzése host 195.166.22.8
Irodalom http://szabilinux.hu/dns/index.html http://www.domain.hu http://www.domain.hu/domain/ekezetes.html http://www.nic.hu