Usługi

Rekordy DNS

Rekordy DNS są podstawowymi elementami systemu DNS, które umożliwiają mapowanie nazw domen na adresy IP.

Wprowadzenie: wpisy DNS i dane zasobów

System Nazw Domenowych (DNS) tłumaczy czytelne dla człowieka nazwy domen, takie jak www.nask.pl, na adresy IP używane przez programy sieciowe. Baza DNS przechowuje również dane o poczcie, usługach i politykach domeny. Każdy uporządkowany wpis, nazywany lub Rekordem Zasobów (RR), ma nazwę, klasę, typ i dane właściwe dla tego typu.

Typ rekordu określa jego funkcję. Rekord A lub AAAA przechowuje adres hosta, MX wskazuje serwer pocztowy, a TXT może zawierać politykę SPF albo dane weryfikacyjne. Rekordy DNS obsługują również odkrywanie usług VoIP, filtrowanie spamu i inne zastosowania. Rekordy różnych typów mają wspólne pola identyfikujące zasób, a format danych RDATA zależy od typu i klasy.

Anatomia rekordu DNS

Chociaż różne typy rekordów przechowują różne rodzaje danych, prawie wszystkie mają wspólną strukturę, zwykle prezentowaną w standardowym formacie w pliku strefy domeny. W zapisie strefowym pola występują jako nazwa, TTL, klasa, typ i dane RDATA. Rekordy o tej samej nazwie, klasie i typie tworzą zestaw RR, a ich wartości TTL powinny być zgodne. Struktura ta składa się z kilku kluczowych pól:

1. Nazwa (lub Nazwa Hosta)
Jest to nazwa domeny, której dotyczy rekord. Może to być sama domena główna (np. example.com) lub subdomena (np. www.example.com, poczta.example.com). Pełna nazwa domenowa może kończyć się kropką oznaczającą korzeń DNS. Symbol "@" jest często używany w plikach strefy jako skrót reprezentujący domenę główną.
2. TTL (Time-To-Live)
to wartość w sekundach, która informuje resolvery DNS, jak długo mogą buforować (przechowywać) ten rekord. Po wygaśnięciu TTL resolver uznaje dane z cache za nieaktualne i pobiera świeżą kopię w nowym zapytaniu do właściwego źródła. Dłuższy TTL zmniejsza ruch DNS i liczbę zapytań do strefy autorytatywnej, lecz krótszy TTL pozwala na szybsze propagowanie zmian.
3. Klasa
To pole określa klasę danych. W typowych strefach internetowych używa się IN, czyli klasy Internet. Istnieją również inne klasy, na przykład CH dla Chaos, lecz współczesne zastosowania domen zwykle ich nie używają.
4. Typ
Pole Type identyfikuje format danych i funkcję rekordu, na przykład A, AAAA, MX albo CNAME.
5. Dane (lub Wartość)
To jest rzeczywista zawartość rekordu. Jego format zależy całkowicie od typu rekordu. Dla rekordu A będzie to adres IPv4. Dla rekordu MX będzie to numer priorytetu i nazwa domenowa serwera pocztowego.
;      Nazwa              TTL   Klasa Typ   Dane
www.example.com. 3600 IN A 93.184.216.34

Podstawowe typy rekordów DNS

Poniższe typy rekordów występują w typowych strefach obsługujących strony internetowe i pocztę elektroniczną.

Rekord A: adres IPv4

Rekord A przechowuje 32-bitowy adres IPv4 przypisany do nazwy domeny. Adres jest częścią danych RDATA rekordu. Resolver może zwrócić jeden rekord A albo zestaw kilku rekordów dla tej samej nazwy. Przeglądarka lub inny klient pobiera taki rekord podczas rozwiązywania nazwy hosta.

Struktura rekordu:

nazwa_hosta TTL IN A adres-ipv4

Przykład praktyczny:

Przykładowe zapytanie o adres IPv4 dla nask.pl można wykonać narzędziem wiersza poleceń nslookup.

> nslookup nask.pl
Server:  twoj.serwer.dns
Address:  twoj.adres.ip.dns

