-
Notifications
You must be signed in to change notification settings - Fork 0
Testbed
testbed/ boots a containerized ISC Kea on two simulated VLANs and drives real
DHCP transactions against it, so you can verify EZ-Kea's changes actually reach
a DHCP server — without touching your own network.
Requires Docker with the Compose plugin.
From the repo root:
docker compose -f testbed/docker-compose.yml up -d
bash start_testbed.shstart_testbed.sh sources the committed .env.testbed and starts EZ-Kea
already pointed at the testbed. The Docker deployment fields under Global
Settings come pre-populated, and "Apply Changes" reloads the containerized
Kea over SIGHUP.
cd testbed && bash test_suite.shIt exercises pool allocation, MAC reservations, DHCP option delivery (DNS, NTP,
and a TR-069 ACS URL via vendor-encapsulated-options), and pool exhaustion,
end to end against the real daemon.
Two client containers are attached to vlan10 and vlan20:
cd testbed && ./run_clients.shThis runs udhcpc on each client and prints the resulting kea-leases4.csv.
To test a specific reservation, change a client's MAC in
testbed/docker-compose.yml and re-run.
Host paths — what EZ-Kea itself reads and writes:
DHCP_CONFIG_FILE=./testbed/data/etc/kea/kea-dhcp4.conf
DHCP_LEASES_FILE=./testbed/data/var/lib/kea/kea-leases4.csv
DHCP_LOG_FILE=./testbed/data/var/log/kea-dhcp4.log
BACKUP_DIR=./testbed/data/backups/Kea commands, so syntax checks and reloads reach the container:
KEA_DHCP4_CMD="docker exec kea-testbed-kea-1 kea-dhcp4"
KEA_CTRL_CMD="docker exec kea-testbed-kea-1 keactrl"In-container paths, because the binary runs in the container's own filesystem namespace where the host paths above don't exist:
DHCP_CONFIG_FILE_IN_CONTAINER=/etc/kea/kea-dhcp4.conf
DHCP_LOG_FILE_IN_CONTAINER=/var/log/kea-dhcp4.logkeactrl reload fails in this testbed. keactrl requires
/etc/kea/keactrl.conf, which isn't mounted into the container. Use the SIGHUP
strategy instead:
KEA_RELOAD_STRATEGY=sighup
KEA_DOCKER_CONTAINER=kea-testbed-kea-1Write your own config and Kea answers nothing. The committed
kea-dhcp4.conf.example sets interfaces-config to eth0, eth1, eth2 —
the three simulated VLAN interfaces attached to the container. A config written
from scratch without that starts Kea with no interfaces configured at all, and
it silently ignores DHCP traffic on every VLAN.
Full details in testbed/README.md.
Setup
Operating
Development
Repository · Live demo · Issues
Free for noncommercial use · commercial licensing