Domain Name Service (DNS) (Polski)

Domain Name Service (DNS) to usługa internetowa, która mapuje adresy IP i w pełni kwalifikowane nazwy domen (FQDN) do siebie. W ten sposób DNS łagodzi potrzebę zapamiętywania adresów IP. Komputery obsługujące DNS nazywane są serwerami nazw. Ubuntu zawiera BIND (Berkley Internet Naming Daemon), najpopularniejszy program służący do utrzymywania serwera nazw w systemie Linux.,

w monicie terminala wprowadź następujące polecenie, aby zainstalować dns:

sudo apt install bind9

bardzo przydatnym pakietem do testowania i rozwiązywania problemów z DNS jest dnsutils pakiet. Bardzo często te narzędzia będą już zainstalowane, ale aby sprawdzić i / lub zainstalowaćdnsutils wprowadź następujące ustawienia:

sudo apt install dnsutils

Konfiguracja

istnieje wiele sposobów konfiguracji BIND9. Niektóre z najczęstszych konfiguracji to buforujący serwer nazw, serwer główny i serwer pomocniczy.,

  • Po skonfigurowaniu jako buforujący serwer nazw BIND9 znajdzie odpowiedź na zapytania o nazwy i zapamięta odpowiedź, gdy domena zostanie ponownie zapytana.

  • jako główny serwer BIND9 odczytuje dane strefy z pliku na swoim komputerze i jest autorytatywny dla tej strefy.

  • jako drugi serwer BIND9 pobiera dane strefy z innego serwera nazw, który jest autorytatywny dla strefy.

przegląd

pliki konfiguracyjne DNS są przechowywane w katalogu/etc/bind., Podstawowym plikiem konfiguracyjnym jest /etc/bind/named.conf, który w układzie dostarczonym przez pakiet zawiera tylko te pliki.

podstawowe serwery nazw były kiedyś opisane w pliku/etc/bind/db.root. Jest to teraz dostarczane zamiast tego przez plik /usr/share/dns/root.hints dostarczony z pakietem dns-root-data I znajduje się w pliku konfiguracyjnym named.conf.default-zones powyżej.

możliwe jest skonfigurowanie tego samego serwera jako buforującego serwera nazw, podstawowego i wtórnego: wszystko zależy od stref, które obsługuje., Serwer może być początkiem władzy (SOA) dla jednej strefy, jednocześnie zapewniając dodatkową usługę dla innej strefy. Cały czas świadcząc usługi buforowania dla hostów w lokalnej sieci LAN.

buforowanie serwera nazw

domyślna konfiguracja działa jak serwer buforowania. Po prostu odkomentuj i edytuj /etc/bind/named.conf.options aby ustawić adresy IP serwerów DNS dostawcy usług internetowych:

forwarders { 1.2.3.4; 5.6.7.8;};

Uwaga

Zamień 1.2.3.4 I 5.6.7.8 z adresami IP rzeczywistych serwerów nazw.,

aby włączyć nową konfigurację, uruchom ponownie serwer DNS. Z monitu terminala:

sudo systemctl restart bind9.service

Zobacz dig, aby uzyskać informacje na temat testowania buforującego serwera DNS.

serwer główny

w tej sekcji BIND9 zostanie skonfigurowany jako serwer główny dla domeny example.com. Po prostu zamień example.com na FQDN (w pełni kwalifikowaną nazwę domeny).,

Prześlij plik strefy

aby dodać strefę DNS do BIND9, zamieniając BIND9 w serwer główny, najpierw edytuj /etc/bind/named.conf.local:

zone "example.com" { type master; file "/etc/bind/db.example.com";};

Uwaga

Jeśli bind będzie Otrzymuj automatyczne aktualizacje pliku tak jak w przypadku DDNS, a następnie użyj /var/lib/bind/db.example.com zamiast /etc/bind/db.example.com zarówno tutaj, jak i w poleceniu Kopiuj poniżej.,

