KONFIGURACJA DHCP W UBUNTU SERVER 16.04

I. Połączenie dwóch host.

Ustawienia kart

Na początku musimy podłączyć do naszego serwera jakiegoś klienta. Będzie nim host z zainstalowanym systemem Ubuntu Desktop 16.04. W ustawieniach naszego Virtual Box'a klient i serwer muszą mieć ustawione na swoich interfejsach sieciowych Sieć wewnętrzną i taką samą jej nazwę - u nas LAN-Ubuntu.

Konfiguracja sieci na Ubuntu Desktop

Sprawdzamy na kliencie (Ubuntu Desktop) ustawienia karty sieciowej. Uruchamiamy terminal i wydajemy polecenie ip a. Widzimy, że interfejs enp0s3 nie ma przypisanego adresu IP i dlatego teraz musimy go skonfigurować.

Konfiguracja sieci na Ubuntu Desktop

Możemy to zrobić poprzez konfigurację pliku interfaces lub w trybie graficznym, uruchamiając Sieć. Tam wybieramy Przewodowe, włączamy je i wchodzimy w Opcje, gdzie wprowadzamy adres IP, maskę, bramę i DNS. Wykorzystujemy adresację z podsieci, obowiązującej na serwrze.

Konfiguracja sieci na Ubuntu Desktop

Po kliknięciu przycisku Zapisz wyłączamy i włączamy kartę sieciową (suwak w prawym górnym rogu). Widać, że konfiguracja została pobrana właściwie.

SPrawdzenie konfiguracji

Możemy też w terminalu sprawdzić poleceniem ip a. Jak widać, wszystko się zgadza.

Sprawdzenie połączenia

Teraz pozostaje nam już tylko sprawdzić połączenie między klientem, a serwerem wykorzystując polecenie ping. Ping z klienta na serwer.

Sprawdzenie połączenia

A teraz ping z serwera na klienta. Jak widać pingi działają w obie strony.

Sprawdzenie połączenia

Zanim przejdziemy do instalacji serwera dhcp, powinniśmy sprawdzić czy mamy dostęp do Internetu. Wykonujemy do poleceniem: ping 8.8.8.8 oraz ping www.google.pl. Jak widać nie mamy połączenia z adresem www.google.pl ale mamy połączenie z adresem 8.8.8.8. Oznacza to, że brak nam serwera DNS odpowiedzialnego za tłumaczenie nazw domenowych.

Konfiguracja adresów DNS

Uruchamiamy plik resolv.conf poleceniem sudo nano /etc/resolv.conf i dopisujemy adres "goooglowskiego" serwera DNS wpisem nameserver 8.8.8.8. Zapisujemy zmiany i sprawdzamy połączenie.

Sprawdzenie połączenia

Następnie wykonujemy do polecenie: ping www.google.pl i widzimy, że połączenie działa prawidłowo.

Sprawdzenie połączenia

To rozwiązanie ma jedną wadę. Po restarcie systemu (bądź sieci) plik ten jest nadpisywany. Dlatego najlepiej edytować plik /etc/network/interfaces i tam dopisać adres serwera DNS (nawet dwa) - tak jak wyżej. Zapisać zmiany, zrestartować sieć i wszystko powinno być OK.

Sprawdzenie połączenia

Po restarcie sieci poleceniem sudo systemctl restart networking wszystko działa właściwie.

II. Instalacja serwera dhcp w Ubuntu Server 16.04.

Instalacja serwera DHCP

Teraz możemy zainstalować usługę serwera dhcp. Wystarczy wydać polecenie sudo apt install isc-dhcp-server. Akceptujemy zmiany, które zostaną wprowadzone w systemie naciskając literkę T.

Instalacja serwera DHCP

Po akceptacji zmian następuje instalacja usługi. Jak widać wszystko przebiegło pomyślnie.

Aktualizacja pakietów

Sprawdzamy czy nasza usługa działa poleceniem sudo systemctl status isc-dhcp-server. Jak widzimy jeszcze nie, a to oznacza, że musimy ją skonfigurować. Edytujemy odpowiedni plik poleceniem sudo nano /etc/default/isc-dhcp-server

Konfiguracja serwera DHCP

Następnie wskazujemy, który interfejs powinien obsługiwać żądanie dhcp. U nas będzie to enp0s8. Wprowadzamy go i zapisujemy zmiany w pliku.

Konfiguracja serwera DHCP

Następnie edytujemy kolejny plik poleceniem sudo nano /etc/dhcp/dhcpd.conf. Wprowadzamy klika zmian, np. w opcjach wspólnych dla wszystkich sieci dodamy domenę egzamin.local, nazwę pełną serwera serwer110.egzamin.local oraz authoritative uaktywniamy. Zapisujemy zmiany w pliku i przechodzimy do kolejnej jego sekcji.

Konfiguracja serwera DHCP

Przechodzimy do sekcji dotyczącej konfiguracji wewnętrznej podsieci i tam podajemy adresację z naszej podsieci:
adres podsieci: 10.80.80.0
maska podsieci: 255.255.255.0
zakres serwera dhcp (50 adresów): 10.80.80.150 10.80.80.199
adres serwera DNS: 10.80.80.1
nazwa domeny: "egzamin.local"
maska podsieci: 255.255.255.0
adres routera: 10.80.80.1
adres rozgłoszeniowy: 10.80.80.255
czasy dzierżawy pozostawiamy bez zmian
Zapisujemy zmiany i zamykamy nasz plik.

Konfiguracja serwera DHCP

