DNS

DNS
název Domain Name System
Úroveň (podle modelu OSI ) Aplikovaný
Rodina TCP/IP
Port/ID 53/ TCP , 53/ UDP
Účel protokolu Překlad názvu domény
Specifikace RFC 1034 , RFC 1035 /STD 13
Hlavní implementace (klienti) Vestavěný do všech síťových operačních systémů
Implementace jádra ( servery ) BIND , NSD , PowerDNS nebo Microsoft DNS Server
 Mediální soubory na Wikimedia Commons

DNS ( anglicky  Domain Name System  "domain name system") je počítačově distribuovaný systém pro získávání informací o doménách . Nejčastěji se používá k získání IP adresy z názvu hostitele (počítače nebo zařízení), k získání informací o směrování pošty a/nebo serverových hostitelů pro protokoly v doméně ( záznam SRV ).

Distribuovaná databáze DNS je podporována hierarchií serverů DNS interagujících přes specifický protokol .

Základem DNS je myšlenka hierarchické struktury jmen a zón . Každý server odpovědný za jméno může přenést odpovědnost za další část domény na jiný server (z administrativního hlediska - na jinou organizaci nebo osobu), což vám umožňuje přiřadit odpovědnost za relevanci informací serverům různých organizace (lidé) zodpovědné pouze za „svou“ část doménového jména.

Od roku 2010 systém DNS zavádí kontroly integrity dat nazývané DNS Security Extensions ( DNSSEC ). Přenášená data nejsou šifrována, ale jejich pravost je ověřena kryptografickými metodami. Implementovaný standard DANE zajišťuje přenos spolehlivých kryptografických informací ( certifikátů ) pomocí DNS používaných k navazování bezpečných a bezpečných spojení mezi transportní a aplikační vrstvou.

Klíčové vlastnosti DNS

DNS má následující vlastnosti:

DNS je důležitý pro provoz internetu , protože informace o IP adrese hostitele jsou potřebné pro připojení k hostiteli a pro lidi je snazší zapamatovat si abecední (obvykle smysluplné) adresy než posloupnost čísel. V některých případech to umožňuje použití virtuálních serverů, jako jsou servery HTTP, které je rozlišují podle názvu požadavku. Zpočátku se převod mezi doménou a IP adresou prováděl pomocí speciálního textového souboru hosts , který byl centrálně zkompilován a automaticky odeslán na každý ze strojů v jeho lokální síti. S růstem webu vznikla potřeba účinného, ​​automatizovaného mechanismu, kterým se stal DNS.

DNS vyvinul Paul Mokapetris v roce 1983 ; původní popis pracovních mechanismů je obsažen v RFC 882 a RFC 883 . V roce 1987 vydání RFC 1034 a RFC 1035 změnilo specifikaci DNS a zrušilo RFC 882 , RFC 883 a RFC 973 .

Další funkce

Historie

Použití jednoduššího a lépe zapamatovatelného názvu místo číselné adresy hostitele je z éry ARPANET . Stanford Research Institute (nyní SRI International ) udržoval textový soubor HOSTS.TXT, který mapoval názvy hostitelů na číselné adresy počítačů v síti ARPANET . Údržbu číselných adres, nazývaných seznam přidělených čísel, měl na starosti Jon Postel z Institutu informační vědy (ISI) University of Southern California, jehož tým úzce spolupracoval s NII [1] .

Adresy byly přiděleny ručně. Aby uživatelé požádali o název hostitele a adresu a přidali počítač do hlavního souboru, kontaktovali během pracovní doby telefonicky Informační centrum sítě SRI (NIC), které provozuje Elisabeth Feinler .

Na počátku 80. let bylo udržování jediné centralizované hostitelské tabulky pomalé a těžkopádné a rostoucí síť potřebovala automatický systém pojmenování, který by se vypořádal s technickými a personálními problémy. Postel si dal za úkol vypracovat kompromis mezi pěti konkurenčními návrhy k vyřešení problému, který nastolil Paul Mokapetris. Mokapetris místo toho vytvořil koncept hierarchického systému doménových jmen.

Pracovní skupina IETF zveřejnila původní specifikace v RFC 882 a RFC 883 v listopadu 1983.

V roce 1984 čtyři studenti UC Berkeley , Douglas Terry, Mark Painter, David Riggle a Songnian Zhou, napsali první verzi jmenného serveru BIND (Berkeley Internet Name Daemon) . V roce 1985 Kevin Dunlap z DEC výrazně přepracoval implementaci DNS. Mike Karel, Phil Almquist a Paul Vixey od té doby BIND podporují. Na počátku 90. let byl BIND portován na platformu Windows NT . Je rozšířený zejména na unixových systémech a stále je nejrozšířenějším DNS softwarem na internetu.

V listopadu 1987 byly přijaty specifikace DNS - RFC 1034 a RFC 1035 . Od té doby byly přijaty stovky RFC , které upravují a doplňují DNS.

