Plik strefy

Format pliku strefy jest zdefiniowany w RFC 1035 (sekcja 5) i RFC 1034 (sekcja 3.6.1). Format ten był pierwotnie używany przez pakiet oprogramowania Berkeley Internet Name Domain (BIND), ale został powszechnie przyjęty przez inne oprogramowanie serwerów DNS – choć niektóre z nich (np. NSD, PowerDNS) używają plików stref tylko jako punktu wyjścia do kompilacji ich do formatu bazy danych, patrz także Microsoft DNS z integracją Active Directory z bazą danych.

Plik strefy jest sekwencją zorientowanych liniowo wpisów, z których każdy jest dyrektywą lub opisem tekstowym definiującym pojedynczy rekord zasobu (RR). Wpis składa się z pól oddzielonych dowolną kombinacją białych spacji (tabulatorów i spacji), a kończy się na granicy linii, chyba że wewnątrz cytowanej wartości pola łańcuchowego lub pary nawiasów formatujących. Każda linia może się kończyć tekstem komentarza poprzedzonym średnikiem, a plik może też zawierać dowolną liczbę pustych linii.

Wpisy mogą występować w dowolnej kolejności w pliku strefy, z pewnymi wyjątkami.

Dyrektywy są wpisami kontrolnymi, które wpływają na resztę pliku strefy. Pierwsze pole dyrektywy składa się ze znaku dolara, po którym następuje słowo kluczowe:

  • $ORIGIN po którym następuje nazwa domeny, która ma być użyta jako pochodzenie dla kolejnych względnych nazw domen.
  • $INCLUDE po którym następuje nazwa pliku i opcjonalna nazwa domeny pochodzenia, która ma być użyta podczas interpretacji jego zawartości (która jest traktowana tak, jakby pojawiła się w pliku nadrzędnym, po czym następuje reset do wartości pochodzenia poprzedzający ocenę dyrektywy).
  • $TTL, zdefiniowany w RFC 2308 (sekcja 4), po którym następuje liczba używana jako domyślny TTL (time-to-live).
  • $GENERATE, niestandardowe rozszerzenie akceptowane przez BIND i niektóre inne oprogramowanie serwerów nazw do wstawiania wielu rekordów zasobów z jednym wpisem, po którym następuje zwięzła reprezentacja rosnącej sekwencji liczb nieujemnych, a następnie szablon wpisu RR. Rekord zasobu jest dodawany dla każdej liczby w sekwencji, przy użyciu szablonu z niepisanymi znakami „$” zastąpionymi przez liczbę.

Wpis rekordu zasobu składa się z kilku pól w następujący sposób (obie kolejności pól są dopuszczalne i mogą być używane zamiennie):

nazwa ttl klasa rekordu typ rekordu dane rekordu
.

nazwa klasa rekordu ttl typ rekordu dane rekordu

Pole nazwy może pozostać puste. Jeśli tak, to rekord dziedziczy to pole z poprzedniego rekordu. Wolno stojący znak @ jest używany do oznaczenia bieżącego pochodzenia.

Pole ttl określa liczbę sekund, po których klient buforujący musi odrzucić rekord i wykonać nową operację rozwiązywania w celu uzyskania świeżych informacji. Niektóre serwery nazw, w tym BIND, pozwalają na niestandardowe reprezentacje, które używają skrótów jednostek czasu (na przykład „2d” oznaczające dwa 24-godzinne dni lub „1h30m” oznaczające jedną godzinę i 30 minut). Może być pominięte, w którym to przypadku wartość wynikowa zostanie ustawiona z domyślnego TTL (jeśli jest zdefiniowany) lub z poprzedniego rekordu.

Pole klasy rekordu wskazuje przestrzeń nazw informacji o rekordzie. Może być pominięte, w takim przypadku wartość wynikowa zostanie ustawiona na podstawie poprzedniego rekordu. Najczęściej używaną przestrzenią nazw jest przestrzeń Internetu, wskazywana przez parametr IN, ale istnieją i są używane inne, np. CHAOS.

Pole typu rekordu jest skrótem od typu informacji przechowywanej w ostatnim polu, danych rekordu. Na przykład: rekord adresu (typ A dla IPv4 lub typ AAAA dla IPv6) odwzorowuje nazwę domeny z pierwszego pola na adres IP w danych rekordu; rekord wymiennika poczty (typ MX) określa hosta poczty Simple Mail Transfer Protocol (SMTP) dla domeny.

Pole danych rekordu może składać się z jednego lub więcej elementów informacji, w zależności od wymagań każdego typu rekordu. Na przykład rekord adresu wymaga tylko adresu, podczas gdy rekord wymiennika poczty wymaga priorytetu i nazwy domeny. Takie elementy informacyjne są reprezentowane jako pola oddzielone białą spacją.

Przykładowy plikEdit

Przykład pliku strefy dla domeny example.com jest następujący:

$ORIGIN example.com. ; designates the start of this zone file in the namespace$TTL 3600 ; default expiration time (in seconds) of all RRs without their own TTL valueexample.com. IN SOA ns.example.com. username.example.com. ( 2020091025 7200 3600 1209600 3600 )example.com. IN NS ns ; ns.example.com is a nameserver for example.comexample.com. IN NS ns.somewhere.example. ; ns.somewhere.example is a backup nameserver for example.comexample.com. IN MX 10 mail.example.com. ; mail.example.com is the mailserver for example.com@ IN MX 20 mail2.example.com. ; equivalent to above line, "@" represents zone origin@ IN MX 50 mail3 ; equivalent to above line, but using a relative host nameexample.com. IN A 192.0.2.1 ; IPv4 address for example.com IN AAAA 2001:db8:10::1 ; IPv6 address for example.comns IN A 192.0.2.2 ; IPv4 address for ns.example.com IN AAAA 2001:db8:10::2 ; IPv6 address for ns.example.comwww IN CNAME example.com. ; www.example.com is an alias for example.comwwwtest IN CNAME www ; wwwtest.example.com is another alias for www.example.commail IN A 192.0.2.3 ; IPv4 address for mail.example.commail2 IN A 192.0.2.4 ; IPv4 address for mail2.example.commail3 IN A 192.0.2.5 ; IPv4 address for mail3.example.com

Przynajmniej w pliku strefy musi być określony rekord SOA (Start of Authority) z nazwą autorytatywnego głównego serwera nazw dla strefy i adresem e-mail osoby odpowiedzialnej za zarządzanie serwerem nazw (reprezentowanym jako nazwa domeny, ze znakiem kropki zamiast zwykłego symbolu @). Parametry rekordu SOA określają również listę parametrów czasowych i wygasania (numer seryjny, okres odświeżania slave, czas retry slave, czas wygaśnięcia slave oraz maksymalny czas buforowania rekordu). Niektóre serwery nazw, w tym BIND, wymagają również co najmniej jednego dodatkowego rekordu NS.

W pliku strefy nazwy domen, które kończą się znakiem kropki (takie jak „example.com.” w powyższym przykładzie), są w pełni kwalifikowane, podczas gdy te, które nie kończą się kropką, są względne w stosunku do bieżącego pochodzenia (dlatego www w powyższym przykładzie odnosi się do www.example.com).

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.