Felhasználói eszközök

Eszközök a webhelyen


oktatas:linux:dns_szerver:elmelet

< DNS szerver

DNS szerver

  • Szerző: Sallai András
  • Copyright © 2011, Sallai András
  • Szerkesztve: 2011, 2013, 2017, 2018
  • Licenc: CC BY-SA 4.0

Előfeltevések

Az iskolapélda bemutatásához kitaláltam egy olyan legfelső szintű tartománynevet (toplevel domaint), amelyet a valóságban nem használnak:

.and

A .hu, .eu, .org, stb. helyett ezt fogjuk használni. Saját tartománynevünk a „zold” lesz, vagyis egy ilyen domaint szeretnénk beállítani:

zold.and

A beállításokhoz a szerverünket el kell nevezni valahogy. Ez lesz a gépünk neve (host név vagy hostname). Ennek beállításait lásd a hostnév beállítása fejezetben. A gépnevünk a példában:

iskolazo

A szerverünket tehát így is el lehet majd érni:

iskolazo.zold.and

Feltételezzük, hogy van egy fix IP címünk, amelyen állandóan elérhetjük majd az általunk konfigurált szervert. Az iskolapéldában egy belső IP címet fogunk ehhez használni, vagyis éles szervereken ilyen nem lesz. Legyen ez a példabeli IP cím:

192.168.5.4

Ez lesz a szerverünk IP címe.

Domain Name System

A DNS az IP cím és tartománynév összerendelések feloldására kitalált rendszer. Hierarchikus felépítésű, osztott adatbázisból áll. Az Interneten névszerverek százezrei, nevek millióit szolgálják ki. Kezeli a redundanciát és jó hibatűrő képességekkel bír, és kiszolgál a fő feladata mellett néhány más információt is.

Létrehozásának célja a kényelem volt. A számítógépeket IP címekkel azonosítjuk, azok helyett viszont neveket szeretünk inkább beírni.

Ha nem lennének tartománynevek, akkor egy weboldal eléréséhez azt kellene begépelnem, például:

195.199.1.5

Mennyivel jobb e helyett egy tartománynevet gépelni.

Hosts fájl

A DNS előtt is volt névfeloldás. Ezeket hosts fájlokkal oldották meg. Konkrétan ez volt a fájl neve. Ezek a hosts fájlok ma is megtalálhatók minden gépen és használhatók is. Egy ilyen nevű állományban tárolták az IP címeket és a hozzájuk tartozó neveket. Ezek az állományok azonban idővel igen nagyra nőttek. Nagyon sűrűn kellett változtatni azokat. A hálózatok növekedése miatt egyre több ember, egyre gyakrabban töltötte le a fájlokat, így szükségszerűvé vált egy újabb megoldás.

/etc/hosts
195.199.200.48    jupiter.zold.and
180.123.5.24      mars.sarga.and
210.100.205.8     venus.piros.and
208.24.243.238    pluto.lila.and

DNS

A DNS rendszer megalkotásában Paul Mockapetris játszotta a legnagyobb szerepet, 1983-ban, amikor az ISI (Information Science Institute) munkatársa volt.

Feladatuk általánosan

A DNS szerverek a nevek feloldását hálózati kommunikációval oldják meg. A feladatait két részre lehet osztani:

  • láttatás
  • látás

Illetékesség fogalma

Autoritatív - A szerver illetékes egy név dolgában. Vagyis az adott szerveren van beállít „master”-ként az adott domain.

A DNS szerkezete

A DNS hierarchikus felépítésű. Legfelül a gyökér van, amelyet több számítógép képvisel. A gyökér alatt találhatók a top-level domainek. Ezek a hu, edu, org, com, stb. A domainek a példában a nyf, a szit, a bme, az debian és kernel.

Kérdezzük le a gyökérszervereket:

dig . ns

Top-level

Legfelső szintű domain.

Az ISO-3166-1 szabvány alapján:

  • gov - kormányzati szervek
  • edu - oktatási intézmények Amerikában
  • org - non-profit szervezetek
  • net - hálózati szervezetek
  • mil - katonai szervezetek
  • arpa - inverz zóna és a régi Arpanet egyes részei

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 általában 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.

A regisztrátoroknál bejegyzett fődomainek is tulajdonképpen delegált domainek.

A példánkban szereplő zold.and domain alá szeretne a barátunk egy barat.zold.and domaint, amelyet ő fog kezelni saját szerverén. Ekkor a barat.zold.and domaint delegálom számára.

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)

A DNS rendszer hierarchikus felépítéséből következi, hogy minden név egyedi.