Bezpečnostní problémy

Zpočátku nebyly obavy o bezpečnost při vývoji softwaru DNS nebo jakéhokoli softwaru, který měl být nasazen na raném internetu, hlavními důvody, protože síť nebyla otevřena široké veřejnosti. Růst internetu v komerčním sektoru v 90. letech však změnil požadavky na bezpečnostní opatření na ochranu integrity dat a ověřování uživatelů.

Útočníci objevili a zneužili několik zranitelností. Jedním z takových problémů je otrava mezipaměti DNS , při které jsou data šířena do cachovacích překladačů pod záminkou, že jde o autoritativní zdrojový server, čímž dochází k znečištění datového úložiště potenciálně falešnými informacemi a dlouhými daty vypršení platnosti (čas do života). Následně mohou být požadavky z legitimních aplikací přesměrovány na síťové hostitele ovládané útočníkem.

Odpovědi DNS nebyly dříve kryptograficky podepsány, což umožňovalo různé možnosti útoku. Modern Domain Name Security Extensions ( DNSSEC ) upravují DNS a přidávají podporu pro kryptograficky podepsané odpovědi. Další rozšíření, jako je TSIG, přidávají podporu pro kryptografickou autentizaci mezi důvěryhodnými partnery a běžně se používají k autorizaci zónových přenosů nebo operacím dynamických aktualizací.

Některá doménová jména lze použít k dosažení efektů spoofingu. Například paypal.com a paypa1.com jsou různé názvy, ale uživatelé je nemusí být schopni rozlišit v GUI v závislosti na zvoleném písmu uživatelem. V mnoha fontech vypadají písmeno l a číslo 1 velmi podobně nebo dokonce identicky. Tento problém je akutní v systémech, které podporují mezinárodní názvy domén, protože mnoho znakových kódů ISO 10646 lze zobrazit na typických počítačových obrazovkách. Tato chyba zabezpečení je někdy zneužívána při phishingu .

Techniky, jako je reverzní DNS s přímou validací záznamů, lze také použít k ověření výsledků DNS, ale nejsou kryptograficky platné; to nebere v úvahu možnost nahrazení směrovacích informací ( anglicky  BGP hijacking ).

Terminologie a provozní principy

Klíčové pojmy DNS jsou:

Systém DNS obsahuje hierarchii serverů DNS , která odpovídá hierarchii zón . Každá zóna je podporována alespoň jedním autoritativním DNS serverem (z anglického  autoritativní  – autoritativní), který obsahuje informace o doméně.

Název a IP adresa nejsou totožné  - jedna IP adresa může mít mnoho jmen, což vám umožňuje podporovat mnoho webových stránek na jednom počítači (říká se tomu virtuální hosting ). Platí to i obráceně – mnoho IP adres lze namapovat na stejný název: to vám umožní vytvořit load balancing .

Pro zvýšení stability systému se používá mnoho serverů obsahujících identické informace a protokol má prostředky k udržení synchronizace informací umístěných na různých serverech. Kořenových serverů je 13 , jejich adresy se prakticky nemění. [2]

Protokol DNS používá TCP - nebo UDP - port 53 k odpovědi na dotazy. Tradičně jsou požadavky a odpovědi odesílány jako jeden UDP datagram . TCP se používá, když velikost dat odpovědi překročí 512 bajtů a pro požadavky AXFR .

Rekurze

Termín rekurze v DNS odkazuje na algoritmus chování serveru DNS : „proveďte jménem klienta úplné vyhledání nezbytných informací v celém systému DNS, v případě potřeby s odkazem na jiné servery DNS“ .

DNS dotaz může být rekurzivní  – vyžadující úplné vyhledávání – a nerekurzivní (nebo iterativní ) – nevyžadující úplné vyhledávání.

Podobně může být server DNS rekurzivní (může provádět úplné vyhledávání) a nerekurzivní (nemůže provádět úplné vyhledávání). Některý software serveru DNS, jako je BIND , lze nakonfigurovat tak, aby se na některé klienty dotazoval rekurzivně a na jiné nerekurzivně .

Při odpovědi na nerekurzivní dotaz, stejně jako nemožnost nebo zákaz provádět rekurzivní dotazy, DNS server buď vrátí data o zóně, za kterou je zodpovědný , nebo vrátí chybu. Nastavení nerekurzivního serveru, kdy odpověď vrací adresy serverů, které mají více informací o požadované zóně než odpovídající server (nejčastěji adresy kořenových serverů), jsou nesprávná a takový server může být slouží k organizaci útoků DoS .

V případě rekurzivního dotazu DNS server dotazuje servery (v sestupném pořadí podle úrovně zóny v názvu), dokud nenajde odpověď nebo nezjistí, že doména neexistuje (v praxi se vyhledávání spustí od nejbližšího DNS servery na požadovaný, pokud jsou informace o nich dostupné v mezipaměti a aktuální, server se nemusí dotazovat na jiné servery DNS).

