DNS

Dostępny

Historia DNSów

W latach 70. ludzie byli zmęczeni zapamiętywaniem adresów IP serwerów, do których chcieli uzyskać dostęp. W tym samym czasie pojawił się pomysł, aby zamiast numerycznego adresu hosta użyć prostszej i bardziej zapadającej w pamięć nazwy.

Pracownicy Instytutu Badawczego Stanford opracowali plik tekstowy HOSTS.TXT , który zawierał listę nazw ciągów znaków i odpowiadających im adresów numerycznych komputerów w sieci ARPANET.

Adresy nadano ręcznie. Aby poprosić o nazwę hosta i adres lub dodać komputer do pliku głównego, użytkownicy kontaktowali się telefonicznie z centrum informacji sieciowej Stanforda w godzinach pracy.

Na początku lat 80. utrzymywanie pojedynczej, scentralizowanej tabeli hostów stało się powolne i uciążliwe, a rozwijająca się sieć potrzebowała automatycznego systemu nazewnictwa, aby radzić sobie z problemami technicznymi i personelem.

W 1984 roku czterech studentów UC Berkeley napisało pierwszą wersję hierarchicznego systemu nazw domen. Jest obecnie szeroko stosowany, zwłaszcza w systemach Unix, i nadal jest najczęściej używanym oprogramowaniem DNS w Internecie.

Wprowadzenie do DNSów

System nazw domen (DNS) to system dystrybucji służący do przechowywania i pobierania informacji o domenach. Jest najczęściej używany do uzyskiwania adresu IP z nazwy hosta (komputera lub urządzenia), uzyskiwania informacji o routingu poczty i/lub obsługi hostów dla protokołów w domenie.

System jest zorganizowany w postaci pewnej hierarchii serwerów DNS współpracujących zgodnie z określonym protokołem. Podstawą zrozumienia DNS jest zrozumienie hierarchicznej struktury nazwy i stref.

Każdy serwer odpowiedzialny za strefę domeny może przenieść odpowiedzialność za dalszą część domeny na inny serwer, co daje możliwość przypisania odpowiedzialności za aktualność informacji serwerom różnych organizacji, które odpowiadają tylko za „swoją” część Nazwa domeny.

System DNS zawiera hierarchię serwerów DNS odpowiadającą hierarchii stref. Każda strefa jest obsługiwana przez co najmniej jeden autorytatywny serwer DNS, który przechowuje informacje o domenie.

Ważny! Nazwa i adres IP niekoniecznie odnoszą się do siebie jako jeden do jednego. Jeden adres IP może mieć wiele nazw domen, co pozwala na obsługę wielu stron internetowych na jednym komputerze (jest to tzw. hosting współdzielony ).

Może być też odwrotnie – z jedną nazwą domeny można skojarzyć wiele adresów IP: pozwala to na tworzenie równoważenia obciążenia i jest aktywnie wykorzystywane w sieciach CDN .

W celu zwiększenia stabilności systemu wykorzystuje się wiele serwerów zawierających identyczne informacje, a protokół posiada środki do utrzymania synchronizacji informacji znajdujących się na różnych serwerach. Istnieje 13 serwerów root, ich adresy praktycznie się nie zmieniają.

Ciekawy! Protokół DNS używa portu TCP lub UDP 53 do odpowiadania na zapytania. Tradycyjnie żądania i odpowiedzi są wysyłane jako pojedynczy datagram UDP. Protokół TCP jest używany, gdy rozmiar danych odpowiedzi przekracza 512 bajtów.

rekordy DNS

Serwer DNS przechowuje zestaw parametrów dla każdej nazwy domeny. Są to zapisy dotyczące nazwy domeny, jej adresu IP, a także różne informacje o usługach.

Takich wpisów jest w sumie kilkadziesiąt, więc rozważymy tylko najpopularniejsze z nich:

A adres adres IP
AAAA Adres IPv6 Adres w formacie IPv6
CNAME Nazwa kanoniczna Kanoniczna nazwa aliasu
MX wymieniacz poczty Adres bramy pocztowej dla domeny
NS serwer nazw Adres węzła odpowiedzialnego za strefę domeny
SOA Początek władzy Wskazanie autorytetu informacji
SRV wybór serwera Określanie lokalizacji serwerów dla usług
PTR wskaźnik Dopasowanie nazwy adresu — Odwrotne dopasowanie dla A i AAAA
tekst Ciąg tekstowy Zapis dowolnych danych binarnych, do 255 bajtów

Najciekawsze są tutaj:

  • Rekord A umożliwia określenie adresu IP odpowiadającego domenie.
  • CNAME umożliwia ustawienie synonimu nazwy, na przykład www.codegym.cc == codegym.cc.
  • Rekord MX zawiera informacje o serwerze pocztowym: co zrobić, jeśli list dotrze na adres xxx@codegym.cc.
  • NS - wskazuje adres serwera DNS, który zawiera informacje o tej domenie. Przydatne, gdy rekordy są buforowane i przechowywane w nienatywnych węzłach.

Wyszukiwanie adresu IP

Zobaczmy, jak działa system DNS.

Załóżmy, że wpisałeś w przeglądarce api.codegym.cc. Przeglądarka skontaktuje się z lokalną usługą DNS i poprosi o podanie adresu IP dla domeny api.codegym.cc. Oto, co będzie dalej...

Najpierw usługa DNS sprawdza, czy ta domena znajduje się w lokalnym pliku hosts na komputerze. Jeśli tak, pobiera z niego adres IP. Jeśli nie, wysyła żądanie do znanego mu serwera DNS: „Jaki jest adres IP api.codegym.cc?”.