teraz Użyj istniejącego pliku strefy jako szablonu, aby utworzyć /etc/bind/db.example.com plik:

sudo cp /etc/bind/db.local /etc/bind/db.example.com

Edytuj nowy plik strefy /etc/bind/db.example.com I Zmień localhost. do FQDN Twojego serwera, pozostawiając dodatkowy . na końcu., Zmiana 127.0.0.1 na adres IP serwera nazw i root.localhost na prawidłowy adres e-mail, ale z . zamiast zwykłego symbolu @, ponownie pozostawiając . na końcu. Zmień komentarz, aby wskazać domenę, dla której ten plik jest przeznaczony.

Utwórz rekord A dla domeny podstawowej, example.com. Utwórz również rekord A dlans.example.com, serwera nazw w tym przykładzie:

musisz zwiększyć numer seryjny za każdym razem, gdy wprowadzasz zmiany w pliku strefy., Jeśli dokonasz wielu zmian przed ponownym uruchomieniem BIND9, po prostu zwiększ Serial raz.

teraz możesz dodać rekordy DNS do dolnej części pliku strefy. Zobacz wspólne typy rekordów po szczegóły.,

Uwaga

wielu administratorów lubi używać ostatnio edytowanej daty jako numeru seryjnego strefy, na przykład 2020012100, który jest yyyymmddss (gdzie ss to numer seryjny)

Po wprowadzeniu zmian w pliku strefy BIND9 musi być zrestartowane, aby zmiany weszły w życie:

sudo systemctl restart bind9.service

plik odwróconej strefy

teraz, gdy strefa jest ustawiona i rozwiązuje nazwy na adresy IP, Strefa odwrotna musi być dodana, aby DNS mógł rozwiązać adres na nazwę.,

Edytuj /etc/bind/named.conf.local I dodaj następujące elementy:

zone "1.168.192.in-addr.arpa" { type master; file "/etc/bind/db.192";};

Uwaga

Zamień 1.168.192 na pierwsze trzy oktety tego, co sieć, której używasz. Należy również odpowiednio nazwać plik strefy /etc/bind/db.192. Powinien pasować do pierwszego oktetu Twojej sieci.,

teraz Utwórz plik /etc/bind/db.192 plik:

sudo cp /etc/bind/db.127 /etc/bind/db.192

następna edycja /etc/bind/db.192 zmieniając te same opcje co /etc/bind/db.example.com:

numer seryjny w strefie odwrotnej musi być zwiększany przy każdej zmianie. Dla każdego rekordu skonfigurowanego w /etc/bind/db.example.com, czyli dla innego adresu, musisz utworzyć rekord PTR w /etc/bind/db.192.,

Po utworzeniu pliku strefy odwrotnej uruchom ponownie BIND9:

sudo systemctl restart bind9.service

Serwer wtórny

Po skonfigurowaniu serwera głównego serwer wtórny jest wysoce zalecany w celu utrzymania dostępności domeny, jeśli podstawowa stanie się niedostępna.

najpierw, na serwerze głównym, transfer strefy musi być dozwolony., Dodaj opcję allow-transfer do przykładowej definicji strefy Forward I Reverse w /etc/bind/named.conf.local:

Uwaga

Zastąp 192.168.1.11 adresem IP Twojej drugiej strony Nameserver.

Restart BIND9 na serwerze podstawowym:

sudo systemctl restart bind9.service

następnie na serwerze wtórnym zainstaluj pakiet bind9 w taki sam sposób, jak na serwerze podstawowym., Następnie Edytuj/etc/bind/named.conf.local I dodaj następujące deklaracje dla stref Forward I Reverse:

Uwaga

Zastąp 192.168.1.10 adresem IP głównego serwera nazw.,

Uruchom ponownie BIND9 na drugim serwerze:

sudo systemctl restart bind9.service