Hierarchia → Minden név egyedi

A top-level domain alatt megadok egy fő domaint, azok alatt pedig újabb aldomaineket hozhatok létre. Azok alatt pedig megint újabb domainek lehetnek. Az aldomainek így a zónák egy szegmensét jeltik. Az egyes szegmenseket ponttal (.) tagolom, mint a fenti példánkban is:

iskolazo.zold.and

vagy

barat.zold.and

vagy

info.zold.and

vagy

prog.info.zold.and

vagy

prog.and.info.zold.and

vagy

zold.and.zold.and

A zónaleírásokban, ha egy zold.and zónában vagyok, akkor a szegmensekre való hivatkozások során, nem kötelező zold.and kírása. Például írhatom ezeket a fentiek helyett:

iskolazo
barat
info
prog.info
prog.and.info
zold.and

Vegyük észre az utóbbi példában, ha leírom, hogy zold.and akkor nem világos, hogy az „and” most top-level domain vagy aldomain. Ezért ha top-level domainről van szó, akkor a végén ezt egy ponttal (.) szokás jelezni.

zold.and.

Ha nem teszem ki pontot, akkor zold.and domain alatt lévő zold.and aldomainekről van szó. Így egyértelműen jelezzük, hogy a teljes domaint képviselő nevet adom meg, vagy csak egy aldomaint.

Láthattuk, hogy az .and végződés nem garantálja, hogy amit leírok annak az utolsó domaine top-level.

A top-level domainekkel a végén megadott domaint FQDN-nek nevezzük. A fentiekből pedig megtanultuk, hogy az FQDN-t mindig úgy jelezzük, hogy a domain végére egy pontot teszünk, jelezve, hogy a teljse domaint kiírtuk.

Ezek utána a Fully Qualified Domain Name leghelyesebb fordítása talán „teljes domaint képviselő név”.

Domain név megadás

A domain névben szerepelhetnek a latin ábécé angol betűi, számok és kötőjel:

  • Latin ábécé angol betűi [a-z]
  • Számjegyek [0-9]
  • Kötőjel [-]

Aláhúzás nem lehet a domain névben.

Ma már használható ékeztes domain is. Ékezetes domain esetén egy szabály alapján meghatározott alakban írjuk a domaint, vagyis le kell kódolnunk az ékezetes domain nevet. A kódolást nem kell nekünk elvégezni, az alábbi weblapon találunk hozzá segítséget:

Inverz feloldás (reverz)

IP címből domain név

A teljesség igénye megkívánja, hogy ne csak a domain nevekből legyünk képesek IP címeket feloldani, hanem fordítva is. Ezt nevezzük inverz feloldásnak.

Biztonság

Az inverz feloldás persze nem csak a teljesség igényét szolgálja. Ma már a spamek miatt a levelezőszervereken követelmény, hogy ne fogadjunk el olyan szerverről leveleket, amelyeknek az IP címe nem oldható fel domain névvé. Sőt, ha kaptunk egy domain nevet, az legyen valós, vagyis a visszakapott doman név is feloldható legyen IP címmé.

Az inverz zóna neve

Ha adott az Interneten egy IP címünk, például 195.166.85.2, akkor a zóna nevünk amit beállítunk persze nem ez lesz. Először az IP címünknek vesszük az értékes részeit, majd leírjuk fordított sorrendben, a végére pedig a „in.addr-arpa” nevet fűzöm.

A 195.166.85.2 IP címből tehát ez lesz:

2.85.166.195.in-addr.arpa
195.166.85.2 2.85.166.195.in-addr.arpa

Ha fenti iskolapéldánknál akarunk maradni, akkor:

192.168.5.4 4.5.168.192.in-addr.arpa

Ha a 192.168.5.0/24 tartományunk van, amiért én felelek, akkor az egész tartományt megadhatom, ha csak a hálózat címét adom meg:

5.168.192.in-addr.arpa

Ezek után a zónafájlban több IP címet is megadhatok:

1 PTR elso.zold.and
2 PTR masodik.zold.and
3 PTR harmadik.zold.and

IPv6 esetén a Google DNS szervere példaként:

host  2001:4860:4860::8888
8.8.8.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.6.8.4.0.6.8.4.1.0.0.2.ip6.arpa  domain
name pointer google-public-dns-a.google.com.

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

  • Illetékes, Autoritatív, láttató szerver
  • Nem illetékes, látó szerver
    • Továbbító (forwarder) - más szerverek számára gyorsítótárat szolgáltat
    • Slave - Csak forwardert használ (mert például nem lát ki a Internetre)
      • Nem keverendő az illetékes slave szerverrel
    • Caching only (hint) - Csak gyorstáraz, sosem illetékes

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

