Na początku (jeśli chcemy) możemy ustalić nazwę domeny, którą będziemy stosować w strefie DNS. U nas będzie to egzamin.local. Edytujemy znany już plik poleceniem sudo nano /etc/hosts i dopisujemy do nazwy hosta egzamin.local. Zapisujemy zmiany i restartujemy serwer.
Sprawdzamy poleceniem hostname -f. Widzimy, że jest OK i możemy rozpocząć instalację serwera DNS. Wydajemy polecenie: sudo apt install bind9 bind9utils. Zgadzamy się klikając "y"
Po zakończeniu instalacji przechodzimy do katalogu /etc/bind i wyświetlamy jego zawartość.
Następnie edytujemy odpowiedni plik poleceniem sudo nano /etc/bind/named.conf.options. Można powiedzieć, że dodajemy taki "buforujacy serwer nazw" z zapisem lokalnym. Możemy wstawić adres DNS naszego providera albo np. 8.8.8.8. Zapisujemy zmiany i zamykamy plik.
Następnie restartujemy nasz serwer DNS poleceniem sudo systemctl restart bind9 oraz sprawdzamy jego status. Działa!
Możemy też przetestować poleceniem dig z pakietu bind działanie lokalnego serwera DNS. Jeśli uzyskamy coś podobnego to jest OK.
Teraz należy edytować plik konfiguracyjny bind9 sudo nano /etc/bind/named.conf. Powinien on zawierać następujące wiersze. Jeśli ich nie ma, po prostu należy je dodać.
Następnie musimy zdefiniować strefy przeszukiwania do przodu i do tyłu. Edytujemy plik named.conf.local wydając polecenie sudo nano /etc/bind/named.conf.local. Dokonujemy wpisów takich jak wyżej i zapisujemy zmiany.
Teraz jeszcze musimy stworzyć te pliki, a w zasadzie przerobić plik db.local i zapisać pod właściwą nazwą. Wydajemy polecenie sudo cp /etc/bind/db.local /etc/bind/for.egzamin.local i edytujemy go sudo nano /etc/bind/for.egzamin.local
Przerabiamy go teraz do naszych potrzeb (dodając również rekordy klientów) i zapisujemy zmiany.
Podobnie postępujemy w przypadku strefy wyszukiwania wstecz. Przerabiamy plik ze strefy wyszukiwania do
przodu wydając polecenie sudo cp /etc/bind/for.egzamin.local /etc/bind/rev.egzamin.local i edytujemy go
sudo nano /etc/bind/rev.egzamin.local
Przerabiamy go teraz do naszych potrzeb (dodając również rekordy klientów typu PTR) i zapisujemy zmiany.
Restartujemy usługę DNS sudo systemctl restart bind9 i wydajemy kilka kontrolnych poleceń. Jeśli efekt jest taki jak powyżej to znaczy, że wszystko jest ok.
Sprawdzamy teraz poprawność działania serwera DNS. Najpierw polecenie: dig egzamin.local, a następnie kolejne nslookup serwer110.egzamin.local. Jak widzimy jest problem z adresem serwera DNS, ponieważ pokazuje się nam localhost.
Należy jeszcze zmienić DNS-a w pliku /etc/resolv.conf. Od wersji Ubuntu 18.04 plik ten jest dowiązaniem symbolicznym i zmiana w nim ma charakter doraźny. Po restarcie systemu wczytują się stare ustawienia. Aby to "obejść" należy ten plik usunąć, a następnie utworzyć nowy o takiej samej nazwie.
Następnie podajemy właściwy adres DNS (nasz serwer) oraz domenę.
Na wszelki wypadek blokujemy plik przed nadpisaniem (podczas uruchamiania systemu) poleceniem sudo chattr +i /etc/resolv.conf i restartujemy komputer, żeby sprawdzić czy działa
Poleceniem dig egzamin.local sprawdzamy nasz serwer i teraz wygląda to znacznie lepiej. Jeszcze nslookup serwer110.egzamin.local i adres serwera DNS jest właściwy
Następnie poleceniem nslookup sprawdzamy nasze hosty. Najpierw po nazwach, a potem po adresach IP
I jeszcze pingi, najpierw po adresach IP, a potem po nazwach. Jak widać wszystko działa
Teraz przechodzimy na klienta (z systemem Ubuntu) i sprawdzamy pingi po nazwach, po adresie IP, a potem polecenie nslookup. Jak widać nie wszystko działa. Ping po nazwie nie jest osiągalny, a serwer DNS jest na adresie localhost. Problem leży oczywiście w pliku resolv.conf
Należy jeszcze zmienić DNS-a w pliku /etc/resolv.conf. Podobnie jak na serwerze ten plik jest dowiązaniem symboliczmym i po restarcie systemu wczytują się stare ustawienia. Aby to "obejść" należy ten plik usunąć, a następnie utworzyć nowy o takiej samej nazwie. Obecnie zawartość pliku jest widoczna powyżej
Usuwamy ten plik, tworzymy nowy, wprowadzamy nasze dane i zabezpieczamy go przed usunięciem
Ponownie sprawdzamy pingi po nazwach, po adresie IP, zarówno do serwera jak i do klienta Windows. Jak widać jest OK.
Dla formalności sprawdzamy polecenie nslookup. Jak widać teraz już wszystko działa
To samo sprawdzamy na drugim kliencie (z systemem Window 10). Pingi po nazwach, a potem nslookup. Jak widać jest OK.
Na koniec możemy jeszcze stworzyć aliasy do istniejących rekordów. Edytujemy plik for.egzamin.local i tam dodajemy alias o nazwie bond100 dla rekordu komp100 oraz drugi alias o nazwie bond110 dla rekordu komp110. Zapisujemy zmiany i zamykamy plik
Następnie sprawdzamy z serwera działanie aliasów poleceniem nslookup oraz ping. Wszystko jest OK
Teraz jeszcze z klienta (z systemem Windows 10). Najpierw nslookup, a potem ping. Widzimy pełny zwrot informacji