Lab 02

VirtualBox · Debian Stable · Kea DHCP4

DHCP na Debian Stable

Skonfiguruj serwer Kea DHCP4 w izolowanej sieci lab-dhcp i sprawdź, jak dwa klienty pobierają adresację IPv4 z jednej puli.

1

Cel ćwiczenia

Celem jest uruchomienie usługi DHCP w VirtualBox Internal Network. Cała adresacja jest przykładem laboratoryjnym, a Internet, brama domyślna i DNS nie są wymagane do podstawowych testów po adresach IPv4.

2

Czego nauczysz się w laboratorium

  • uruchomić Debian Stable jako serwer DHCP w sieci Internal Network.
  • skonfigurować statyczny IPv4 192.168.60.1/24 na serwerze.
  • zainstalować pakiet kea-dhcp4-server.
  • przygotować minimalną konfigurację Kea DHCP4.
  • zdefiniować podsieć 192.168.60.0/24 i pulę 192.168.60.100–192.168.60.150.
  • sprawdzić lease klientów i podstawową komunikację ping.
  • zdiagnozować typowe problemy DHCP w VirtualBox.
3

Wymagania

  • • trzy maszyny Debian Stable bez GUI w VirtualBox,
  • • jedna VM jako Debian DHCP Server,
  • • dwie VM jako Client 1 i Client 2,
  • • dostęp do repozytoriów podczas instalacji pakietu Kea,
  • • snapshot przed zmianą konfiguracji sieci.
0

Rejestracja stanu przed laboratorium

Przed instalacją Kea i zmianą trybu kart zapisz stan każdej VM. Na serwerze zapisz dodatkowo stan jednostki kea-dhcp4-server. Wynik not-found jest prawidłowy, jeśli pakiet nie był jeszcze zainstalowany.

STATE="$HOME/lab02-state"
umask 077
mkdir -p "$STATE"
ip -br link > "$STATE/link.before"
ip -br address > "$STATE/address.before"
ip route show table all > "$STATE/routes.before"
cp -a /etc/resolv.conf "$STATE/resolv.conf.before"

if sudo test -e /etc/network/interfaces; then
  printf 'present
' > "$STATE/interfaces.marker"
  sudo cp -a /etc/network/interfaces "$STATE/interfaces.before"
else
  printf 'absent
' > "$STATE/interfaces.marker"
fi

# Tylko na serwerze, przed instalacją pakietu
systemctl is-active kea-dhcp4-server > "$STATE/kea.active" || true
systemctl is-enabled kea-dhcp4-server > "$STATE/kea.enabled" || true

Na hoście zapisz ustawienia adapterów wszystkich trzech VM: numer, tryb, nazwę sieci i stan kabla. Snapshot może być dodatkowym zabezpieczeniem, ale nie jest backupem. Oczekiwany rezultat to trzy katalogi stanu i zapis ustawień VirtualBox, wykonane przed przejściem do lab-dhcp.

4

Topologia sieci

Wszystkie maszyny używają sieci lab-dhcp. Serwer ma statyczny adres 192.168.60.1/24, a klienty pobierają adresy automatycznie z puli DHCP.

Sieć: 192.168.60.0/24
Serwer: 192.168.60.1/24
Pula DHCP: 192.168.60.100 - 192.168.60.150
Internal Network: lab-dhcp
Debian DHCP Server oraz dwa klienty w tej samej sieci Internal Network lab-dhcp.
5

Krótkie wyjaśnienie DHCP

DHCP automatycznie przekazuje klientowi konfigurację sieciową. Lease oznacza dzierżawę adresu: klient dostaje IPv4 na określony czas, a serwer zapisuje informację o przydziale.

6

Proces DORA

Podstawowa wymiana DHCP składa się z czterech komunikatów. W tym laboratorium wystarczy znać ich kolejność i sens.

Client
   |
DHCPDISCOVER
   ↓
DHCP Server
   |
DHCPOFFER
   ↓
Client
   |
DHCPREQUEST
   ↓
DHCP Server
   |
DHCPACK
   ↓
Client otrzymuje konfigurację
7

Przygotowanie Debian DHCP Server