W /var/log/syslog powinieneś zobaczyć coś podobnego do następującego (niektóre linie zostały podzielone, aby pasowały do formatu tego dokumentu):

uwaga

Uwaga: strefa jest przenoszona tylko wtedy, gdy numer seryjny na głównym jest większy niż na drugim., Jeśli chcesz, aby twój główny DNS powiadamiał Inne drugorzędne serwery DNS o zmianach strefy, możesz dodać also-notify { ipaddress; }; do /etc/bind/named.conf.local jak pokazano w poniższym przykładzie:

Uwaga

domyślnym katalogiem dla nieautoryzowanych plików stref jest /var/cache/bind/. Ten katalog jest również skonfigurowany w AppArmor, aby umożliwić demonowi pisanie do niego. Aby uzyskać więcej informacji na temat AppArmor zobacz bezpieczeństwo-AppArmor.,

Rozwiązywanie problemów

Ta sekcja obejmuje diagnozowanie problemów z konfiguracjami DNS i BIND9.

testowanie

resolv.conf

pierwszym krokiem w testowaniu BIND9 jest dodanie adresu IP serwera nazw do resolvera hostów. Główny serwer nazw powinien być skonfigurowany, podobnie jak inny host, aby dokładnie sprawdzić rzeczy. Zobacz konfigurację klienta DNS, aby uzyskać szczegółowe informacje na temat dodawania adresów serwera nazw do klientów sieciowych., Na końcu twoja linia nameserver w /etc/resolv.conf powinna wskazywać 127.0.0.53 I powinieneś mieć search parametr dla Twojej domeny. Coś takiego:

nameserver 127.0.0.53search example.com

aby sprawdzić, którego serwera DNS używa lokalny resolver, Uruchom:

systemd-resolve --status

Uwaga

powinieneś również dodać adres IP drugiego serwera nazw do konfiguracji klienta na wypadek, gdyby główny stał się niedostępny.,

dig

jeśli zainstalowałeś pakiet dnsutils możesz przetestować swoją konfigurację za pomocą narzędzia DNS lookup dig:

  • Po zainstalowaniu BIND9 użyj dig przeciwko interfejsowi loopback, aby upewnić się, że nasłuchuje na porcie 53.,i>

    Jeśli skonfigurowałeś BIND9 jako buforujący serwer nazw „wykop” zewnętrzną domenę, aby sprawdzić czas zapytania:

    dig ubuntu.com

    zwróć uwagę na czas zapytania pod koniec wyjścia polecenia:

    ;; Query time: 49 msec

    Po Drugim wykopie powinna być poprawa:

    ;; Query time: 1 msec

ping

teraz aby zademonstrować, w jaki sposób aplikacje wykorzystują DNS do rozwiązywania nazwy hosta, użyj narzędzia Ping do wysłania żądania ICMP echo:

ping example.com

testuje to, czy serwer nazw może rozwiązać nazwę ns.example.com na adres IP., Wyjście polecenia powinno wyglądać następująco:

named-checkzone

świetnym sposobem na przetestowanie plików stref jest użycienamed-checkzonenarzędzie zainstalowane z pakietembind9. To narzędzie pozwala upewnić się, że konfiguracja jest poprawna przed ponownym uruchomieniem BIND9 i wprowadzeniem zmian w życie.,

  • aby przetestować nasz przykładowy plik strefy Forward wprowadź następujące polecenie z wiersza polecenia:

    named-checkzone example.com /etc/bind/db.example.com

    Jeśli wszystko jest poprawnie skonfigurowane, powinieneś zobaczyć wyjście podobne do:

    zone example.com/IN: loaded serial 6OK
  • podobnie, aby przetestować plik strefy odwrotnej wprowadź następujące polecenie:

    zone example.com/IN: loaded serial 6OK
  • ID=”97e09ba220″>

    wyjście powinno być podobne do:

    zone 1.168.192.in-addr.arpa/IN: loaded serial 3OK

uwaga

