Konfiguracja serwera DNS
Domain Name System (DNS) stanowi jeden z najbardziej kluczowych protokołów sieciowych w każdej infrastrukturze IT. Jego głównym zadaniem jest translacja przyjaznych dla człowieka nazw domenowych na adresy IP zrozumiałe dla urządzeń sieciowych. Bez poprawnie funkcjonującej usługi DNS korzystanie z zasobów sieci lokalnej oraz internetu wymagałoby ręcznego wpisywania adresów IP wszystkich urządzeń, co w nowoczesnych systemach jest niemożliwe do wdrożenia na szeroką skalę.
1. Rola i zasada działania DNS w sieci
Serwer DNS działa w architekturze klient-serwer. W momencie, gdy stacja robocza próbuje połączyć się z serwerem o określonej nazwie, wysyła zapytanie do lokalnego serwera DNS skonfigurowanego w parametrach karty sieciowej. Jeśli serwer DNS posiada w swojej lokalnej bazie rekord dla wskazanej nazwy, natychmiast odsyła odpowiedź do klienta. W przypadku braku rekordu w lokalnych strefach, serwer DNS rozpoczyna proces odpytywania serwerów nadrzędnych, serwerów głównych (Root Hints) lub przekazuje zapytanie do publicznych serwerów zewnętrznych określonych jako forwardery. Odpowiedzi te są zapisywane w pamięci podręcznej serwera przez określony czas TTL, aby przyspieszyć kolejne zapytania.
2. Instalacja i konfiguracja serwera DNS (BIND9) na Linuxie
Najpopularniejszym oprogramowaniem serwera DNS w systemach z rodziny Linux jest pakiet BIND9. Instalację na dystrybucji serwerowej Debian lub Ubuntu wykonujemy przy użyciu menedżera pakietów apt. Zanim jednak rozpoczniemy instalację oprogramowania, musimy upewnić się, że nasz serwer posiada poprawnie skonfigurowaną, statyczną adresację IP, aby stacje robocze miały stały punkt odniesienia w sieci. Usługę oraz powiązane narzędzia diagnostyczne instalujemy poniższym poleceniem:
sudo apt install bind9 bind9utils bind9-doc -y
Główny plik konfiguracyjny usługi BIND9 znajduje się w katalogu etc bind. Najważniejszym plikiem odpowiadającym za ustawienia globalne serwera oraz przekazywanie zapytań poza sieć lokalną jest named.conf.options. Otwieramy go do edycji i definiujemy serwery przekazujące, na przykład publiczne serwery DNS Cloudflare lub Google. Przykładowa struktura sekcji forwarders w pliku konfiguracyjnym wygląda następująco:
options {
directory "/var/cache/bind";
forwarders {
1.1.1.1;Pierwszy forwarder - publiczny serwer DNS Cloudflare.
8.8.8.8;Drugi forwarder - publiczny serwer DNS Google.
};
dnssec-validation auto;
listen-on-v6 { any; };
};
Po modyfikacji pliku konfiguracyjnego zawsze sprawdzamy poprawność składni za pomocą dedykowanego polecenia diagnostycznego, co pozwala uniknąć błędów związanych z brakującymi średnikami lub nawiasami klamrowymi:
sudo named-checkconf
Jeżeli polecenie nie zwróci żadnych komunikatów o błędach, możemy zrestartować usługę serwera DNS i dodać ją do automatycznego uruchamiania przy każdym starcie systemu:
sudo systemctl restart named && sudo systemctl enable named