Serwer DNS Bind

Domain Name System  (DNS) to drzewiasta struktura, która jest w Internecie standardowym rozwiązaniem do tłumaczenia nazw domenowych na adresy IP hostów. Rozpoznawanie nazw (name resolution) to proces, który wykonuje serwer DNS. Rozpoznawanie nazw naprzód (forward name resolution) to ustalanie adresu IP na podstawie nazwy domenowej , rozpoznawanie nazw od tyłu (reverse name resolution) to ustalanie nazwy domenowej na podstawie adresu IP.  DNS jest usługą niezależną od platformy i wspieraną przez każdy system operacyjny.

Przestrzeń adresowa DNS (DNS name space) to hierarchiczna struktura wszystkich domen w Internecie. Korzeń przestrzeni adresowej reprezentowany jest przez kropkę. Poniżej korzenia znajdują się domeny najwyższego poziomu (top-level domains – TLDs), takie jak .pl, .eu, .com czy .net.

Domeny najwyższego poziomu mogą zawierać domeny drugiego poziomu (second level domains) takie jak np. linux.pl. Później domeny mogą być trzeciego poziomu jak np. news.linux.pl. Pełna nazwa domenowa hosta to FQDN (Fully Qualified Domain Name). Dzielenie domen na pod-domeny pozwala na zarządzanie nimi przez inne grupy administratorów. Taka po-domena musi zostań zarejestrowana przez akredytowanego rejestratora domen, licencjonowanego przez Internet Corporation for Assigned Names and Numbers (ICANN).

 

Root serwery DNS.

Na szczycie hierarchii DNS znajdują się root serwery, które są zarządzane przez różne organizacje autoryzowane przez ICANN. Aktualnie jest trzynaście działających root serwerów z pewną ilością mirrorów, które mają odciążać root serwery.  Lista root serwerów znajduje się w pliku /var/named/named.ca, należącym do pakietu bind.

Root serwery obsługują zapytania tylko dla domen najwyższego poziomu i dostarczają klientom adresy IP serwerów odpowiedzialnych za dane domeny TLD.

 

Role jakie mogą pełnić hosty w związku DNS.

Podstawowy serwer DNS – primary DNS server.  Ma zwierzchnią rolę w domenie, utrzymuje oryginalne dane domeny.

Zapasowy serwer DNS – secondary DNS server. Również ma zwierzchnią rolę w domenie jednak jego dane są kopiowane z serwera podstawowego. Taki serwer uruchamiany jest dla redundancji lub odciążenia serwera podstawowego.

Cachujący serwer DNS – caching DNS server. Nie odgrywa zwierzchniej roli w domenie, jego dane kopiowane są z serwera podstawowego lub zapasowego i caschowane w pamięci operacyjnej.

Forwardujący serwer DNS – forwarding DNS server. Nie odgrywa zwierzchniej roli w domenie, przekazuje przychodzące zapytania od klientów do określonego serwera DNS.

Klient DNS – dns client. Host, który korzysta z serwerów DNS do rozpoznawania nazw domenowych.

 

Typy konfiguracji serwerów nazw.

  • Autorytatywny (authoritative) – zazwyczaj podstawowy lub zapasowy serwer DNS, który udziela odpowiedzi na wysyłane przez klientów zapytania DNS odnośnie jego domeny.
  • Rekursywny (recursive) – zazwyczaj serwer cachujący, który jest w stanie odpytać dostępny dla  niego serwer DNS aby rozwiązać nazwę domenową, której jeszcze nie ma jeszcze w cache’u.

 

Strefy DNS i pliki stref.

Przestrzeń adresowa, którą zarządza dany serwer DNS nazywana jest strefą, a pliki z danymi nazywane są plikami stref lub bazą danych strefy. Pliki stref zawierają dyrektywy i rekordy zasobów. Dyrektywy kontrolują zachowanie serwera DNS i instruują jak przeprowadzać określone zadania lub stosować ustawienia specjalne dla strefy. Rekordy zasobów opisują limity strefy i mają zastosowanie dla indywidualnych hostów lub podmiotów. Dyrektywy w pliku strefy zaczynają się od znaku $, np. $INCLUDE (dodanie dodatkowego pliku strefy), $ORIGIN (dodanie nazwy domeny do prostej nazwy hosta) i $TTL (domyślna ważność ustawień strefy w sekundach). Rekordy zasobów przedstawia tabela poniżej.