Non-authoritative answer:
Name:    nask.pl
Address: 45.60.74.15

Przykładowa odpowiedź zawiera rekord A dla domeny nask.pl z adresem IP 45.60.74.1545.60.74.15. Kilka rekordów A może kierować ruch do wielu serwerów, co ułatwia równoważenie obciążenia i zapewnia redundancję.

Rekord AAAA: adres IPv6

Rekord AAAA przechowuje 128-bitowy adres IPv6 przypisany do nazwy domeny. Adres w danych rekordu jest kodowany w kolejności bajtów sieciowych. Działa podobnie do rekordu A, lecz używa innego formatu adresu. Nazwa „AAAA” nawiązuje do czterokrotnie większej liczby bitów względem adresu IPv4, który ma 32 bity.

Struktura rekordu:

nazwa_hosta TTL IN AAAA adres-ipv6

Przykład praktyczny:

Zapytajmy o rekord AAAA dla google.pl.

> nslookup -type=AAAA google.pl
Server:  twoj.serwer.dns
Address:  twoj.adres.ip.dns

Non-authoritative answer:
Name:    google.pl
Address: 2a00:1450:4025:800::5e

Odpowiedzi DNS zależą od resolvera i czasu zapytania, dlatego kolejny pomiar może zwrócić inne adresy. Obecność rekordów A i AAAA nie określa kolejności połączeń. Stos sieciowy klienta może użyć jednego adresu albo obu, a wybór zależy od jego algorytmu, na przykład mechanizmu Happy Eyeballs.

Rekord CNAME: alias

Rekord CNAME wskazuje alias na inną nazwę, zwaną nazwą kanoniczną. Nazwa docelowa zwykle istnieje jako osobny węzeł DNS. Resolver kontynuuje rozwiązywanie pod nazwą docelową zgodnie z typem zapytania. Odpowiedź może zawierać rekord A, AAAA albo inny typ związany z nazwą kanoniczną. Jeden alias nie może mieć wielu rekordów CNAME, lecz wiele aliasów może wskazywać tę samą nazwę.

Struktura rekordu:

alias.hosta TTL IN CNAME nazwa.kanoniczna

Przykład praktyczny:

Wiele witryn wskazuje swoją subdomenę 'www' na domenę główną. Spójrzmy na www.github.com.

> nslookup -type=CNAME www.github.com
Server:  twoj.serwer.dns
Address:  twoj.adres.ip.dns

Non-authoritative answer:
www.github.com canonical name = github.com.

Odpowiedź wskazuje, że www.github.com jest aliasem dla github.com. Rekord adresowy nazwy kanonicznej określa adres używany po rozstrzygnięciu aliasu.

Ważne ograniczenie:

Rekord CNAME nie może współistnieć z żadnym innym typem rekordu dla tej samej nazwy hosta. Dlatego generalnie nie można umieścić rekordu CNAME na domenie głównej (np. example.com), ponieważ domena główna musi mieć również rekordy NS i SOA.

Rekord MX: wymiennik pocztowy

Rekord MX (rekord Mail Exchanger) jest używany wyłącznie do kierowania poczty elektronicznej. Określa on serwer(y) pocztowe odpowiedzialne za przyjmowanie wiadomości e-mail w imieniu domeny. Podczas wysyłania wiadomości na adres ktoś@example.com serwer nadawcy wykonuje zapytanie DNS o rekordy MX domeny example.com, aby ustalić miejsce dostarczenia wiadomości.

Struktura rekordu:

domena TTL IN MX priorytet nazwa.serwera.poczty

Rekord MX zawiera pole priorytet i nazwę celu. Serwer pocztowy wybiera osiągalny cel z najniższą wartością priorytetu. Nazwa celu MX nie powinna być aliasem CNAME. Kolejne wartości pozwalają wskazać alternatywne serwery dla tej samej domeny.

Przykład praktyczny:

Sprawdźmy serwery pocztowe dla domeny wp.pl.

> nslookup -type=MX wp.pl
Server:  twoj.serwer.dns
Address:  twoj.adres.ip.dns