Serwer DHCP musi mieć wcześniej skonfigurowany statyczny adres 192.168.60.1/24. Najpierw sprawdź nazwę interfejsu.

ip link show
ip address show
Serwer DHCP musi mieć stały adres przed uruchomieniem usługi.
8

Konfiguracja Internal Network

Wyłącz wszystkie trzy maszyny. W ustawieniach sieci VirtualBox ustaw adapter każdej VM jako Internal Networki wpisz dokładnie tę samą nazwę: lab-dhcp.

9

Statyczny IPv4 serwera

Debian może używać różnych mechanizmów konfiguracji sieci. Zgodnie z wcześniejszym scenariuszem Debian bez GUI wybieramy prosty wariant z plikiem /etc/network/interfaces. Nazwę interfejsu zastąp wartością odczytaną z systemu.

auto <interfejs>
iface <interfejs> inet static
    address 192.168.60.1/24
10

Instalacja Kea DHCP4

Po ustawieniu statycznego adresu serwera zainstaluj pakiet Kea DHCP4. Ten materiał nie używa isc-dhcp-server.

sudo apt update
sudo apt install kea-dhcp4-server

Po instalacji, ale przed pierwszą edycją, zachowaj konfigurację dostarczoną przez pakiet lub istniejącą wcześniej.

STATE="$HOME/lab02-state"
sudo cp -a /etc/kea/kea-dhcp4.conf "$STATE/kea-dhcp4.conf.before-edit"
Instalacja serwera Kea DHCP4 z repozytorium Debian Stable.
11

Konfiguracja Kea

Debianowy pakiet Kea DHCP4 dostarcza plik /etc/kea/kea-dhcp4.conf. W przykładzie jawnie ustawiamy interfejs, bazę lease typu memfile i jedną podsieć.

sudo nano /etc/kea/kea-dhcp4.conf
Plik konfiguracyjny Kea DHCP4: /etc/kea/kea-dhcp4.conf.
12

Definicja podsieci

W konfiguracji Kea sekcja subnet4 opisuje sieć, z której serwer obsługuje klientów. Dla tego laboratorium jest to przykładowa sieć 192.168.60.0/24.

{
  "Dhcp4": {
    "interfaces-config": {
      "interfaces": [ "<interfejs-serwera>" ]
    },
    "lease-database": {
      "type": "memfile",
      "persist": true,
      "name": "/var/lib/kea/dhcp4.leases"
    },
    "valid-lifetime": 3600,
    "renew-timer": 900,
    "rebind-timer": 1800,
    "subnet4": [
      {
        "id": 1,
        "subnet": "192.168.60.0/24",
        "pools": [
          { "pool": "192.168.60.100 - 192.168.60.150" }
        ]
      }
    ]
  }
}
13

Definicja puli DHCP

Pula 192.168.60.100 - 192.168.60.150 należy do tej samej podsieci 192.168.60.0/24. Klient może dostać dowolny wolny adres z tej puli, więc nie zakładaj z góry konkretnej końcówki.

14

Walidacja konfiguracji

Przed restartem usługi sprawdź składnię konfiguracji poleceniem kea-dhcp4 -t. Polecenie zwraca kod wyjścia 0, gdy konfiguracja wygląda poprawnie.

sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf
Sprawdzenie pliku konfiguracyjnego przed restartem usługi.
15

Uruchomienie usługi

Po poprawnej walidacji włącz usługę Kea DHCP4. Nazwa usługi w pakiecie Debian to kea-dhcp4-server.

sudo systemctl enable --now kea-dhcp4-server
sudo systemctl restart kea-dhcp4-server
16

Sprawdzenie statusu

Sprawdź status i najnowsze logi. W logach szukaj informacji o starcie usługi, błędach konfiguracji i obsłudze zapytań klientów.

systemctl status kea-dhcp4-server
journalctl -u kea-dhcp4-server -n 50 --no-pager
Kontrola usługi i logów Kea DHCP4.
17

Przygotowanie Client 1

Client 1 ma używać adaptera Internal Network o nazwie lab-dhcp i pobierać IPv4 przez DHCP. Dla spójności ćwiczenia użyj mechanizmu/etc/network/interfaces.

