Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
docker_notes:docker-dhcp [2024-07-21 Sun wk29 12:15] – [DNSSEC] baumkp | docker_notes:docker-dhcp [2025-06-08 Sun wk23 19:34] (current) – [main dhcp4] baumkp | ||
---|---|---|---|
Line 1: | Line 1: | ||
{{tag> | {{tag> | ||
- | ======Docker - DHCP Server====== | + | ======Docker - DHCP Kea Server====== |
Since mid 2023 I have been running a Docker ISC Kea Image using base Docker Alpine Linux images, with S6 init system. <fs x-small> | Since mid 2023 I have been running a Docker ISC Kea Image using base Docker Alpine Linux images, with S6 init system. <fs x-small> | ||
ISC also has a project for a simple GUI interface primarily for Kea and basic for Bind9. | ISC also has a project for a simple GUI interface primarily for Kea and basic for Bind9. | ||
- | ISC-Kea seems to be provided in a number of packages | + | =====History===== |
- | ^Package^Descriptiion^Comment^ | + | The article by Lee Hutchinson [[https:// |
- | |isc-kea-admin|This package provides backend database initialization and migration scripts and a DHCP benchmark tool. If you are not using a database backend, you may not need this.|Not using a database backend at this time| | + | *I makes the BIND9 file messy. |
- | |isc-kea-common|Common libraries for the ISC Kea DHCP server. Install this.|Need this.| | + | *One had to take greater care to freeze Bind9 when adjusting zone files as DHCP could be writing to it. With Bind in a Docker container, I just restart the container after adjusting the zone file. |
- | |isc-kea-ctrl-agent|This package provides the REST API service agent for Kea DHCP.|?| | + | *I just static IPv4 addresses for my main home server services and manually define the domain names in the Bind zone files where required. The dynamically defined DNS is simply not important for me. |
- | |isc-kea-dev|Development headers for ISC Kea DHCP server. Install if you plan to create any custom | + | |
- | |isc-kea-dhcp4-server|DHCPv4 server.|Need this.| | + | |
- | |isc-kea-dhcp6-server|DHCPv6 server.|Do not need at this time.| | + | |
- | |isc-kea-dhcp-ddns-server|DDNS server.|Need this.| | + | |
- | |isc-kea-doc|Kea documentation. Highly recommended.|On a Docker container? | + | |
- | |isc-kea-hook-flex-option|Flexible Options hook.|What is this?| | + | |
- | |isc-kea-hook-ha|High Availability hook.|What is this?| | + | |
- | |isc-kea-hook-lease-cmds|Lease Commands hook.|What is this?| | + | |
- | |isc-kea-hook-mysql-cb|MySQL Configuration Backend.|Dont need this at this time.| | + | |
- | |isc-kea-hook-pgsql-cb|PostgreSQL Configuration Backend.|Dont need this.| | + | |
- | |isc-kea-hook-stat-cmds|Statistics Commands hook.|?| | + | |
- | |isc-kea-http|This package is essential, install | + | |
- | |isc-kea-perfdhcp|Optional. Includes | + | |
- | |isc-kea-shell|Text client for Kea DHCP Control Agent.|?| | + | |
+ | There are more references on building a home router and related here: [[https:// | ||
+ | |||
+ | =====Kea Packages and Hooks===== | ||
+ | ISC-Kea seems to be provided in a number of [[https:// | ||
+ | ^ Package | ||
+ | | isc-kea | ||
+ | | isc-kea-admin | ||
+ | | isc-kea-common | ||
+ | | isc-kea-ctrl-agent | ||
+ | | isc-kea-dev | ||
+ | | isc-kea-dhcp4-server | X | DHCPv4 server. ('' | ||
+ | | isc-kea-dhcp6-server | ||
+ | | isc-kea-dhcp-ddns | ||
+ | | isc-kea-doc | ||
+ | | isc-kea-hook-flex-option | | Flexible Options hook. | What is this? | | ||
+ | | isc-kea-hook-ha | ||
+ | | isc-kea-hook-lease-cmds | X | Lease Commands hook. | What is this? | | ||
+ | | isc-kea-hook-mysql-cb | ||
+ | | isc-kea-hook-pgsql-cb | ||
+ | | isc-kea-hook-stat-cmds | ||
+ | | isc-kea-http | ||
+ | | isc-kea-perfdhcp | ||
+ | | isc-kea-shell | ||
+ | |||
+ | See [[https:// | ||
+ | |||
+ | *[[https:// | ||
+ | *[[https:// | ||
====Network Ports==== | ====Network Ports==== | ||
From IANA Service Name and Transport Protocol Port online [[https:// | From IANA Service Name and Transport Protocol Port online [[https:// | ||
Line 36: | Line 52: | ||
====DHCP testing==== | ====DHCP testing==== | ||
- | '' | + | '' |
===Reference=== | ===Reference=== | ||
Line 52: | Line 69: | ||
*'' | *'' | ||
*The '' | *The '' | ||
+ | *It makes more sense in this case to use a hard link as docker can not resolve the soft link. A hard link only works on the same device, but this should not be an issue with Docker volume command, as a hard linked file is the same as any other regular file in the same directory. | ||
The plus configuration allows a secondary backup dhcp server to be operated.++++ | The plus configuration allows a secondary backup dhcp server to be operated.++++ | ||
+ | |||
+ | *Kea Docs [[https:// | ||
+ | |||
*'' | *'' | ||
+ | ++++Upgrade problem to 2.6.0 with dhcp4 parameter id in subnet configuration, | ||
+ | I had a problem when upgrading to to Kea 2.6.0 that stopped kea-dhcp4 operating with an error '' | ||
+ | |||
+ | ++++Upgrade problems from Kea 2.6.2 to 2.6.3, yet again broken or perhaps enforced configuration backwards compatibility, | ||
+ | The socket files **must** now be in ''/ | ||
+ | |||
+ | I previously used a general docker volume director directive to place all my configuration files into /app and then configured from there as required. | ||
+ | #" | ||
+ | #Kea 2.6.3 requires / | ||
+ | " | ||
+ | |||
+ | " | ||
+ | " | ||
+ | |||
+ | Symlinking did not seem to work: / | ||
+ | ++++ | ||
====ctrl-agent -t / | ====ctrl-agent -t / | ||
*'' | *'' | ||
Line 62: | Line 99: | ||
====Kea logging==== | ====Kea logging==== | ||
- | *[[https:// | + | *[[https:// |
I have stored log files in the .config directory that is a Docker mounted volume for persistence and easy external viewing outside container. | I have stored log files in the .config directory that is a Docker mounted volume for persistence and easy external viewing outside container. | ||
* '' | * '' | ||
Line 76: | Line 113: | ||
- | =====DNSSEC===== | ||
- | My local DNS server is a recursive caching type only. It take local (LAN) DNS queries and answers directly for any LAN name resolution, checks the cache for any external name resolution and then if not found locally or in cache checks the specified external DNS servers to resolve names. | ||
- | |||
- | For external name resolution Bind9 basically now defaults to automatic use of DNSSEC. | ||
- | *'' | ||
- | *'' | ||
- | |||
- | Equally important the following commands helps confirm that invalid DNS queries have failed and do not rerun invalid IP address, which would be security risk. If '' | ||
- | |||
- | Basic Bind9 DNSSEC configuration options | ||
- | * The option (in ''/ | ||
- | * The option '' | ||
- | |||
- | <fc # | ||
- | |||
- | ====reference==== | ||
- | *[[https:// | ||
- | *[[https:// | ||
- | *[[https:// | ||
- | *[[https:// | ||
- | ++++ old references | | ||
- | *[[https:// | ||
- | *[[https:// | ||
- | ++++ | ||
- | =====DNS over TLS (DoT)===== | ||
=====References===== | =====References===== | ||
*KPTree.net' | *KPTree.net' | ||
Line 110: | Line 122: | ||
*[[https:// | *[[https:// | ||
*[[https:// | *[[https:// | ||
+ | *[[https:// | ||
+ | Kea read the docs [[https:// | ||
- | <- docker_notes: | + | <- docker_notes: |