Aggiunto kea-dhcp-server
Some checks failed
Update Docker Hub Description / dockerHubDescription (push) Failing after 2s
Some checks failed
Update Docker Hub Description / dockerHubDescription (push) Failing after 2s
This commit is contained in:
@@ -3,7 +3,8 @@
|
|||||||
FROM debian:13.2-slim
|
FROM debian:13.2-slim
|
||||||
|
|
||||||
## https://github.com/isc-projects/dhcp/tags
|
## https://github.com/isc-projects/dhcp/tags
|
||||||
ENV dhcpV="isc-dhcp-server=4.4.3-P1-8"
|
ENV dhcpV4="kea-dhcp4-server=2.6.3-1"
|
||||||
|
ENV dhcpV6="kea-dhcp6-server=2.6.3-1"
|
||||||
|
|
||||||
LABEL org.opencontainers.image.authors="rardcode <vagnu00@gmx.com>"
|
LABEL org.opencontainers.image.authors="rardcode <vagnu00@gmx.com>"
|
||||||
LABEL Description="Dhcp server based on Debian."
|
LABEL Description="Dhcp server based on Debian."
|
||||||
@@ -28,7 +29,7 @@ RUN set -xe && \
|
|||||||
: "---------- SPECIFIC packages INSTALLATION ----------" \
|
: "---------- SPECIFIC packages INSTALLATION ----------" \
|
||||||
&& apt-get -q -y update \
|
&& apt-get -q -y update \
|
||||||
&& apt-get -q -y -o "DPkg::Options::=--force-confold" -o "DPkg::Options::=--force-confdef" install \
|
&& apt-get -q -y -o "DPkg::Options::=--force-confold" -o "DPkg::Options::=--force-confdef" install \
|
||||||
$dhcpV \
|
$dhcpV4 $dhcpV6 \
|
||||||
&& apt-get -q -y autoremove \
|
&& apt-get -q -y autoremove \
|
||||||
&& apt-get -q -y clean \
|
&& apt-get -q -y clean \
|
||||||
&& rm -rf /var/lib/apt/lists/*
|
&& rm -rf /var/lib/apt/lists/*
|
||||||
@@ -36,6 +37,4 @@ RUN set -xe && \
|
|||||||
ADD rootfs /
|
ADD rootfs /
|
||||||
|
|
||||||
ENTRYPOINT ["/entrypoint.sh"]
|
ENTRYPOINT ["/entrypoint.sh"]
|
||||||
CMD ["/usr/sbin/dhcpd", "-4", "-f", "-d", "--no-pid", "-cf", "/data/dhcpd4.conf", "-lf", "/data/dhcpd4.leases", "-user", "dhcpd", "-group", "dhcpd"]
|
CMD ["kea-dhcp4", "-c", "/var/lib/kea/kea-dhcp4.conf"]
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
20
README.md
20
README.md
@@ -1,9 +1,9 @@
|
|||||||
# Dhcp
|
# Kea-Dhcp
|
||||||
Dhcp server based on Debian.
|
Dhcp server based on Debian.
|
||||||
|
|
||||||
## Quick reference
|
## Quick reference
|
||||||
* Where to file issues:
|
* Where to file issues:
|
||||||
[Gitea](https://git.gmmg.it/kom23/dhcp/issues)
|
[Gitea](https://git.gmmg.it/kom23/kea-dhcp/issues)
|
||||||
|
|
||||||
* Supported architectures: amd64 , armv7 , arm64v8
|
* Supported architectures: amd64 , armv7 , arm64v8
|
||||||
|
|
||||||
@@ -14,27 +14,27 @@ Dhcp server based on Debian.
|
|||||||
```
|
```
|
||||||
docker run --rm -d \
|
docker run --rm -d \
|
||||||
--net host \
|
--net host \
|
||||||
-v ./data:/data \
|
-v ./data:/var/lib/kea \
|
||||||
-e DHCP4=1 -e DHCP6=0 -e TZ=Europe/Rome \
|
-e DHCP4=1 -e DHCP6=0 -e TZ=Europe/Rome \
|
||||||
--name dhcp rardcode/dhcp
|
--name dhcp rardcode/kea-dhcp
|
||||||
```
|
```
|
||||||
|
|
||||||
### ...by docker-compose file:
|
### ...by docker-compose file:
|
||||||
```
|
```
|
||||||
services:
|
services:
|
||||||
dhcp:
|
kea-dhcp:
|
||||||
image: rardcode/dhcp
|
image: rardcode/kea-dhcp
|
||||||
container_name: dhcp
|
container_name: kea-dhcp
|
||||||
environment:
|
environment:
|
||||||
- TZ=Europe/Rome
|
- TZ=Europe/Rome
|
||||||
#- DHCP4=0 # (decomment for disable DHCPv4 server, default enabled|1)
|
#- DHCP4=0 # (decomment for disable DHCPv4 server, default enabled|1)
|
||||||
#- DHCP6=1 # (enable DHCPv6 server, default disabled|0)
|
#- DHCP6=1 # (enable DHCPv6 server, default disabled|0)
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/data
|
- ./data:/var/lib/kea
|
||||||
network_mode: host
|
network_mode: host
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
```
|
```
|
||||||
## Changelog
|
## Changelog
|
||||||
v132.443p18 - 02.01.2026
|
v132.2361 - 13.01.2026
|
||||||
- Debian v13.2
|
- Debian v13.2
|
||||||
- isc-dhcp-server v4.4.3-P1-8
|
- kea-dhcp-server v2.6.3-1
|
||||||
|
|||||||
10
compose.yml
10
compose.yml
@@ -1,15 +1,15 @@
|
|||||||
|
|
||||||
# https://hub.docker.com/repository/docker/rardcode/dhcp/tags
|
# https://hub.docker.com/repository/docker/rardcode/kea-dhcp/tags
|
||||||
|
|
||||||
services:
|
services:
|
||||||
dhcp:
|
kea-dhcp:
|
||||||
image: rardcode/dhcp
|
image: rardcode/kea-dhcp
|
||||||
container_name: dhcp
|
container_name: kea-dhcp
|
||||||
environment:
|
environment:
|
||||||
- TZ=Europe/Rome
|
- TZ=Europe/Rome
|
||||||
#- DHCP4=0 # (decomment for disable DHCPv4 server, default enabled|1)
|
#- DHCP4=0 # (decomment for disable DHCPv4 server, default enabled|1)
|
||||||
#- DHCP6=1 # (enable DHCPv6 server, default disabled|0)
|
#- DHCP6=1 # (enable DHCPv6 server, default disabled|0)
|
||||||
volumes:
|
volumes:
|
||||||
- ./data:/data
|
- ./data:/var/lib/kea
|
||||||
network_mode: host
|
network_mode: host
|
||||||
restart: unless-stopped
|
restart: unless-stopped
|
||||||
|
|||||||
@@ -30,19 +30,12 @@ done
|
|||||||
}
|
}
|
||||||
|
|
||||||
function _main {
|
function _main {
|
||||||
[ -e "/data/dhcpd4.conf" ] || cp "/template/dhcpd4.conf" "/data/"
|
[ ! -e /var/run/kea ] && mkdir -p /var/run/kea
|
||||||
[ -e "/data/dhcpd6.conf" ] || cp "/template/dhcpd6.conf" "/data/"
|
[ -e "/var/lib/kea/kea-dhcp4.conf" ] || cp "/template/kea-dhcp4.conf" "/var/lib/kea/"
|
||||||
[ -e "/data/dhcpd4.leases" ] || touch "/data/dhcpd4.leases"
|
[ -e "/var/lib/kea/kea-dhcp6.conf" ] || cp "/template/kea-dhcp6.conf" "/var/lib/kea/"
|
||||||
[ -e "/data/dhcpd6.leases" ] || touch "/data/dhcpd6.leases"
|
export CMDv6="kea-dhcp6 -c /var/lib/kea/kea-dhcp6.conf"
|
||||||
useradd dhcpd
|
|
||||||
uid=$(id -u dhcpd)
|
|
||||||
gid=$(id -g dhcpd)
|
|
||||||
chown -R dhcpd: "/data/dhcpd4.leases" "/data/dhcpd6.leases"
|
|
||||||
|
|
||||||
#export CMDv4="/usr/sbin/dhcpd -4 -f -d --no-pid -cf /data/dhcpd4.conf -lf /data/dhcpd4.leases -user dhcpd -group dhcpd"
|
chown -R _kea: "/var/lib/kea"
|
||||||
export CMDv6="/usr/sbin/dhcpd -6 -f -d --no-pid -cf /data/dhcpd6.conf -lf /data/dhcpd6.leases -user dhcpd -group dhcpd"
|
|
||||||
|
|
||||||
chown -R dhcpd: "/data"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
custom_bashrc() {
|
custom_bashrc() {
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
|
|
||||||
# 3600 = 1 hour
|
|
||||||
# 86400 = 1 day
|
|
||||||
# 604800 = 1 week
|
|
||||||
# 2419200 = 1 month
|
|
||||||
|
|
||||||
default-lease-time 604800;
|
|
||||||
max-lease-time 2419200;
|
|
||||||
log-facility local7;
|
|
||||||
|
|
||||||
## assign 10.10.10.x/24 address (ex 10.10.10.1) to the interface from which you want to propagate the dhcp.
|
|
||||||
subnet 10.10.10.0 netmask 255.255.255.0 {
|
|
||||||
|
|
||||||
## dhcp inclusion range
|
|
||||||
range 10.10.10.50 10.10.10.200;
|
|
||||||
|
|
||||||
ddns-domainname "domain.com";
|
|
||||||
option domain-name "domain.com";
|
|
||||||
option subnet-mask 255.255.255.0;
|
|
||||||
option broadcast-address 10.10.10.255;
|
|
||||||
option routers 10.10.10.145;
|
|
||||||
option domain-name-servers 10.10.10.131, 10.10.10.132;
|
|
||||||
option ntp-servers ntp;
|
|
||||||
option smtp-server mail;
|
|
||||||
# option time-offset -10000;
|
|
||||||
# option netbios-name-servers 192.168.111.5;
|
|
||||||
# default-lease-time 604800;
|
|
||||||
# max-lease-time 2419200;
|
|
||||||
# deny unknown-clients;
|
|
||||||
deny bootp;
|
|
||||||
deny duplicates;
|
|
||||||
deny declines;
|
|
||||||
|
|
||||||
## reservation
|
|
||||||
#host dsk01 {hardware ethernet bc:24:11:cf:a4:86; fixed-address 10.10.10.129;}
|
|
||||||
#host dsk02 {hardware ethernet dc:a6:32:d5:f3:f4; fixed-address 10.10.10.133;}
|
|
||||||
|
|
||||||
## deny from dhcp
|
|
||||||
class "ignored" {match substring (hardware, 1, 6); ignore booting;}
|
|
||||||
# subclass "ignored" 18:45:91:c3:d9:00;
|
|
||||||
# subclass "ignored" 18:45:91:c3:d9:00;
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
|
|
||||||
# 3600 = 1 hour
|
|
||||||
# 86400 = 1 day
|
|
||||||
# 604800 = 1 week
|
|
||||||
# 2419200 = 1 month
|
|
||||||
|
|
||||||
default-lease-time 2592000;
|
|
||||||
preferred-lifetime 604800;
|
|
||||||
option dhcp-renewal-time 3600;
|
|
||||||
|
|
||||||
option dhcp-rebinding-time 7200;
|
|
||||||
allow leasequery;
|
|
||||||
|
|
||||||
option dhcp6.name-servers 3ffe:501:ffff:100:200:ff:fe00:3f3e;
|
|
||||||
option dhcp6.domain-search "test.example.com","example.com";
|
|
||||||
|
|
||||||
option dhcp6.info-refresh-time 21600;
|
|
||||||
|
|
||||||
# Static definition (must be global)
|
|
||||||
#host myclient {
|
|
||||||
# dhcp6.client-id 00:01:00:01:00:04:93:e0:00:00:00:00:a2:a2;
|
|
||||||
#
|
|
||||||
# fixed-address6 3ffe:501:ffff:100::1234;
|
|
||||||
# fixed-prefix6 3ffe:501:ffff:101::/64;
|
|
||||||
#
|
|
||||||
# # Override of the global definitions,
|
|
||||||
# option dhcp6.name-servers 3ffe:501:ffff:100:200:ff:fe00:4f4e;
|
|
||||||
#}
|
|
||||||
|
|
||||||
|
|
||||||
#host otherclient {
|
|
||||||
# hardware ethernet 01:00:80:a2:55:67;
|
|
||||||
# fixed-address6 3ffe:501:ffff:100::4321;
|
|
||||||
#}
|
|
||||||
|
|
||||||
#subnet6 3ffe:501:ffff:100::/64 {
|
|
||||||
# range6 3ffe:501:ffff:100::10 3ffe:501:ffff:100::11;
|
|
||||||
#}
|
|
||||||
|
|
||||||
#subnet6 3ffe:501:ffff:102::/64 {
|
|
||||||
# range6 3ffe:501:ffff:102::10 3ffe:501:ffff:102::11;
|
|
||||||
#}
|
|
||||||
|
|
||||||
|
|
||||||
66
rootfs/template/kea-dhcp4.conf
Normal file
66
rootfs/template/kea-dhcp4.conf
Normal file
@@ -0,0 +1,66 @@
|
|||||||
|
{
|
||||||
|
"Dhcp4": {
|
||||||
|
"interfaces-config": {
|
||||||
|
"interfaces": [ "eth0" ]
|
||||||
|
},
|
||||||
|
|
||||||
|
"lease-database": {
|
||||||
|
"type": "memfile",
|
||||||
|
"persist": true,
|
||||||
|
"name": "/var/lib/kea/leases4.csv"
|
||||||
|
},
|
||||||
|
|
||||||
|
"valid-lifetime": 604800,
|
||||||
|
"renew-timer": 302400,
|
||||||
|
"rebind-timer": 453600,
|
||||||
|
"max-valid-lifetime": 2419200,
|
||||||
|
|
||||||
|
"subnet4": [
|
||||||
|
{
|
||||||
|
"id": 1,
|
||||||
|
"subnet": "10.10.10.0/24",
|
||||||
|
"pools": [
|
||||||
|
{ "pool": "10.10.10.50 - 10.10.10.200" }
|
||||||
|
],
|
||||||
|
"option-data": [
|
||||||
|
{ "name": "subnet-mask", "data": "255.255.255.0" },
|
||||||
|
{ "name": "routers", "data": "10.10.10.254" },
|
||||||
|
{ "name": "broadcast-address", "data": "10.10.10.255" },
|
||||||
|
{ "name": "domain-name-servers", "data": "10.10.10.131, 10.10.10.132" },
|
||||||
|
{ "name": "domain-name", "data": "domain.com" },
|
||||||
|
{ "name": "ntp-servers", "data": "10.10.10.254" },
|
||||||
|
{ "name": "smtp-server", "data": "10.10.10.254" }
|
||||||
|
],
|
||||||
|
"reservations": [
|
||||||
|
// {
|
||||||
|
// "hw-address": "bc:24:11:cf:a4:86",
|
||||||
|
// "ip-address": "10.10.10.129",
|
||||||
|
// "hostname": "dsk01"
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// "hw-address": "dc:a6:32:d5:f3:f4",
|
||||||
|
// "ip-address": "10.10.10.133",
|
||||||
|
// "hostname": "dsk02"
|
||||||
|
// }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
//"deny-clients": {
|
||||||
|
// "bootp": true
|
||||||
|
//},
|
||||||
|
|
||||||
|
"loggers": [
|
||||||
|
{
|
||||||
|
"name": "kea-dhcp4",
|
||||||
|
"output_options": [
|
||||||
|
{
|
||||||
|
"output": "stdout",
|
||||||
|
"pattern": "%d{%Y-%m-%d %H:%M:%S} %m"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"severity": "INFO"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
76
rootfs/template/kea-dhcp6.conf
Normal file
76
rootfs/template/kea-dhcp6.conf
Normal file
@@ -0,0 +1,76 @@
|
|||||||
|
{
|
||||||
|
"Dhcp6": {
|
||||||
|
"interfaces-config": {
|
||||||
|
"interfaces": [ "eth0" ]
|
||||||
|
},
|
||||||
|
|
||||||
|
"lease-database": {
|
||||||
|
"type": "memfile",
|
||||||
|
"persist": true,
|
||||||
|
"name": "/var/lib/kea/leases6.csv"
|
||||||
|
},
|
||||||
|
|
||||||
|
"valid-lifetime": 2592000,
|
||||||
|
"preferred-lifetime": 604800,
|
||||||
|
"renew-timer": 3600,
|
||||||
|
"rebind-timer": 7200,
|
||||||
|
|
||||||
|
"subnet6": [
|
||||||
|
// {
|
||||||
|
// "id": 1,
|
||||||
|
// "subnet": "3ffe:501:ffff:100::/64",
|
||||||
|
// "pools": [
|
||||||
|
// { "pool": "3ffe:501:ffff:100::10 - 3ffe:501:ffff:100::11" }
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// "subnet": "3ffe:501:ffff:102::/64",
|
||||||
|
// "pools": [
|
||||||
|
// { "pool": "3ffe:501:ffff:102::10 - 3ffe:501:ffff:102::11" }
|
||||||
|
// ]
|
||||||
|
// }
|
||||||
|
],
|
||||||
|
|
||||||
|
"option-data": [
|
||||||
|
{
|
||||||
|
"name": "dns-servers",
|
||||||
|
"data": "3ffe:501:ffff:100:200:ff:fe00:3f3e"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "domain-search",
|
||||||
|
"data": "test.example.com,example.com"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
|
||||||
|
"reservations": [
|
||||||
|
// {
|
||||||
|
// "dhcp6-client-id": "00:01:00:01:00:04:93:e0:00:00:00:00:a2:a2",
|
||||||
|
// "ip-addresses": ["3ffe:501:ffff:100::1234"],
|
||||||
|
// "prefixes": ["3ffe:501:ffff:101::/64"],
|
||||||
|
// "option-data": [
|
||||||
|
// {
|
||||||
|
// "name": "dns-servers",
|
||||||
|
// "data": "3ffe:501:ffff:100:200:ff:fe00:4f4e"
|
||||||
|
// }
|
||||||
|
// ]
|
||||||
|
// },
|
||||||
|
// {
|
||||||
|
// "dhcp6-client-id": "hardware-addr-01:00:80:a2:55:67",
|
||||||
|
// "ip-addresses": ["3ffe:501:ffff:100::4321"]
|
||||||
|
// }
|
||||||
|
],
|
||||||
|
|
||||||
|
"loggers": [
|
||||||
|
{
|
||||||
|
"name": "kea-dhcp6",
|
||||||
|
"output_options": [
|
||||||
|
{
|
||||||
|
"output": "stdout",
|
||||||
|
"pattern": "%d{%Y-%m-%d %H:%M:%S} %m"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"severity": "INFO"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user