Zvažte příklad fungování celého systému.

Předpokládejme, že jsme do prohlížeče zadali adresu ru.wikipedia.org. Prohlížeč hledá shodu mezi touto adresou a IP adresou v souboru hosts . Pokud soubor neobsahuje shodu, pak se prohlížeč zeptá serveru DNS: „Jaká je IP adresa ru.wikipedia.org“? DNS server však nemusí vědět pouze nic o požadovaném názvu, ale dokonce i o celé doméně wikipedia.org. V tomto případě server kontaktuje kořenový server  – například 198.41.0.4. Tento server říká - "Nemám žádné informace o této adrese, ale vím, že 204.74.112.1 je zodpovědná za zónu org." Poté DNS server odešle svůj požadavek na 204.74.112.1, ale odpoví "Nemám žádné informace o tomto serveru, ale vím, že 207.142.131.234 je zodpovědný za zónu wikipedia.org." Nakonec je stejný požadavek odeslán na třetí DNS server a obdrží odpověď - IP adresu, která je předána klientovi - prohlížeči.

V tomto případě při překladu jména, to znamená v procesu hledání IP podle jména:

Někdy je možné, že požadovaný server odešle rekurzivní dotaz na „upstream“ server DNS a čeká na připravenou odpověď.

Při rekurzivním zpracování dotazů procházejí všechny odpovědi serverem DNS a ten získá příležitost uložit je do mezipaměti . Opakovaný požadavek na stejná jména obvykle nepřesahuje mezipaměť serveru , neexistují vůbec žádná volání na jiné servery. Povolený čas mezipaměti pro odpovědi přichází s odpověďmi ( pole TTL záznamu o prostředku ).

Rekurzivní požadavky vyžadují více zdrojů ze serveru (a vytvářejí více provozu), takže jsou obvykle přijímány z uzlů, které jsou vlastníkovi serveru „známé“ (poskytovatel například poskytuje možnost zadávat rekurzivní požadavky pouze svým klientům v podnikové sítě, rekurzivní požadavky jsou přijímány pouze z lokálního segmentu). Nerekurzivní dotazy jsou obvykle přijímány od všech hostitelů v síti (a smysluplnou odpověď dostávají pouze dotazy týkající se zóny hostované hostitelem, dotazy DNS pro jiné zóny obvykle vracejí adresy jiných serverů).

Reverzní DNS dotaz

DNS se primárně používá k překladu symbolických jmen na IP adresy, ale může také provádět opačný proces. K tomu se používají stávající nástroje DNS. Faktem je, že s DNS záznamem lze porovnávat různá data, včetně nějakého symbolického jména. Existuje speciální doména, in-addr.arpajejíž položky se používají k převodu IP adres na symbolická jména. Chcete-li například získat název DNS pro adresu 11.22.33.44, můžete se serveru DNS dotázat na položku 44.33.22.11.in-addr.arpaa ten vrátí odpovídající symbolický název. Opačné pořadí zápisu částí IP adresy je způsobeno tím, že v IP adresách jsou vysoké bity umístěny na začátku a v symbolických názvech DNS jsou vysoké bity (umístěné blíže ke kořenu) umístěny na konci.

DNS záznamy

DNS záznamy , neboli záznamy o zdrojích ( anglicky  resource records , RR ), jsou jednotky pro ukládání a přenos informací v DNS. Každý záznam zdroje se skládá z následujících polí [3] :

Nejdůležitější typy DNS záznamů jsou:

Jména rezervovaných domén

RFC 2606 ( Reserved Top Level DNS Names ) definuje názvy domén, které by měly být použity jako příklady (například v dokumentaci) a také pro účely testování. Do této skupiny patří kromě example.com, example.orgaexample.net také test, invalidatd.

Mezinárodní názvy domén

Název domény se může skládat pouze z omezené sady znaků ASCII , což umožňuje zadat adresu domény bez ohledu na jazyk uživatele. ICANN schválila systém IDNA založený na Punycode , který převádí jakýkoli řetězec Unicode na platnou znakovou sadu DNS.

DNS Software

Jmenné servery:

Viz také

Poznámky

  1. IEEE annals [3b2-9] man2011030074.3d 11:54. . - 29/7/011. - Strana 74 Str.
  2. Aktuální verze kořenové zóny je vždy umístěna na: ftp://ftp.internic.net/domain/named.root
  3. 1 2 Domain Name System (DNS)  Aspekty IANA . Tools.ietf.org. Získáno 7. února 2019. Archivováno z originálu dne 2. srpna 2020.
  4. pv mockapetris. Doménová jména - koncepty a zařízení  . Tools.ietf.org. Získáno 7. února 2019. Archivováno z originálu dne 23. června 2018.
  5. pv mockapetris. Doménová jména - implementace a specifikace  (anglicky) . Tools.ietf.org. Získáno 7. února 2019. Archivováno z originálu dne 3. dubna 2019.

Odkazy

Články

RFC dokumenty