EDNS

Extension Mechanisms for DNS (EDNS) je specifikace pro rozšíření velikosti několika parametrů protokolu Domain Name System (DNS), které mají omezení velikosti a jsou komunitou Internet Design Community považovány za příliš omezující na rozšíření funkčnosti protokolu. První sada rozšíření byla publikována v roce 1999 Internet Engineering Working Group jako RFC 2671, také známá jako EDNS0, která byla aktualizována v RFC 6891 v roce 2013 a změnila zkratku na EDNS.

Důvody pro

Systém doménových jmen byl poprvé vyvinut na počátku 80. let. Od té doby byl postupně rozšiřován o nové funkce při zachování kompatibility s dřívějšími verzemi protokolu.

Omezení velikosti několika polí příznaků, návratových kódů a typů štítků dostupných v základním protokolu DNS bránila podpoře některých žádoucích funkcí. Kromě toho byly UDP DNS zprávy omezeny na 512 bajtů, s výjimkou IP protokolu a hlaviček transportní vrstvy [1] . Použití virtuální transportní sítě využívající Transmission Control Protocol (TCP) by výrazně zvýšilo režii. To se stalo hlavní překážkou přidávání nových funkcí do DNS. V roce 1999 Paul Vixey navrhl rozšíření DNS tak, aby zahrnovalo nové příznaky a kódy odpovědí, stejně jako podporu delších odpovědí v rámci, který byl zpětně kompatibilní s předchozími implementacemi.

Jak to funguje

Protože do hlavičky DNS nelze přidávat žádné nové příznaky, EDNS přidává do zpráv DNS informace ve formě záznamů pseudozdrojů ("pseudo-RR") obsažených v části "Další data" zprávy DNS. Všimněte si, že tato část existuje v žádostech i odpovědích.

EDNS představuje jeden typ pseudo-RR: OPT.

Jako pseudo-RR se RR typu OPT nikdy neobjeví v žádném souboru zóny; existují pouze ve zprávách vytvořených účastníky DNS.

Mechanismus je zpětně kompatibilní, protože starší DNS respondéry ignorují všechna RR neznámého typu OPT v požadavku a novější DNS respondér nikdy nezahrnuje OPT do odpovědi, pokud v požadavku nebyl přítomen. Přítomnost OPT v požadavku znamená, že novější žadatel ví, co má dělat s OPT v odpovědi.

Pseudozáznam OPT poskytuje prostor až pro 16 příznaků a rozšiřuje prostor pro kód odpovědi. Celková velikost paketu UDP a číslo verze (aktuálně 0) jsou uvedeny v položce OPT. Datové pole proměnné délky umožňuje zaznamenat další informace v budoucích verzích protokolu. Původní protokol DNS poskytoval dva typy štítků, které jsou definovány prvními dvěma bity v paketech DNS (RFC 1035): 00 (standardní štítek) a 11 (komprimovaný štítek). EDNS zavádí štítek typu 01 jako rozšířený štítek. Spodních 6 bitů prvního bajtu lze použít k definování až 63 nových rozšířených návěští.

Příklad

Příklad pseudozáznamu OPT zobrazeného nástrojem Domain Information Groper (dig):

;; OPT PSEUDOSECTION:

; EDNS: version: 0, flags: do; UDP: 4096

Výsledek "EDNS: verze: 0" označuje plnou shodu s EDNS0 [2] . Výsledek "flags: do" znamená, že "DNSSEC OK" je nastaveno.

Aplikace

EDNS je nezbytný pro implementaci rozšíření DNS Security Extensions (DNSSEC). EDNS se také používá k odesílání obecných informací z překladačů jmenným serverům o geografické poloze klientů jako možnost EDNS Client Subnet (ECS).

Existují návrhy pro použití EDNS ke specifikaci toho, jak velká výplň by měla být kolem zprávy DNS, a k určení, jak dlouho by mělo být udržováno připojení TCP.

Problémy

V praxi může být použití EDNS traversal firewallů obtížné, protože některé firewally přijímají maximální délku DNS zprávy 512 bajtů a blokují delší DNS pakety.

Zavedení EDNS umožnilo útok na zesílení DNS, což je typ odraženého útoku odmítnutí služby, protože EDNS poskytuje velmi velké pakety odpovědí ve srovnání s relativně malými pakety dotazů.

Pracovní skupina IETF DNS Extensions (dnsext) dokončila práci na vylepšení EDNS0, které bylo publikováno jako RFC 6891.

Poznámky

  1. P. V. Mockapetris. Doménová jména - implementace a specifikace  (anglicky) . tools.ietf.org. Získáno 4. února 2019. Archivováno z originálu dne 3. dubna 2019.
  2. P. Vixie. Mechanismy rozšíření pro DNS (EDNS0) . — Editor RFC, 1999-08. - S. 3 .

Odkazy