Non-authoritative answer:
wp.pl   mail exchanger = 0 mx.wp.pl.
wp.pl   mail exchanger = 5 mx5.wp.pl.

Przykładowa odpowiedź wskazuje serwer mx.wp.pl z priorytetem 00 oraz alternatywny serwer mx5.wp.pl z priorytetem 55. Cel z wyższą wartością byłby wybierany po nim, zgodnie z osiągalnością.

Rekord NS: serwer nazw

Rekord NS wskazuje autorytatywne serwery nazw i uczestniczy w delegowaniu domeny. NS dla delegowanej domeny są publikowane w strefie nadrzędnej TLD, na przykład .pl. U podstawowej strefy domeny rekordy NS występują razem z rekordem SOA. Operator domeny zwykle publikuje kilka serwerów dla redundancji, a wymagania dotyczące ich liczby wynikają z polityki rejestru lub rejestratora.

Struktura rekordu:

domena TTL IN NS nazwa.serwera.nazw

Przykład praktyczny:

> nslookup -type=NS onet.pl
Server:  twoj.serwer.dns
Address:  twoj.adres.ip.dns

Non-authoritative answer:
onet.pl       nameserver = ns5.ringpublishing.net.
onet.pl       nameserver = ns6.ringpublishing.net.
onet.pl       nameserver = ns7.ringpublishing.net.
onet.pl       nameserver = ns8.ringpublishing.net.

To pokazuje cztery autorytatywne serwery nazw odpowiedzialne za domenę onet.pl.

Inne ważne typy rekordów

Poza podstawowymi, kilka innych typów rekordów służy do zastosowań związanych z bezpieczeństwem, odkrywaniem usług i zapytaniami zwrotnymi. Znaczenie danych RDATA wynika z typu rekordu i dokumentacji używanego protokołu.

Rekord TXT: tekst wielozadaniowy

Rekord TXT przechowuje ciągi znaków związane z nazwą domeny. Pojedynczy rekord może składać się z kilku ciągów, których interpretacja zależy od aplikacji. SPF łączy je bez dodawania spacji. Rekord TXT stosuje się między innymi w politykach pocztowych i weryfikacji kontroli nad domeną. Przykłady zastosowań to:

  • Sender Policy Framework (SPF): Polityka SPF jest publikowana jako rekord TXT i określa serwery uprawnione do wysyłania poczty dla domeny.
  • DomainKeys Identified Mail (DKIM): Rekord TXT pod nazwą selektora DKIM zawiera klucz publiczny służący do weryfikacji podpisu wiadomości i integralności podpisanych danych.
  • Weryfikacja własności domeny: Usługi takie jak Google Search Console czy Office 365 często wymagają dodania określonego rekordu TXT, aby potwierdzić kontrolę administratora nad domeną przed ich uruchomieniem.

Rekord SRV: odkrywanie usług

Rekord SRV opisuje usługę przez nazwę hosta, port, priorytet i wagę. Nazwa właściciela ma postać _usługa._protokół.domena. Klient wybiera najniższy osiągalny priorytet, a przy tej samej wartości może użyć wagi do rozdzielenia wyborów między cele. Rekordy SRV wykorzystują między innymi protokoły VoIP z SIP i komunikatory z XMPP.

Struktura rekordu:

_usluga._proto.nazwa. TTL IN SRV priorytet waga port cel.

Rekord PTR: zapytanie odwrotne

Rekord PTR służy do odwrotnego wyszukiwania DNS. Dla IPv4 rekordy znajdują się w strefie in-addr.arpa, a dla IPv6 w strefie ip6.arpa. Rekord A wiąże nazwę z adresem IP, a PTR wskazuje nazwę dla adresu IP w odpowiedniej strefie odwrotnej. Serwery pocztowe mogą używać tego powiązania jako kontroli reputacji i konfiguracji. Część z nich odrzuca wiadomości z adresu bez poprawnego PTR lub bez zgodności z nazwą hosta wysyłającego.

Struktura rekordu:

odwrocony-IP.in-addr.arpa. TTL IN PTR nazwa.hosta

Powiązane artykuły