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.
VirtualBox · Debian Stable · Kea DHCP4
Skonfiguruj serwer Kea DHCP4 w izolowanej sieci lab-dhcp i sprawdź, jak dwa klienty pobierają adresację IPv4 z jednej puli.
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.
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" || trueNa 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.
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-dhcpDHCP automatycznie przekazuje klientowi konfigurację sieciową. Lease oznacza dzierżawę adresu: klient dostaje IPv4 na określony czas, a serwer zapisuje informację o przydziale.
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ęSerwer DHCP musi mieć wcześniej skonfigurowany statyczny adres 192.168.60.1/24. Najpierw sprawdź nazwę interfejsu.
ip link show
ip address showWyłącz wszystkie trzy maszyny. W ustawieniach sieci VirtualBox ustaw adapter każdej VM jako Internal Networki wpisz dokładnie tę samą nazwę: lab-dhcp.
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/24Po ustawieniu statycznego adresu serwera zainstaluj pakiet Kea DHCP4. Ten materiał nie używa isc-dhcp-server.
sudo apt update
sudo apt install kea-dhcp4-serverPo 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"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.confW 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" }
]
}
]
}
}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.
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.confPo 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-serverSprawdź 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-pagerClient 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 dhcpClient 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 dhcpW 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.
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 showW 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.leasesNa każdym kliencie przetestuj komunikację z serwerem DHCP.
ping -c 4 192.168.60.1Odczytaj 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>| Problem | Sprawdź |
|---|---|
| Klient nie otrzymuje adresu DHCP | wszystkie 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ła | prefix, stan interfejsu, tablicę routingu, firewall, konflikt adresów, poprawność sieci VirtualBox |
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.
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-pagerNa 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.confNa 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.
Zapisz nazwę interfejsu serwera, fragment konfiguracji Kea, adresy klientów, wynik lease, ping do serwera i ping między klientami.
Jeżeli oba klienty mają adresy z puli i ping działa w obu kierunkach, podstawowa konfiguracja DHCP jest poprawna.
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.