Kolejny moduł ścieżki sieciowej na platformie TryHackMe dotyczy protokołu DNS (Domain Name System). Jest to usługa sieciowa, która tłumaczy zrozumiałe dla ludzi nazwy domenowe na numeryczne adresy IP wykorzystywane przez komputery do komunikacji.

Zamiast zapamiętywać skomplikowane ciągi liczb, takie jak 104.26.10.229, wystarczy wpisać w przeglądarce adres tryhackme.com, a system DNS automatycznie odnajdzie przypisany do niego adres IP.

Struktura nazwy domenowej

Każda pełna nazwa domeny składa się z kilku logicznych części rozdzielonych kropkami:

  • TLD (Top-Level Domain) – domena najwyższego poziomu znajdująca się na samym końcu adresu (najbardziej po prawej stronie, np. .com, .pl, .org). Dzielimy je na dwa główne typy:
    • gTLD (Generic TLD) – domeny ogólne, pierwotnie określające przeznaczenie (.com dla celów komercyjnych, .org dla organizacji, .edu dla edukacji, a także nowe rozszerzenia, np. .online, .biz).
    • ccTLD (Country Code TLD) – domeny krajowe, przypisane do konkretnych państw lub terytoriów (np. .pl dla Polski, .ca dla Kanady, .uk dla Wielkiej Brytanii).
  • Domena drugiego poziomu (Second-Level Domain) – unikalna nazwa domeny znajdująca się bezpośrednio przed TLD (np. tryhackme w tryhackme.com). Może zawierać do 63 znaków (litery, cyfry oraz myślniki, o ile nie występują obok siebie ani na skrajnych pozycjach).
  • Subdomena (Subdomain) – człon dodawany po lewej stronie domeny drugiego poziomu (np. admin w admin.tryhackme.com). Można tworzyć wielopoziomowe subdomeny (np. jupiter.servers.tryhackme.com), przy czym pojedynczy człon ma limit 63 znaków, a cała nazwa domenowa nie może przekraczać 253 znaków.

Podstawowe rekordy DNS

Baza DNS przechowuje różne typy rekordów w zależności od rodzaju usługi i przeznaczenia:

  • Rekord A – mapuje nazwę domeny na adres IPv4 (np. 104.26.10.229).
  • Rekord AAAA – mapuje nazwę domeny na adres IPv6 (np. 2606:4700:20::681a:be5).
  • Rekord CNAME (Canonical Name) – tworzy alias wskazujący jedną nazwę domeny na inną (np. store.tryhackme.com wskazuje na shops.shopify.com, po czym wysyłane jest kolejne zapytanie o adres IP platformy Shopify).
  • Rekord MX (Mail Exchange) – wskazuje serwery pocztowe odpowiedzialne za obsługę poczty e-mail dla danej domeny. Każdy wpis posiada priorytet określający kolejność odpytywania serwerów, co pozwala na konfigurację serwerów zapasowych.
  • Rekord TXT – pole tekstowe o uniwersalnym zastosowaniu. Pozwala na przechowywanie dowolnych danych tekstowych, najczęściej wykorzystywanych do weryfikacji własności domeny oraz konfiguracji zabezpieczeń poczty (SPF, DMARC, DKIM).

Przebieg zapytania DNS

Gdy wpisujemy adres strony w przeglądarce, rozpoczyna się proces rozwiązywania nazwy składający się z kilku etapów:

  1. Sprawdzenie pamięci podręcznej (Local Cache) – system operacyjny najpierw weryfikuje lokalny cache DNS. Jeśli adres był niedawno odwiedzany, odpowiedź zwracana jest natychmiast bez generowania ruchu sieciowego.
  2. Zapytanie do serwera rekurencyjnego (Recursive DNS Server) – jeśli adresu nie ma w cache lokalnym, zapytanie trafia do serwera rekurencyjnego (zwykle dostarczanego przez dostawcę internetu ISP lub skonfigurowanego ręcznie, np. 1.1.1.1 czy 8.8.8.8).
  3. Zapytanie do serwerów głównych (Root DNS Servers) – serwer rekurencyjny kontaktuje się z serwerami głównymi, aby ustalić, który serwer TLD odpowiada za dane rozszerzenie domeny (np. dla .com).
  4. Zapytanie do serwerów TLD – serwer TLD wskazuje właściwe serwery autorytatywne (nameservers) dla danej domeny (np. kip.ns.cloudflare.com dla tryhackme.com).
  5. Pobranie rekordu z serwera autorytatywnego (Authoritative DNS Server) – serwer autorytatywny zwraca właściwy rekord DNS z adresem IP.
  6. Zapis w cache i przekazanie odpowiedzi – serwer rekurencyjny zapisuje wynik w swoim cache na czas określony przez parametr TTL (Time To Live), a następnie przesyła adres IP do urządzenia końcowego.

Rola poszczególnych serwerów DNS

W procesie rozwiązywania nazw biorą udział trzy kluczowe typy serwerów:

  • Serwer rekurencyjny (Recursive DNS Server) – serwer pośredniczący, który przyjmuje zapytanie od klienta i wykonuje całą pracę związaną z odpytaniem kolejnych serwerów w hierarchii DNS, aby uzyskać ostateczny adres IP. Odpowiada także za buforowanie odpowiedzi, co przyspiesza kolejne zapytania o popularne serwisy.
  • Serwer główny (Root DNS Server) – serwer na szczycie hierarchii DNS stanowiący fundament działania internetu. Nie zna konkretnych adresów IP domen, ale wie, które serwery TLD odpowiadają za poszczególne rozszerzenia (np. .com, .pl, .net) i przekierowuje do nich zapytanie.
  • Serwer autorytatywny (Authoritative DNS Server) – ostateczne źródło prawdy dla danej domeny. Przechowuje właściwe rekordy DNS skonfigurowane przez właściciela domeny i udziela wiążących odpowiedzi na zapytania o zasoby w ramach zarządzanej strefy.