Rekord Opis
A lub AAAA Rekord adresu, określa adres IPv4 lub IPv6 jaki ma być mapowany dla nazwy hosta.
CNAME Rekord nazwy kanonicznej (canonical name), przyporządkowuje alias dla nazwy rzeczywistej.
MX Rekord poczty. Wskazuje na listę serwerów poczty obsługujących daną domenę.
NS Rekord serwera nazw. Określa nazwę autorytatywnego serwera nazw.
PTR Rekord wskaźnika. Wskazuje na różne lokalizacje w przestrzeni nazw. Zazwyczaj jest używany dla reverse DNS.
SOA Rekord Start Of Authority. Definiuje kluczowy autorytatyene dane takie  jak podstawowy serwer DNS, adres email administratora oraz:

Serial – ile razy pliku strefy był aktualizowany.

Refresh – czas po jaki zapasowe serwery DNS będą pobierać aktualizację strefy.

Retry – czas przez jaki zapasowe serwery będą czekać przed ponownym pobraniem aktualizacji strefy.

Expiry – czas po jakim zapasowe serwery ustawią strefę jako nie autorytatywną jeżeli nie mogą skontaktować się z podstawowym serwerem nazw.

Minimum – czas przez jaki serwery nazw cashują dane strefy.

Wartości mogą być podane w sekundach (domyślne), minutach (M), godzinach (H), dniach (D) lub tygodniach (W). Znakiem komentarza jest średnik ;. Domena na samym początku wskazuje na domenę, która jest właścicielem strefy. Znak @ wskazuje na wartość zmiennej $ORIGIN. IN przed SOA wskazuje na rekord Internet.

Przykładowy plik strefy:

Wszystkie pliki strefy są utrzymywane na podstawowym serwerze DNS.

 

Domyślny plik konfiguracyjny /etc/named.conf.

Plik domyślnie skonfigurowany jest dla serwera DNS cache-only. Komentarze w tym pliku zaczynają się od znaków // lub mogą być w bloku /* */ tak jak w języku C/C++. Opcje globalne definiowane są w sekcji options,  opcje indywidualnego poziomu definiowane są wewnątrz sekcji zone. Opcje indywidualnych stref nadpisują opcje globalne.

 

Domyślny plik strefy /etc/named.rfc1912.zones.

Domyślnie plik ten dostarcza tylko strefę dla lokalhosta. Każdy blok w tym pliku wskazuje na odpowiedni plik strefy w katalogu /var/named: named.empty, named.localhost oraz named.loopback.

 

Pakiety i logi w RHEL związane z BIND.

  • bind – oprogramowanie do konfiguracji serwera DNS.
  • bind-libs – biblioteki dla binda.
  • bind-utils – zawiera takie narzędzia resolvera jak dig, host czy nslookup.

Wszystkie komunikaty związane z bindem logowane są do pliku /var/log/messages.

 

Bind a SELinux.

Typ SELinux związany z portem DNS to dns_port_t :

Zmienne boolean SELinux:

Zmienna named_tcp_bind_http_port określa czy named może wykorzystywać port http.  Zmienna named_write_master_zones określa czy named może modyfikować strefę master.

 

Konfiguracja serwera DNS cache-only.

1. Instalacja pakietu bind i bind-utils.

2. Edycja pliku named.conf i modyfikacja poniższych dyrektyw. Pozostałe dyrektywy zostawiamy niezmienione.

3. Sprawdzenie poprawności składni pliku named.conf.

4. Autostart i start binda.

5. Odblokowanie usługi DNS na firewallu.

 

 

 

 

 

Leave a Reply

Your email address will not be published. Required fields are marked *