Jednak serwer DNS może nic nie wiedzieć nie tylko o żądanej nazwie, ale nawet o całej domenie codegym.cc. W takim przypadku serwer kontaktuje się z serwerem głównym — na przykład 198.41.0.4. Ten serwer mówi: „Nie mam informacji o tym adresie, ale wiem, że 204.74.112.1 odpowiada za strefę ru”.

Następnie serwer DNS wysyła swoje żądanie do 204.74.112.1, ale odpowiada: „Nie mam informacji o tym serwerze, ale wiem, że 207.142.131.234 odpowiada za strefę codegym.cc”. Na koniec to samo żądanie jest wysyłane do trzeciego serwera DNS i otrzymuje odpowiedź - adres IP, który jest przekazywany klientowi, czyli przeglądarce.

W tym przypadku w procesie wyszukiwania adresu IP po nazwie działały następujące zasady:

  • Przeglądarka wysłała żądanie rekurencyjne do znanego serwera DNS (w odpowiedzi na tego typu żądanie serwer musi zwrócić adres IP lub pustą odpowiedź i kod błędu NXDOMAIN).
  • Serwer DNS, który otrzymał żądanie z przeglądarki, wysyłał kolejno nierekurencyjne żądania, na które otrzymywał odpowiedzi z innych serwerów DNS, aż do otrzymania odpowiedzi od serwera odpowiedzialnego za żądaną strefę.
  • Pozostałe wymienione serwery DNS przetwarzały żądania nierekurencyjnie (i najprawdopodobniej nie przetwarzałyby żądań rekurencyjnie, nawet gdyby takie wymaganie było w żądaniu).

Czasami żądany serwer może wysłać zapytanie rekurencyjne do „nadrzędnego” serwera DNS i czekać na gotową odpowiedź.

Ważny! Dzięki rekurencyjnemu przetwarzaniu zapytań wszystkie odpowiedzi przechodzą przez serwer DNS i mają możliwość ich buforowania. Powtarzające się żądania dotyczące tych samych nazw domen zwykle nie wykraczają poza pamięć podręczną serwera, a wywołania do innych serwerów w ogóle nie występują.

Dopuszczalny czas pamięci podręcznej dla odpowiedzi pochodzi z odpowiedziami (pole TTL rekordu zasobu).

plik hosts

Zauważyliśmy, że pierwsze wyszukiwanie odbywa się w lokalnym pliku hosts. To spadkobierca pliku HOSTS.TXT, który został wymyślony jeszcze w czasach ARPANET. Tak, nadal istnieje i jest nadal w użyciu.

Znajduje się wzdłuż ścieżki:

  • /etc/hosts w systemie Linux.
  • %SystemRoot%\system32\drivers\etc\hosts w systemie Windows.
  • /system/etc/hosts w Androidzie.

Zazwyczaj plik zawiera definicję lokalizacji dla węzła hosta lokalnego:

127.0.0.1   	localhost

Jego struktura jest bardzo prosta: najpierw jest adres IP, a następnie nazwa domeny.

Użyteczne

Za pomocą pliku hosts możliwe jest filtrowanie reklam poprzez przekierowanie adresów domen banerów na adres 127.0.0.0, 127.0.0.1 lub 0.0.0.0.

Używanie 127.0.0.1 generalnie nie jest zalecane, ponieważ powoduje przekroczenie limitu czasu odpowiedzi i związane z tym opóźnienia, jeśli serwer nie istnieje lub jest źle skonfigurowany. A jeśli zmapujesz dowolną domenę reklamową na adres IP 0.0.0.0, wszystkie żądania do niej natychmiast spadną).

Publiczne serwery DNS

Zwykle otrzymujesz serwer DNS wraz z usługą internetową po podłączeniu. Ale taki darmowy serwer DNS nie zawsze jest najlepszą opcją. Ponadto możesz nie chcieć wysyłać zapytania z nazwą domeny za każdym razem, gdy odwiedzasz witrynę, do serwera DNS usługodawcy internetowego.

Dlatego wiele osób woli przejść na publiczne bezpłatne serwery DNS. Po pierwsze, są bardzo szybkie i mają dużą pamięć podręczną nazw domen. Otrzymasz szybsze ładowanie i czas działania witryny przy minimalnym ryzyku problemów technicznych.

Po drugie bezpieczeństwo. Niektóre usługi DNS mogą blokować dostęp do witryn wyłudzających informacje i złośliwych oraz oferować filtrowanie treści w celu ochrony dzieci przed nieodpowiednimi treściami online.

Takie serwery DNS mogą nawet walczyć z oszustami. Na przykład wchodzisz na fałszywą stronę banku, a serwer DNS poda ci nie adres IP oszustów, ale jego usługę bezpieczeństwa.

Lista takich serwerów

Rozbłysk chmur 1.1.1.1
1.0.0.1
Cloudflare obiecuje, że nie będzie wykorzystywać danych odwiedzających do wyświetlania reklam i nigdy nie będzie nagrywać źródłowych adresów IP żądań na dysku.
Publiczny DNS Google 8.8.8.8
8.8.4.4
Przechowuje pełne informacje o adresie IP żądającego urządzenia przez około 24-48 godzin w celu rozwiązywania problemów i diagnostyki
Bezpieczny DNS Comodo 8.26.56.26
8.20.247.20
Blokuje witryny wyłudzające informacje, ale także ostrzega, jeśli próbujesz odwiedzić witryny ze złośliwym oprogramowaniem lub oprogramowaniem szpiegującym
Yandex.DNS 77.88.8.8
77.88.8.1
Bezpłatna usługa DNS z popularnej rosyjskiej wyszukiwarki
Komentarze
  • Popularne
  • Najnowsze
  • Najstarsze
Musisz się zalogować, aby dodać komentarz
Ta strona nie ma jeszcze żadnych komentarzy