numer seryjny pliku strefy będzie prawdopodobnie inny.,

szybkie tymczasowe rejestrowanie zapytań

za pomocą narzędziarndc można szybko włączać i wyłączać rejestrowanie zapytań, bez ponownego uruchamiania usługi lub zmiany pliku konfiguracyjnego.

aby włączyć logowanie zapytań, Uruchom:

sudo rndc querylog on

podobnie, aby go wyłączyć, Uruchom:

sudo rndc querylog off

dzienniki zostaną wysłane do sysloga i pojawią się w /var/log/syslog domyślnie:

Uwaga

ilość logów generowanych przez włączenie querylog może być ogromna!,

Logowanie

BIND9 ma szeroki wachlarz dostępnych opcji konfiguracji logowania, ale dwa główne z nich to kanał i kategoria, które konfigurują, gdzie idą logi i jakie informacje są rejestrowane, odpowiednio.

Jeśli nie są skonfigurowane żadne Opcje logowania, domyślna konfiguracja to:

logging { category default { default_syslog; default_debug; }; category unmatched { null; };};

zamiast tego skonfigurujmy BIND9, aby wysyłał wiadomości debugowania związane z zapytaniami DNS do osobnego pliku.

musimy skonfigurować kanał, aby określić, do którego pliku mają być wysyłane wiadomości, oraz kategorię., W tym przykładzie Kategoria zapisze wszystkie zapytania. Edytuj /etc/bind/named.conf.local I dodaj:

logging { channel query.log { file "/var/log/named/query.log"; severity debug 3; }; category queries { query.log; };};

Uwaga

opcja debugowania może być ustawiona od 1 do 3. Jeśli poziom nie jest określony, poziom 1 jest domyślny.,

  • ponieważ Demon o nazwie działa jako użytkownik bind, należy utworzyć katalog /var/log/named I zmienić właściciela:

    sudo mkdir /var/log/namedsudo chown bind:bind /var/log/named
  • Teraz uruchom ponownie BIND9, aby zmiany efekt:

    sudo systemctl restart bind9.service

powinieneś zobaczyć plik /var/log/named/query.log wypełnij informacjami o zapytaniu. Jest to prosty przykład opcji logowania BIND9. Aby zapoznać się z opcjami zaawansowanymi, Zobacz więcej informacji.,

popularne typy rekordów

Ta sekcja obejmuje niektóre z najpopularniejszych typów rekordów DNS.

  • A rekord: ten rekord mapuje adres IP do nazwy hosta.

    www IN A 192.168.1.12
  • CNAME rekord: używany do tworzenia aliasu do istniejącego rekordu A. Nie można utworzyć rekordu CNAME wskazującego na inny rekord CNAME.

    web IN CNAME www
  • MX rekord: używany do określenia, do którego adresu e-mail ma być wysyłany., Musi wskazywać naA rekord, a nie naCNAME.

    @ IN MX 1 mail.example.com.mail IN A 192.168.1.13
  • NS rekord: używany do definiowania, które serwery obsługują kopie strefy. Musi wskazywać na A rekord, a nie na CNAME. Tutaj definiowane są serwery podstawowe i wtórne.

    @ IN NS ns.example.com.@ IN NS ns2.example.com.ns IN A 192.168.1.10ns2 IN A 192.168.1.11

więcej informacji

  • Upstream BIND9 dokumentacja

  • Bind9.net posiada linki do dużej kolekcji zasobów DNS i BIND9.,

  • DNS i BIND to popularna książka już w piątym wydaniu. Istnieje teraz również DNS i BIND na książce IPv6.

  • świetnym miejscem, aby poprosić o pomoc BIND9 i zaangażować się w społeczność Ubuntu Server, jest kanał IRC #ubuntu-server na freenode.

Ostatnia aktualizacja 10 miesięcy temu. Pomóż ulepszyć ten dokument na forum.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

Przejdź do paska narzędzi