plugin/dynupdate: add durable authenticated RFC 2136 updates (#8520)

* plugin/dynupdate: add authenticated RFC 2136 updates

Signed-off-by: houyuwushang <liuluoqianqiu@outlook.com>

* plugin/dynupdate: fix README test fixtures

Signed-off-by: houyuwushang <liuluoqianqiu@outlook.com>

* test: format README fixture map

Signed-off-by: houyuwushang <liuluoqianqiu@outlook.com>

* plugin/dynupdate: persist updates and bound writable zones

Signed-off-by: houyuwushang <liuluoqianqiu@outlook.com>

* plugin/dynupdate: preserve middleware and fix interoperability fixtures

Signed-off-by: houyuwushang <liuluoqianqiu@outlook.com>

* test(dynupdate): validate Kea lifecycle and bounded zone costs

Signed-off-by: houyuwushang <liuluoqianqiu@outlook.com>

* plugin/dynupdate: reject duplicate directives and harden client fixtures

Signed-off-by: houyuwushang <liuluoqianqiu@outlook.com>

* plugin/dynupdate: fix update routing and startup validation

Signed-off-by: houyuwushang <liuluoqianqiu@outlook.com>

---------

Signed-off-by: houyuwushang <liuluoqianqiu@outlook.com>
This commit is contained in:
houyuwushang
2026-09-22 15:53:26 +08:00
committed by GitHub
parent 8d66643935
commit 5aa4dc2941
24 changed files with 4326 additions and 1 deletions

View File

@@ -112,7 +112,24 @@ jobs:
- name: Build
run: go build -v ./...
- name: Install clients for DDNS interoperability tests
run: |
sudo apt-get update
sudo apt-get install -y --no-install-recommends bind9-dnsutils kea-dhcp-ddns-server
nsupdate -V
kea-dhcp-ddns -v
# Keep the distribution AppArmor profile and use its allowed paths.
sudo systemctl stop kea-dhcp-ddns-server
sudo install -d -m 0700 -o "$(id -u)" -g "$(id -g)" /etc/kea/coredns-tests
sudo install -d -m 0755 -o "$(id -u)" -g "$(id -g)" /run/kea
sudo install -m 0600 -o "$(id -u)" -g "$(id -g)" /dev/null /run/kea/logger_lockfile
test ! -e /run/kea/kea-dhcp-ddns.kea-dhcp-ddns.pid
- name: Test
env:
COREDNS_KEA_CONFIG_DIR: /etc/kea/coredns-tests
KEA_PIDFILE_DIR: /run/kea
KEA_LOCKFILE_DIR: /run/kea
run: |
( cd test; go test -race ./... )