Następnie uruchamiamy nasz serwer dhcp poleceniem sudo systemctl start isc-dhcp-server oraz sprawdzamy czy usługa została włączona poleceniem sudo systemctl status isc-dhcp-server. Jak widać nasza usługa działa.

Sprawdzanie dzierżawy

Teraz idziemy na klienta i sprawdzamy czy serwer dhcp przydzieli nam odpowiedni adres. Jak widzimy, mamy adres nie z puli serwera dhcp, ale wynika to z tego, że mamy przypisany ręcznie do karty sieciowej. Przestawiamy zatem na dhcp.

Sprawdzanie dzierżawy

Znanym już sposobem uruchamiamy Sieć. Tam wybieramy Przewodowe, wchodzimy w Opcje i w zakładce Ustawienia IPv4 ustawiamy Automatycznie. Zapisujemy zmiany, wracamy do terminala i restartujemy ustawienia sieciowe.

Sprawdzanie dzierżawy

W terminalu wpisujemy sudo systemctl restart networking. Chwilę czekamy i sprawdzamy adresację. Jak widzimy karta sieciowa pobrała pierwszy dostępny adres, czyli 10.80.80.150.

Sprawdzanie dzierżawy

Możemy też sprawdzić (jeśli mamy taką fizyczną możliwość) co będzie pobierał drugi klient, z systemem operacyjnym Windows. Uruchamiamy wiersz poleceń i wpisujemy ipconfig. Jak widzimy karta sieciowa pobrała kolejny dostępny adres, czyli 10.80.80.151. Możemy nawet "puścić pinga" na drugiego klienta.

Sprawdzanie dzierżawy

Z poziomu serwera możemy też sprawdzić kto obecnie jest do nas podłączony (korzysta z dzierżawy). Używamy do tego polecenia sudo dhcp-lease-list. Jak widać jest jakiś problem z plikiem dhcp-lease-list.

Sprawdzanie dzierżawy

Edytujemy plik sudo nano /usr/sbin/dhcp-lease-list, odnajdujemy wpis my $LEASES = '/var/db/dhcpd.leases' i podmieniamy go na my $LEASES = '/var/lib/dhcp/dhcpd.leases'

Sprawdzanie dzierżawy

Po podmianie wpisu zapisujemy zmiany w pliku i zamykamy go.

Sprawdzanie dzierżawy

Teraz ponownie sprawdzamy z serwera, kto korzysta z dzierżawy naszego serwera dhcp poleceniem sudo dhcp-lease-list. Widzimy, że aktualnie mamy dwóch klientów z odpowiednimi adresami.

Sprawdzanie dzierżawy

Na koniec możemy zarezerwować konkretny adres IP dla konkretnego komputera. Edytujemy plik sudo nano /etc/dhcp/dhcpd.conf i tam dopisujemy rezerwację adresu. Pamiętajmy, że musimy podać adres MAC komputera dla którego dokonujemy rezerwacji.

Zapisujemy i restartujemy serwer dhcp.
Sprawdzanie dzierżawy

Resetujemy też ustawienia karty sieciowej na kliencie i sprawdzamy adres. Jak widzimy działa

III. Konfiguracja routingu w Ubuntu Server 16.04.

Konfiguracja routingu

Jak widzimy powyżej, połączenie klienta z serwerem jest, na serwerze mamy dostęp do Internetu, ale na kliencie nie. Musimy więc skonfigurować routing na serwerze.

Konfiguracja routingu

Najpierw edytujemy odpowiedni plik poleceniem sudo nano /proc/sys/net/ipv4/ip_forward i zmieniamy tam wartość z 0 na 1. Zapisujemy oczywiście zmiany.

Konfiguracja routingu

By wartość ta nie zmieniała się po restarcie systemu, trzeba edytować plik /etc/sysctl.conf i tam dokonać jeszcze pewnych zmian. Edytujemy plik poleceniem: sudo nano /etc/sysctl.conf i wyszukujemy wpis #net.ipv4.ip_forward = 1 i należy go "odhaszować".

Konfiguracja routingu

Musimy jeszcze dokonać małej korekty w firewall’u: najpierw wpisujemy w konsoli: sudo iptables –t nat –A POSTROUTING –o enp0s3 –j MASQUERADE

Konfiguracja routingu

A następnie edytujemy plik poleceniem: sudo nano /etc/rc.local i wpisujemy do niego (przed exit0) powyższą linijkę. Zapisujemy oczywiście zmiany, restartujemy serwer i sprawdzamy czy routing działa.

Konfiguracja routingu

Sprawdzamy na kliencie czy działa Internet. Jak widać ping na stronę zse.rzeszow.pl nie zadziałał, ale możemy jeszcze sprawdzić ping na adres serwera DNS 8.8.8.8. Połączenie jest, więc nasz serwer nie przydziela adresu DNS umożliwiającego połączenie z Internetem naszej karcie, co widać wyżej.

Konfiguracja routingu

Wracamy na nasz serwer i tam dokonujemy małej poprawki w pliku sudo nano /etc/dhcp/dhcpd.conf. Odszukujemy opcje serwera dhcp i dopisujemy drugi adres serwera DNS 8.8.8.8. Zapisujemy zmiany.

Konfiguracja routingu

Restartujemy jeszcze nasz serwer dhcp poleceniem sudo systemctl restart isc-dhcp-server.

Konfiguracja routingu

Restartujemy ustawienia sieciowe na kliencie i sprawdzamy powownie połączenie z Internetem. Jak widać wszystko jest OK.