A DNS kiterjesztési mechanizmusai ( EDNS ) a Domain Name System protokoll kiterjesztése, amely lehetővé teszi bizonyos paraméterek méretének növelését. Az első bővítménykészletet az Internet Engineering Task Force (IETF) 1999-ben tette közzé az RFC 2671-ben EDNS0 néven , majd RFC 6891-re frissítette .
A DNS-rendszert az 1980-as években fejlesztették ki, és azóta fejlesztették, miközben megőrzi a kompatibilitást a protokoll korábbi verzióival.
Egyes mezők méretének, a visszatérési kódnak és a címketípusoknak az eredeti protokolltól való korlátozása problémákat okozott az új funkciók kifejlesztésében. A DNS-üzenetek 512 bájtra korlátozódtak az UDP-ben, és a nagyobb megbízásokra vonatkozó szabványos TCP használata nagyobb rezsit eredményez. 1998-ban Paul Vixie javasolta a DNS új kódokkal való kibővítését és az UDP- ben nagyobb csomagméretek engedélyezését , miközben továbbra is kompatibilis volt a meglévő megvalósításokkal.
Mivel nem lehet új kódot hozzáadni a DNS fejlécéhez , a kiterjesztett kérelem azonosítása egy álerőforrás -rekordnak (RR), az OPT-nek köszönhető . Ezt az RR-t csak továbbításban használják, és nincs a zónákban. Az EDNS ügyfelek ezt az RR-t jelzik, hogy jelzik, hogy támogatják ezt a kiterjesztést. Ha a kiszolgáló nem támogatja ezt a kiterjesztést, akkor ezt az RR-t figyelmen kívül hagyják, ami visszafelé kompatibilitást biztosít.
Az OPT álrekord 16 további kódot biztosít, és kibővíti a válasz számára rendelkezésre álló helyet. A maximális UDP csomagméretet és az EDNS verziót (jelenleg még 0) az OPT RR tartalmazza. Egy változó méretű adatmező további bővítéseket tesz lehetővé.
Az eredeti protokoll két típusú címkét biztosított a DNS-csomag első két bitje alapján: 00 (standard címke) és 11 (tömörített címke). Az EDNS meghatározza a 01 (kiterjesztett címke) címkét. A következő hat bit felhasználható további kiterjesztett címkék meghatározására.
Abban az esetben, ha az EDNS-t használó megkeresésre nem érkezik válasz, az ügyfél új megoldási kísérletet tesz az EDNS nélkül (vagyis csökkentett módban, „ tartalék” módban ). Ha a válasz mérete meghaladja az 512 bájtot, akkor a kiszolgáló csonka választ küld egy "TC" ( csonka ) zászlóval a DNS fejlécében, és jelzi, hogy ez a válasz hiányos. Ezután a kliens új megoldást fog igénybe venni a TCP használatával .
Íme egy példa egy OPT álrekordra, amelyet a dig parancs mutat :
;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 4096Az EDNS támogatás elengedhetetlen a DNSSEC biztonsági kiterjesztésekhez . Az IPv6 esetében is kívánatos , mivel a válaszok mérete meghaladhatja az 512 bájtot, ha AAAA RR-k vannak jelen.
A DNS-alapkiszolgáló- lista mérete meghaladja az 512 bájtot, miután hozzáadta az IPv6- címeket , majd a DNSSEC-aláírásokat.
Néhány régi vagy rosszul konfigurált tűzfal blokkolja az 512 bájtot meghaladó UDP DNS- csomagokat . Ha nincs válasz egy EDNS kérésre, a kiszolgáló újból közzéteszi a kiterjesztés nélkül, ez rendellenes késéseket okoz a névfeloldásban.
Ezenkívül a legnagyobb válaszok esetén (különösen a DNSSEC használatával ) hasonló lassúság figyelhető meg az új felbontási kísérletekhez a következő összefüggésekben: