Instalacja i konfiguracja usługi DHCP w Ubuntu Server

Wymagana ilość zrzutów do sprawozdania: 4 (1, 2, 3, 4). Jak prawidłowo sporządzić sprawozdanie?
  1. Wprowadzenie do laboratorium
  2. W niniejszym ćwiczeniu zainstalujemy i skonfigurujemy usługę DHCP, która, mówiąc ogólnie, "rozdaje" adresy IP (więcej w moich materiałach odnośnie sieci komputerowych), dzięki czemu klienci DHCP otrzymują z automatu i dynamicznie adresy IP wraz z informacjami dodatkowymi. Adresy IP są dzierżawione na określoną ilość czasu. Po tym czasie, zwanym czasem dzierżawy, przypisany zostanie inny bądź ten sam adres. Oprócz tego skonfigurujemy klienta (system Lubuntu) do tego, aby pobierał adres ze zdefiniowanej na serwerze puli adresów DHCP, zarówno w sposób dynamiczny jak i statyczny.
  3. Instalacja DHCP
  4. Zainstalujemy usługę DHCP dostarczoną od ISC (Internet Systems Consortium) poleceniem sudo apt install isc-dhcp-server.

    Po instalacji można sprawdzić status naszej usługi. Służy do tego polecenie sudo systemctl status isc-dhcp-server. Powinniśmy otrzymać status failed i jest to na tym etapie sytuacja prawidłowa. Gdybyśmy w przyszłości chcieli zatrzymać uruchomioną usługę wydajemy w tym celu polecenie sudo systemctl stop isc-dhcp-server. Wyjść można skrótem Ctrl + C.

  5. Konfiguracja DHCP
  6. Jak to w Ubuntu Server, wszystko konfigurujemy tekstowo posługując się odpowiednimi plikami konfiguracyjnymi, dlatego też trzeba zwrócić baczną uwagę na to co wpisujemy, ponieważ cofnięcie zmian może być najzwyczajniej w świecie niemożliwe. Usługę DHCP konfigurujemy edytując dwa pliki: /etc/default/isc-dhcp-server oraz /etc/dhcp/dhcpd.conf.
  7. Plik /etc/default/isc-dhcp-server
  8. Pierwszy ze wspomnianych plików zawiera informacje na temat interfejsów na których DHCP nasłuchuje żądań o wydanie adresów dynamicznie. Wydajemy więc polecenie: sudo nano /etc/default/isc-dhcp-server. Zawartość pliku powinna przedstawiać się następująco (jeśli tak nie jest wpisujemy w pliku to co widać na poniżym listingu):
        INTERFACESv4=""
        INTERFACESv6=""
    

    Wpisujemy w pliku nazwę interfejsu ethernetowego na którym będzie nasłuchiwać usługa DHCP a więc u nas enp0s8:

  9. Plik /etc/dhcp/dhcpd.conf
  10. Teraz zabieramy się za edycję drugiego z kluczowych plików a więc /etc/dhcp/dhcpd.conf. Na wypadek popełnienia błędu dobrze jest wykonać jego kopię poleceniem: sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf-backup po czym sprawdzić, czy kopia rzeczywiście znajduje się w tym samym katalogu poleceniem ls -a /etc/dhcp. Następnie edytujemy plik poleceniem sudo nano /etc/dhcp/dhcpd.conf.

    W pliku tym odkomentowujemy wiersz przy słowie authoritative. Dzięki temu serwer będzie ustawiony w taki sposób, że będzie jedynym serwerem DHCP w sieci a więc autorytatywnym.

    Następnie przechodzimy do wiersza z komentarzem A slightly different configuration for an internal subnet. Poniżej niego zawarta jest domyślna konfiguracja serwera DHCP. Bardzo uważnie odkomentowujemy wszystkie wiersze począwszy od słowa subnet a skończywszy na klamrze zamykającej }:

    Przedstawiona w pliku po jego otwarciu konfiguracja jest przykładowa. Musimy ją więc dostosować do wymagań naszej własnej sieci. Nasza sieć na interfejsie enp0s8 ma adresację 172.16.X.0/24, gdzie X to twój numer z dziennika.
    Teraz omówię poszczególne wiersze tej odkomentowanej sekcji: Następnie zapisujemy plik i restartujemy serwer poleceniem sudo systemctl restart isc-dhcp-server lub sudo systemctl start isc-dhcp-server, oraz sprawdzamy status usługi poleceniem sudo systemctl status isc-dhcp-server. Teraz sekcja Active pokazywać powinna active (running). Jedynym dopuszczalnym błędem na tym etapie jest ten, który wskazuje na brak adresu karty enp0s3.

  11. Konfiguracja klienta DHCP
  12. Mamy już skonfigurowany serwer DHCP, więc musimy skonfigurować klienta DHCP. Klient ten to zwykły host sieciowy, który będzie dynamicznie pobierał adres IP od serwera ze zdefiniowanej na nim w pliku dhcpd.conf puli. U nas klientem będzie zainstalowany wcześniej i skonfigurowany system Lubuntu. Ustawienia sieci możemy konfigurować obrazkowo poprzez GUI, albo za pomocą specjalnie przeznaczonego do tego celu pliku tzw. netplana. Ze względu na fakt, że na netplan przeznaczam całkowicie odrębne ćwiczenie, w niniejszej instrukcji skonfigurujemy sieć na kliencie w sposób wizualny. Uruchamiamy więc w OVB system klienta i klikamy PPM na ikonie połączenia sieciowego wybierając Edytuj połączenia... a następnie zaznaczając połączenie Wired connection 1 i naciskając ikonę trybika.

    Następnie przechodzimy pod kartę IPv4 Settings. Jak widać widnieje tam adres IP ustawiony podczas poprzednich ćwiczeń jako statyczny (172.16.X.5+X). Nie usuwamy go, niech zostanie, jednak zwróćmy uwagę na to, że na liście rozwijanej Method widnieje opcja Automatic (DHCP) - to dzięki niej właśnie w pierwszym rzędzie pobrany zostanie adres IP z serwera dzięki usłudze DHCP a gdyby takiego serwera w sieci nie było, wykorzystany zostałby adres statyczny.

    Pozostaje nam teraz sprawdzić w terminalu czy adres IP enp0s3 rzeczywiście się zmienił. Wykorzystujemy w tym celu polecenie ip addr show lub jego skróconą wersję ip a. Można również skorzystać z polecenia ifconfig -a jednak w takim przypadku najpierw należy zainstalować pakiet narzędzi sieciowych poleceniem sudo apt install net-tools. Jak widać odpowiedź jest twierdząca, widzimy dwa adresy: statyczny (u mnie 172.16.0.77) i dynamiczny (172.16.0.180). Ten zrzut ekranu należy włączyć do sprawozdania

    Pingujemy serwer, który odpowiada. Ten zrzut ekranu należy włączyć do sprawozdania

    Sprawdzamy też połączenie w kierunku odwrotnym. Z kolei dzięki poleceniu sudo dhcp-lease-list można sprawdzić trwające aktualnie dzierżawy adresów IP w postaci listy podpiętych do DHCP klientów (DHCP Clients List). Ten zrzut ekranu należy włączyć do sprawozdania

  13. Rezerwacja adresów IP
  14. W ostatnim kroku niniejszego laboratorium zarezerwujemy adres IP dla klienta, tak aby zawsze był taki sam. Przydaje się to w wielu sytuacjach, w których hosty sieciowe powinny mieć taki stały adres IP, np. drukarki sieciowe. Aby wykonać tę czynność należy skojarzyć adres IP który chcemy zarezerwować z odpowiadającym mu adresem MAC, a więc powiązać adres logiczny z adresem fizycznym karty sieciowej. Aby dokonać rezerwacji przechodzimy na serwerze z powrotem do pliku dhcpd.conf. Wydajemy polecenie sudo nano /etc/dhcp/dhcpd.conf i przechodzimy do sekcji zaczynającej się od host fantasia {.

    Następnie usuwamy komentarze aż do kończącej klamry, wprowadzamy nazwę hosta, który będzie miał zarezerwowany adres IP (polecenie hostname na Lubuntu pokaże tą nazwę), wprowadzamy pożądany adres IP (wprowadź 172.16.X.200) oraz adres MAC karty sieciowej interfejsu enp0s3 Lubuntu (aby go odczytać wystarczy wydać w terminalu Lubuntu polecenie ip addr show). Po wprowadzonych zmianach restartujemy serwer DHCP.

    W ostatnim kroku przechodzimy do klienta Lubuntu i odświeżamy interfejs sieciowy. Klikamy PPM w prawym dolnym rogu ekranu i wybieramy przycisk Włącz sieci, tak aby go odznaczyć, po czym wykonujemy ponownie pdoobną czynność, z tym, że z powrotem zaznaczamy wspomnianą opcję. W ten posób interfejs wczyta nowe dane, czyli zarezerwowany na serwerze DHCP stały adres IP:

    Na końcu pozostaje już tylko sprawdzić w terminalu klienta, czy otrzymał on żądany adres IP. Jak widać końcowy oktet posiada liczbę 200. Ten zrzut ekranu należy włączyć do sprawozdania


© mgr inż. Adrian Zapała