Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a cikk a DNS-üzenetek (tartománynévrendszer) windowsos és Windows Server-környezetekben való felépítését és formátumát ismerteti. A DNS-üzenetformátumok ismerete elengedhetetlen a DNS-kiszolgáló rendszergazdái számára, akiknek elemezni kell a DNS-forgalmat, elhárítani a névfeloldási problémákat és optimalizálni a DNS-teljesítményt.
A DNS szabványosított üzenetformátumokat használ az ügyfelek és kiszolgálók közötti kommunikációhoz. Az összes DNS-üzenet – legyen szó lekérdezésről, válaszról vagy frissítésről – egy általános struktúrát követ bizonyos mezőkkel, amelyek meghatározzák az információk feldolgozásának módját. Ez a cikk a DNS-üzenetek három fő típusát ismerteti, és lebontja az összetevőket, hogy segítsen megérteni, hogyan működik a DNS-kommunikáció a protokoll szintjén.
DNS-protokollok és szabványok
A Windowsban és a Windows Serverben a DNS megfelel az Internet Engineering Task Force (IETF) által meghatározott iparági szabványoknak és protokolloknak. Az alapvető DNS-protokoll az RFC 1035-ben van megadva, amely a DNS-üzenetek formátumát ismerteti, beleértve a lekérdezéseket és a válaszokat. További szabványok, például a dinamikus frissítésekhez készült RFC 2136 és a DNS Security Extensionshez (DNSSEC) készült RFC 4033 , növelik a DNS funkcióit és biztonságát.
A DNS-protokoll különböző típusú DNS-üzenetekből áll, amelyeket az üzenetmezőkben található információk alapján dolgoznak fel. Ez a szakasz a DNS-üzenetek típusait és az egyes üzenettípusok mezőit ismerteti.
A DNS-üzeneteknek három típusa van:
Queries
Responses
Updates
A lekérdezések és válaszok az eredeti DNS-szabványban vannak definiálva, a frissítések pedig az RFC 2136-ban vannak definiálva. Mindhárom típus egy gyakori üzenetformátumot követ.
Az üzenetformátumokkal kapcsolatos további információkért bontsa ki a következő szakaszokat.
DNS-lekérdezési üzenet formátuma
A gyakori DNS-üzenetformátum rögzített hosszúságú, 12 bájtos fejlécet és változó pozíciót tartalmaz, amely a kérdések, válaszok, jogosultságok és további DNS-erőforrásrekordok számára van fenntartva. A gyakori üzenetformátum az alábbiak szerint szemléltethető:
Szabványos DNS-lekérdezési üzenetformátum
- DNS-fejléc (rögzített hossz)
- Kérdések bejegyzései (változó hossza)
- Válasz-erőforrás rekordok (változó hosszúságú)
- Szolgáltatói erőforrásrekordok (változó hossza)
- További erőforrásrekordok (változóhossz)
DNS-lekérdezési üzenet fejléce
A DNS-üzenet fejléce a következő mezőket tartalmazza a következő sorrendben:
DNS-lekérdezési üzenet fejlécmezői
Tranzakcióazonosító:
Egy adott DNS-tranzakciót azonosító 16 bites mező. A tranzakcióazonosítót az üzenet kezdeményezője hozza létre, és a válaszadó átmásolja a válaszüzenetbe. A tranzakcióazonosító használatával a DNS-ügyfél megfeleltetheti a kérésekre adott válaszokat.Flags:
Egy 16 bites mező, amely különböző szolgáltatásjelzőket tartalmaz, amelyek a DNS-ügyfél és a kiszolgáló között kommunikálnak, beleértve a következőket:- Kérés/válasz: 1 bites mező, amely 0-ra van állítva egy kéréshez vagy 1 válaszhoz.
-
Műveleti kód: 4 bites mező, amely a csomag névszolgáltatás-műveletét jelöli;
0x0egy lekérdezés. - Mérvadó válasz: 1 bites mező, amely azt jelzi, hogy a válaszadó mérvadó a lekérdezett tartománynévhez.
- Csonkolás: Az 1 bites mező értéke 1, ha a válaszok teljes száma túllépte az UDP-adatgram méretét. Ha az 512 bájtnál vagy EDNS0-nél nagyobb UDP-adatgramok nincsenek engedélyezve, a rendszer csak az UDP-válasz első 512 bájtját adja vissza.
- Rekurziós cél: 1 bites mező, rekurzív lekérdezés esetén 1, iteratív lekérdezések esetén 0. Ha 0 értékre van állítva, a DNS-kiszolgáló a helyi gyorsítótáradatokból visszaadja a többi DNS-kiszolgáló listáját.
- Rekurzió elérhető: 1 bites mező, amelyet a DNS-kiszolgáló 1-re állít be, ha képes rekurzív lekérdezéseket kezelni. Ha a rekurzió le van tiltva, a kiszolgáló megfelelően állítja be a mezőt.
- Fenntartott: 3 bites mező, amely fenntartott, és 0 értékre van állítva.
-
Visszatérési kód: A visszatérési kódot tartalmazó 4 bites mező:
-
0: Sikeres válasz (a lekérdezési válasz a válaszban található). -
0x3: Névhiba, amely azt jelzi, hogy egy mérvadó DNS-kiszolgáló válaszolt arra, hogy a tartománynév nem létezik. A visszatérési kódokról további információt az IANA DNS RCODEs című témakörben talál.
-
Kérdésrekord erőforrásszáma:
Egy 16 bites mező, amely a DNS-üzenet kérdésszakaszában szereplő bejegyzések számát jelöli.Válaszerőforrás-rekord száma:
Egy 16 bites mező, amely a DNS-üzenet válaszszakaszában lévő bejegyzések számát jelöli.Autoritás erőforrásrekordok száma:
Egy 16 bites mező, amely a DNS-üzenetben szereplő szolgáltatói erőforrásrekordok számát jelöli.További erőforrásrekordok száma:
Egy 16 bites mező, amely a DNS-üzenetben szereplő további erőforrásrekordok számát jelöli.
DNS-lekérdezési kérdések bejegyzései
A DNS-üzenet kérdésbejegyzései szakasz a lekérdezett tartománynevet tartalmazza, és a következő három mezővel rendelkezik:
Kérdés neve:
A lekérdezett tartománynév. A DNS-tartománynevek címkék sorozataként vannak kifejezve (pl.microsoft.com). A Kérdésnév mezőben a tartománynév hossz-érték párok sorozataként van kódolva: egy 1 bájtos mező, amely a címke hosszát jelzi, majd magát a címkét. A kód például úgy van kódolva,microsoft.comhogy0x09microsoft0x03com0x00a hexadecimális számjegyek a címke hosszát jelölik, az ASCII karakterek a címkék, a végső0pedig a név végét jelzik.Kérdés típusa:
A visszaadni kívánt erőforrásrekord típusát jelölő 16 bites egész szám. Gyakori értékek a következők:-
0x01: Hoszt (A) rekord -
0x02: Névkiszolgáló (NS) rekord -
0x05: Alias (CNAME) rekord -
0x0C(12): Visszafelé keresési (PTR) rekord -
0x0F(15): Levelezési (MX) rekord -
0x21(33): Szolgáltatási (SRV) rekord -
0xFB(251): Növekményes zónaátviteli (IXFR) bejegyzés -
0xFC(252): Standard zónaátviteli (AXFR) rekord -
0xFF(255): Minden rekord
-
Kérdésosztály:
Az IN (Internet) kérdésosztályt jelöli, amely általában a következőre0x0001van állítva: .
DNS-lekérdezés válaszüzenete
A DNS-válaszüzenet válasz-, szolgáltató- és további információszakaszai olyan erőforrásrekordokat tartalmazhatnak, amelyek megválaszolják a lekérdezési üzenet kérdésszakaszát. Az erőforrásrekordok a következőképpen vannak formázva:
- Erőforrásrekord neve: A DNS-tartománynév változó hosszúságú mezőként van rögzítve a Kérdésnév mezővel megegyező formázást követve.
- Erőforrásrekord típusa: Az erőforrásrekord típusának értéke.
- Erőforrásrekord-osztály: Az erőforrásrekord osztálykódja, az internetes osztály, 0x0001.
- Élettartam: A TTL másodpercben kifejezve 32 bites aláíratlan mezőként.
- Erőforrásadatok hossza: 2 bájtos mező, amely az erőforrásadatok hosszát jelzi.
- Erőforrásadatok: Az erőforrásrekord típusának megfelelő változó hosszúságú adatok.
Az Erőforrásrekord neve mező ugyanúgy van kódolva, mint a Kérdés neve mező, kivéve, ha a név már szerepel a DNS-üzenet más részein, ebben az esetben a rendszer egy 2 bájtos mezőt használ egy hossz-érték kódolt név helyett, és a már meglévő névre mutató mutatóként szolgál.
Név lekérdezési üzenet formátuma
A Név lekérdezés üzenetformátuma megegyezik a fent ismertetett DNS-üzenetformátummal. Egy tipikus név lekérdezési üzenetben a DNS-üzenetmezők a következőképpen vannak beállítva:
Lekérdezésazonosító (tranzakcióazonosító)::
Állítson be egy egyedi számot, hogy a DNS-ügyfélfeloldó megfeleljen a lekérdezésre adott válasznak. A lekérdezési válasz tranzakcióazonosítója mindig megegyezik a lekérdezéskérés tranzakcióazonosítójával.Flags:
Egy szabványos lekérdezés jelzésére van beállítva, amelyen engedélyezve van a rekurzió.Kérdések száma:
Állítsa be az 1 értéket.Kérdésbejegyzés:
Állítsa be a lekérdezett tartománynevet és a visszaadni kívánt erőforrásrekord típusát.
Név lekérdezési válasz üzenetformátuma
A név lekérdezési válasz üzenetformátuma megegyezik a fent ismertetett DNS-üzenetformátummal. Egy tipikus név lekérdezési üzenetben a DNS-üzenetmezők a következőképpen lesznek beállítva:
Lekérdezésazonosító (tranzakcióazonosító)::
Állítson be egy egyedi számot, hogy a DNS-ügyfélfeloldó megfeleljen a lekérdezésre adott válasznak.Flags:
Egy szabványos lekérdezés jelzésére van beállítva, amelyen engedélyezve van a rekurzió.Kérdések száma:
Állítsa be az 1 értéket.Kérdésbejegyzés:
Állítsa be a lekérdezett tartománynevet és a visszaadni kívánt erőforrásrekord típusát.
A névlekérdezés fordított üzenetformátuma
A fordított név lekérdezési üzenetei az alábbi különbségekkel használják a gyakori üzenetformátumot:
A DNS-ügyfélfeloldó a lekérdezett IP-cím alapján hozza létre a tartománynevet az in-addr.arpa tartományban.
A mutató (PTR) erőforrásrekordot a gazdagép (A) erőforrásrekord helyett lekérdezi a függvény.
Üzenetformátum frissítése
A DNS-frissítési üzenet formátuma a végrehajtandó frissítési műveletet meghatározó fejlécet és a frissítést tartalmazó erőforrásrekord-készletet használja. A DNS-frissítési üzenet formátuma a következő mezőket tartalmazza:
Identification. A DNS-ügyfél kérelmezője által hozzárendelt 16 bites azonosító. Ezt az azonosítót a rendszer a megfelelő válaszba másolja, és a kérelmező használhatja a függőben lévő kérelmekre adott válaszok egyeztetésére, vagy a kiszolgáló az egyes kérelmezők ismétlődő kéréseinek észlelésére.
Flags. Egy 16 bites DNS-frissítési üzenetjelző mező. Az egyes jelölők leírásáért lásd alább a "DNS Update Message Flags mező" című témakört.
Zónabejegyzések száma. A Zónabejegyzés szakaszban található erőforrásrekordok száma.
Az előfeltételként megadott erőforrásrekordok száma. Az Előfeltétel erőforrásrekordok szakaszban található erőforrásrekordok száma.
A frissítési erőforrás-rekordok száma. Az Erőforrásrekordok frissítése szakaszban található erőforrásrekordok száma.
További erőforrásrekordok száma. Az erőforrásrekordok száma a További erőforrásrekordok szakaszban.
Zónabejegyzés. A frissített rekordok zónáját jelöli. A frissíteni kívánt rekordoknak ugyanabban a zónában kell lenniük, ezért a zónaszakasznak pontosan egy rekordot kell tartalmaznia. Három értékből áll: A ZNAME a zóna neve, a ZTYPE-nak SOA-nak kell lennie, a ZCLASS pedig a zóna osztálya.
Előfeltételként szolgáló erőforrásrekordok. Olyan erőforrásrekord-előfeltételeket tartalmaz, amelyeket a frissítési üzenetnek a fő DNS-kiszolgáló általi fogadásakor kell teljesítenie. Öt lehetséges értékkészlet fejezhető ki:
Az erőforrásrekordkészlet létezik (értékfüggetlen). Legalább egy megadott névvel és típussal rendelkező erőforrásrekordnak (a zónaszakasz által meghatározott zónában és osztályban) léteznie kell.
Az erőforrásrekordkészlet létezik (értékfüggő). Létezik egy megadott névvel és típussal rendelkező erőforrásrekord-készlet, és ugyanazokkal a tagokkal rendelkezik, mint az ebben a szakaszban megadott erőforrásrekord-készlet.
Az erőforrásrekord-készlet nem létezik. Nincs megadott névvel és típussal rendelkező erőforrásrekord (a Zóna szakasz által jelölt zónában és osztályban).
A név használatban van. Létezik legalább egy megadott nevű erőforrásrekord (a Zóna szakasz által megadott zónában és osztályban). Ezt az előfeltételt nem teljesítik az üres nemterminálisok.
A név nincs használatban. Egyetlen típusú erőforrásrekord sem rendelkezik megadott névvel. Ezt az előfeltételt üres nemterminálisok teljesítik.
Erőforrásrekordok frissítése. A zónából hozzáadni vagy törölni kívánt erőforrásrekordokat tartalmazza. A frissítés során négy művelet egyikét hajtja végre:
Erőforrásrekordok hozzáadása erőforrásrekordkészlethez.
Egy erőforrás-rekordkészlet törlése.
Törölje az összes erőforrásrekord-készletet egy névből.
Erőforrásrekord törlése egy erőforrásrekordkészletből.
További erőforrásrekordok. A frissítéshez vagy a frissítés által hozzáadott új erőforrásrekordokhoz kapcsolódó erőforrásrekordokat tartalmaz.
DNS-frissítési üzenetjelzők mező
A DNS-frissítési üzenetjelzők mezője a következő jelzőket használja:
Request/response. Az 1 bites mező 0 értékre van állítva, amely egy frissítési kérést, 1 pedig egy frissítési választ jelöl.
Műveleti kód. A DNS-frissítésekhez 0x5-re állított 4 bites mező.
Reserved. A 7 bitesre fenntartott mező értéke 0.
Visszaadott kód. A frissítési lekérdezés eredményét jelölő kódokat tartalmazó 4 bites mező. A kódok a következők:
- 0 (NOERROR): Nincs hiba; sikeres frissítést.
- 1 (KORÁBBIR): Formátumhiba; A DNS-kiszolgáló nem értette a frissítési kérést.
- 0x2 (SERVFAIL): A DNS-kiszolgáló belső hibát észlelt, például egy továbbítási időtúllépést.
- 0x3 (NXDOMAIN): A létező név nem létezik.
- 0x4 (NOTIMP): A DNS-kiszolgáló nem támogatja a megadott műveleti kódot.
- 0x5 (MEGTAGADVA): A DNS-kiszolgáló nem hajlandó végrehajtani a frissítést.
- 0x6 (YXDOMAIN): Létezik olyan név, amely nem létezhet.
- 0x7 (YXRRSET): Létezik olyan erőforrásrekordkészlet, amely nem létezhet.
- 0x8 (NXRRSET): Nem létezik olyan erőforrásrekordkészlet, amelyeknek létezniük kell.
- 0x9 (NOTAUTH): A DNS-kiszolgáló nem mérvadó a Zóna szakaszban elnevezett zónához.
- 0xA (NOTZONE): Az Előfeltétel vagy frissítés szakaszokban használt név nem a Zóna szakasz által megadott zónán belül található.
Dinamikus frissítés válaszüzenetének formátuma
A dinamikus frissítési válaszüzenet a DNS-frissítési üzenet formátumát követi, a DNS-jelzők kivételével. A dinamikus frissítési válasz üzenet fejlécjelzői azt mutatják, hogy a frissítés sikeres-e a sikeres válaszkód vagy a DNS-frissítési üzenetjelzőkben leírt hibakódok egyikének belefoglalásával.