auto <interfejs>
iface <interfejs> inet dhcp
Client 1 używa DHCP w sieci Internal Network lab-dhcp.
18

Przygotowanie Client 2

Client 2 konfigurujesz tak samo jak Client 1. Nie wpisuj adresu ręcznie i nie zakładaj, który adres z puli zostanie przydzielony.

auto <interfejs>
iface <interfejs> inet dhcp
Client 2 pobiera adres z tej samej puli DHCP.
19

Pobranie konfiguracji przez DHCP

W tym wariancie klient korzysta z konfiguracji/etc/network/interfaces, więc najprościej zastosować zmianę przez restart maszyny albo restart właściwego interfejsu zgodnie z zasadami stanowiska. Nie zakładamy obecności narzędziadhclient.

20

Sprawdzenie adresów klientów

Na każdym kliencie sprawdź adres i routing. Adres drugiego klienta potrzebny do testów ping odczytaj z systemu.

ip link show
ip address show
ip route show
21

Sprawdzenie lease

W tym przykładzie konfigurujemy memfile lease database jako /var/lib/kea/dhcp4.leases, czyli plik dhcp4.leases w katalogu danych Kea. Student powinien zobaczyć przydzielony IPv4, klienta, czas dzierżawy oraz identyfikator klienta lub MAC, jeżeli jest zapisany w pliku.

sudo tail -n 20 /var/lib/kea/dhcp4.leases
Lease to dzierżawa adresu zapisana przez Kea DHCP4.
22

Ping Client → Server

Na każdym kliencie przetestuj komunikację z serwerem DHCP.

ping -c 4 192.168.60.1
Test komunikacji klienta z adresem serwera 192.168.60.1.
23

Ping Client 1 → Client 2

Odczytaj adres Client 2 z ip address show, a następnie wykonaj ping z Client 1. Potem powtórz test w drugą stronę.

# Client 1 → Client 2
ping -c 4 <adres-client-2>

# Client 2 → Client 1
ping -c 4 <adres-client-1>
Adres drugiego klienta odczytaj z ip address show.
24

Diagnostyka

Problemy z DHCP i elementy do sprawdzenia
ProblemSprawdź
Klient nie otrzymuje adresu DHCPwszystkie VM używają dokładnie lab-dhcp, serwer ma 192.168.60.1/24, interfejs serwera jest UP, Kea działa, Kea nasłuchuje na właściwym interfejsie, konfiguracja jest poprawna, pula 192.168.60.100–192.168.60.150 należy do 192.168.60.0/24, klient korzysta z DHCP, kabel VirtualBox jest podłączony
Klient otrzymał IPv4, ale ping nie działaprefix, stan interfejsu, tablicę routingu, firewall, konflikt adresów, poprawność sieci VirtualBox
25

Zadania dla studenta

  1. A. Zmień pulę DHCP na 192.168.60.120–192.168.60.140 i odśwież lease klientów.
  2. B. Sprawdź nowo otrzymane adresy.
  3. C. Zmień czas lease i sprawdź zachowanie klienta.
  4. D. Dodaj Client 3 i sprawdź jego adres.
  5. E. Na Client 2 ustaw błędną nazwę Internal Network, zaobserwuj problem i go zdiagnozuj.
  6. F. Dodaj jako rozszerzenie opcję DNS do konfiguracji DHCP bez wymagania faktycznego serwera DNS.
26

Pytania kontrolne

  1. Do czego służy DHCP?
  2. Czym jest lease?
  3. Dlaczego serwer DHCP powinien mieć statyczny adres?
  4. Co oznacza prefix /24?
  5. Czym różni się DHCPDISCOVER od DHCPOFFER?
  6. Dlaczego w lab-dhcp nie potrzebujemy bramy do komunikacji lokalnej?
  7. Dlaczego adresów klientów nie należy zakładać z góry?
  8. Co może się wydarzyć, gdy w jednej sieci działają dwa niezależne serwery DHCP?
27

Podsumowanie

Masz serwer Kea DHCP4 na Debian Stable, dwie maszyny klienckie w sieci lab-dhcp, działającą pulę adresów i podstawowy zestaw testów obejmujący lease, routing oraz ping.

R

