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ładCHdla 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.34Podstawowe 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-ipv4Przykł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.15Przykładowa odpowiedź zawiera rekord A dla domeny nask.pl z adresem IP . 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-ipv6Przykł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::5eOdpowiedzi 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.kanonicznaPrzykł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.pocztyRekord 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 oraz alternatywny serwer mx5.wp.pl z priorytetem . 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.nazwPrzykł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