A következőkben áttekintjük a DNS szerverekben használt rekordokat. A rekord neve előtt megadható, hogy milyen típusú hálózatot használunk, például IN vagyis InterNet, de az alapértelmezett, ennek megadása nem kötelező.

  • SOA – Start Of Authority
  • A – Address
  • AAAA - 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.

zold.and. SOA iskolazo.zold.and.
hostmaster.zold.and. (
1999093001 ; Szériaszám - Serial nr.
86400 ; Frissíts gyakorisága - Refresh
1800 ; Újrapróbálkozás - Retry
604800 ; Lejár - Expire
43200) ;TTL

SOA rekord – első sor

zold.hu. SOA iskolazo.zold.and hostmaster.zold.and
  • 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

Azt kérjük más névszerverektől, hogy legalább ennyi ideig szolgáltassák az zónát.

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.

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

SOA előtti TTL

A SOA rekord előtti TTL, a zóna alapértelmezett TTL értéke. Megmondja az egyes zóna egyes rekordjai meddig érvényesek. Az egyes rekordokban ezt felülírhatjuk.

Hiba

Ha az expire idő nem nagyobb mint a refresh akkor a másodlagos szerver nem fogja szolgáltatni az adatokat.

A rekord

Az „A” rekorddal rendelünk a domain névhez IP címet.

Legyen például egy pandora.bme.hu domin:

pandora.bme.hu.  A  195.199.17.8

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!

Az iskolapéldánkban ez így néz ki:

iskolazo.zold.and.    A   192.168.10.1

AAAA rekord

IPv6-os cím

iskolazo.zold.and.  AAAA   2001:db8:85a3:8d3:1319:8a2e:370:7348

NS rekord

A névszerverek címe Kettő szokott lenni:

Egyik maga a master szerver, a másik a Slave szerver

Pl:

NS iskolazo.zold.and.hu.
NS barat.lila.and.

Névszerver

  • 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

Glue rekord -– Idegen (ragadvány) A rekord

A delegált zóna egyik névszervere az adott zónában van. Pl.: A 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

Az iskolapéldánkban ez például így nézhet ki:

barat.zold.and  A  192.168.5.4

CNAME rekord

A hostnak becenevet adhatunk vele.

Pl:

www CNAME gep

gep.valahol.hu ekkor így is elérhető:

www.valahol.hu

Iskolapéldánkban:

www CNAME iskolazo

vagy egy ftp:

ftp CNAME iskolazo

MX rekord

A domainbe érkező leveleket fogadó szerver címe

MX 10 mail.zold.and.
MX 20 mail2.zold.and.

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

Az inverz zónákat állítjuk be a PTR rekord segítségével.

  • 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-arpa PTR valami.hu

Az iskolapélda:

4.5.168.192.in-addr.arpa   PTR  zold.and

Domaint akarunk magunknak

Az alábbiakban sorra vesszük, milyen lépéseket kell megtennünk, ha szeretnénk magunknak egy saját tartománynevet az Interneten.

  • Meg kell néznünk nem használja-e valaki már a kívánt domain nevet.
  • Slave szerver szolgáltatót keresünk
  • Regisztrátort keresünk
  • Ha a mastert mi szolgáltatjuk: beállítjuk a szerverünkön
  • 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

Függelék

DNS szerver programok

  • bind9
  • pdns-server (PowerDNS)
    • pdns-tools
    • pdns-recursor
    • pdns-backend-ldap
    • pdns-backend-mysql
    • pdns-backend-opendbx
    • pdns-backend-pgsql
    • pdns-backend-sqlite3
    • pdns-backend-tinydns
  • yadifa
  • maradns
  • knot
  • nsd
  • gdnsd

DNS proxy

  • dnsproxy

Feloldók:

  • unbound

Nyitott DNS szerverek

  • 1.1.1.1 Cloudflare
  • 8.8.8.8 Google
  • 8.8.4.4 Google
  • 9.9.9.9 IBM
  • 208.67.222.222
  • 208.67.220.220
  • 80.80.80.80
  • 80.80.81.81
  • 77.88.8.8
  • 77.88.8.1
  • 77.88.8.88
  • 77.88.8.2
  • 77.88.8.7
  • 77.88.8.3
oktatas/linux/dns_szerver/elmelet.txt · Utolsó módosítás: 2023/08/20 23:14 szerkesztette: admin