Cofnięcie Kea, interfejsów i usług

Wykonaj tę procedurę po zebraniu wyników. Użyj lokalnej konsoli VirtualBox, ponieważ restart sieci może przerwać SSH. Najpierw na serwerze zatrzymaj Kea, odtwórz kopię konfiguracji i sprawdź jej składnię przed przywróceniem początkowego stanu usługi.

STATE="$HOME/lab02-state"
sudo systemctl stop kea-dhcp4-server
sudo cp -a "$STATE/kea-dhcp4.conf.before-edit" /etc/kea/kea-dhcp4.conf
sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf

ENABLED=$(cat "$STATE/kea.enabled")
ACTIVE=$(cat "$STATE/kea.active")

case "$ENABLED" in
  enabled|enabled-runtime) sudo systemctl unmask kea-dhcp4-server; sudo systemctl enable kea-dhcp4-server ;;
  disabled) sudo systemctl unmask kea-dhcp4-server; sudo systemctl disable kea-dhcp4-server ;;
  masked) sudo systemctl disable kea-dhcp4-server; sudo systemctl mask kea-dhcp4-server ;;
  not-found) sudo systemctl disable kea-dhcp4-server ;;
  static|indirect|generated|transient|alias) : ;;
  *) echo "Nietypowy stan enabled: $ENABLED — odtwórz go świadomie" ;;
esac

case "$ACTIVE" in
  active|reloading) sudo systemctl start kea-dhcp4-server ;;
  inactive|failed|unknown) sudo systemctl stop kea-dhcp4-server ;;
  *) echo "Nietypowy stan active: $ACTIVE — odtwórz go świadomie" ;;
esac

systemctl is-enabled kea-dhcp4-server || true
systemctl is-active kea-dhcp4-server || true
journalctl -u kea-dhcp4-server -n 30 --no-pager

Na serwerze i klientach przywróć ich własne kopie interfaces.before, a następnie przeładuj ifupdown.

STATE="$HOME/lab02-state"

if grep -qx present "$STATE/interfaces.marker"; then
  sudo cp -a "$STATE/interfaces.before" /etc/network/interfaces
else
  # UWAGA: usuń plik tylko wtedy, gdy marker potwierdza jego wcześniejszy brak.
  sudo rm -- /etc/network/interfaces
fi

sudo cp -a --remove-destination "$STATE/resolv.conf.before" /etc/resolv.conf
sudo systemctl restart networking
ip -br address
ip route show table all
cat /etc/resolv.conf

Na klientach odnowienie konfiguracji wykonaj przezsudo ifdown --force <interfejs>, a następnie sudo ifup <interfejs>. Porównaj adres, trasę i DNS z zapisanym stanem. Odtwórz też dokładne ustawienia kart VirtualBox. Nie usuwaj automatycznie /var/lib/kea/dhcp4.leases: zawiera historię dzierżaw, a jej skasowanie nie jest potrzebne do rollbacku. Pakiet Kea pozostaje zainstalowany; jego odinstalowanie jest osobną, opcjonalną decyzją administracyjną.

Kontynuuję Lab 03: najpierw zakończ rollback, zachowaj katalogi stanu i dopiero zbuduj dwie sieci routowane. Kończę ćwiczenia: po zgodnej walidacji możesz usunąć katalogi stanu. Procedura nie usuwa innych konfiguracji Kea, obcych dzierżaw ani pakietów.

Początkowego stanu failed nie wywołuj ponownie: pozostaw usługę zatrzymaną i odnotuj różnicę w raporcie. Taki stan oznacza wcześniejszy problem, a nie poprawny cel rollbacku.

Elementy do raportu

Zapisz nazwę interfejsu serwera, fragment konfiguracji Kea, adresy klientów, wynik lease, ping do serwera i ping między klientami.

Sprawdzenie końcowe

Jeżeli oba klienty mają adresy z puli i ping działa w obu kierunkach, podstawowa konfiguracja DHCP jest poprawna.

Uwaga o adresacji

Sieć 192.168.60.0/24, adres serwera i pula DHCP są przykładami laboratoryjnymi. Nie używaj ich bez sprawdzenia planu adresacji w rzeczywistej sieci.