Förlängningsmekanismer för DNS

   Extension Mechanisms for DNS ( EDNS ) är en specifikation för att utöka storleken på flera parametrar i DNS-protokollet ( Domain Name System ) som hade storleksbegränsningar som Internettekniker ansåg för begränsade för att öka funktionaliteten hos protokollet. Den första uppsättningen tillägg publicerades 1999 av Internet Engineering Task Force som RFC 2671 , även känd som EDNS0 som uppdaterades av RFC 6891 2013 och ändrade förkortningen något till EDNS(0) .

Motivering

Domännamnssystemet utvecklades först i början av 1980-talet . Sedan dess har det successivt förbättrats med nya funktioner, samtidigt som kompatibiliteten med tidigare versioner av protokollet bibehålls.

Begränsningarna i storleken på flera flaggfält, returkoder och etiketttyper som finns tillgängliga i det grundläggande DNS-protokollet förhindrade stödet av vissa önskvärda funktioner. Dessutom var DNS-meddelanden som bärs av UDP begränsade till 512 byte, utan hänsyn till Internet Protocol (IP) och transportlagerhuvuden . Att tillgripa en virtuell kretstransport , med hjälp av Transmission Control Protocol (TCP), skulle öka omkostnader avsevärt. Detta utgjorde ett stort hinder för att lägga till nya funktioner till DNS. 1999 Paul Vixie att utöka DNS för att möjliggöra nya flaggor och svarskoder och för att ge stöd för längre svar i ett ramverk som är bakåtkompatibelt med tidigare implementeringar.

Mekanism

Eftersom inga nya flaggor kunde läggas till i DNS-huvudet, lägger EDNS till information till DNS-meddelanden i form av pseudo- Resource Records ("pseudo-RR"s) som ingår i avsnittet "ytterligare data" i ett DNS-meddelande. Observera att det här avsnittet finns i både förfrågningar och svar.

EDNS introducerar en enda pseudo-RR-typ: OPT .

Som pseudo-RR:er förekommer aldrig OPT-typ RR i någon zonfil; de finns bara i meddelanden, tillverkade av DNS-deltagarna.

Mekanismen är bakåtkompatibel eftersom äldre DNS-svar ignorerar alla RR av den okända OPT-typen i en begäran och en nyare DNS-svarare inkluderar aldrig en OPT i ett svar om det inte fanns en i begäran. Närvaron av OPT i begäran betyder en nyare begärande som vet vad den ska göra med en OPT i svaret.

OPT-pseudo-rekordet ger utrymme för upp till 16 flaggor och det utökar utrymmet för svarskoden. Den totala storleken på UDP-paketet och versionsnumret (för närvarande 0) finns i OPT-posten. Ett datafält med variabel längd gör att ytterligare information kan registreras i framtida versioner av protokollet. Det ursprungliga DNS-protokollet gav två etiketttyper, som definieras av de två första bitarna i DNS-paket (RFC 1035): 00 (standardetikett) och 11 (komprimerad etikett). EDNS introducerar etiketttypen 01 som utökad etikett . De lägre 6 bitarna av den första byten kan användas för att definiera upp till 63 nya utökade etiketter.

Exempel

Ett exempel på en OPT-pseudo-post, som visas av dig-kommandot :

;; OPT PSEUDOSEKTION: ; EDNS: version: 0, flaggor: do; UDP: 4096

Resultatet av "EDNS: version: 0" indikerar full överensstämmelse med EDNS0. Resultatet "flags: do" indikerar att "DNSSEC OK" är inställt.

Ansökningar

EDNS är avgörande för implementeringen av DNS Security Extensions ( DNSSEC ). EDNS används också för att skicka allmän information från resolvers till namnservrar om klienters geografiska plats i form av alternativet EDNS Client Subnet ( ECS).

Det finns förslag för att använda EDNS för att ställa in hur mycket utfyllnad som ska vara runt ett DNS-meddelande och för att indikera hur länge en TCP-anslutning ska hållas vid liv.

frågor

I praktiken kan det uppstå svårigheter när man använder EDNS som korsar brandväggar, eftersom vissa brandväggar antar en maximal DNS-meddelandelängd på 512 byte och blockerar längre DNS-paket.

Införandet av EDNS möjliggjorde DNS-förstärkningsattacken , en typ av reflekterad överbelastningsattack, eftersom EDNS underlättar mycket stora svarspaket jämfört med relativt små begärandepaket.

IETF DNS Extensions-arbetsgruppen (dnsext) har avslutat arbetet med en förfining av EDNS0, som har publicerats som RFC 6891.

Se även