ddns only notifies first dns-server in list and ignores second server
When specifying more than one dns-server in a ddns-domain, only the first server is notified about changes.
This is the config I'm using:
{
"DhcpDdns": {
"ip-address": "127.0.0.1",
"port": 53001,
"control-socket": {
"socket-type": "unix",
"socket-name": "/tmp/kea-ddns-ctrl-socket"
},
"tsig-keys": [
{
"name": "key.sq.gl.",
"algorithm": "HMAC-SHA256",
"secret": "xxxxxx"
},
{
"name": "DHCP_UPDATER",
"algorithm": "HMAC-MD5",
"secret": "xxxxxx"
}
],
"forward-ddns": {
"ddns-domains": [
{
"name": "pink.example.org.",
"dns-servers": [
{
"ip-address": "10.158.0.99",
"port": 53,
"key-name": "key.sq.gl."
},
{
"ip-address": "10.158.0.102",
"port": 53,
"key-name": "DHCP_UPDATER"
}
]
}
]
},
"reverse-ddns": {
"ddns-domains": [
{
"name": "32.144.10.in-addr.arpa.",
"dns-servers": [
{
"ip-address": "10.158.0.99",
"port": 53,
"key-name": "key.sq.gl."
},
{
"ip-address": "10.158.0.102",
"port": 53,
"key-name": "DHCP_UPDATER"
}
]
}
]
},
"loggers": [
{
"name": "kea-dhcp-ddns",
"output_options": [
{
"output": "stdout",
"pattern": "%-5p %m\n"
}
],
"severity": "DEBUG",
"debuglevel": 99
}
]
}
}
When a DHCP client in the relevant zone appears, I get the following in the log:
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: DEBUG DHCP_DDNS_QUEUE_MGR_QUEUE_RECEIVE Request ID 000201DE266B9E28D8CD6AECCAAA963EB2196BF00413DAFB62363C4A7B5C6272315C81: received and queued a request.
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: DEBUG DHCP_DDNS_STARTING_TRANSACTION Request ID 000201DE266B9E28D8CD6AECCAAA963EB2196BF00413DAFB62363C4A7B5C6272315C81:
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: DEBUG DHCP_DDNS_UPDATE_REQUEST_SENT Request ID 000201DE266B9E28D8CD6AECCAAA963EB2196BF00413DAFB62363C4A7B5C6272315C81: Forward Add to server: 10.158.0.99 port:53
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: DEBUG ASIODNS_FETCH_COMPLETED upstream fetch to 10.158.0.99(53) has now completed
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: DEBUG DHCP_DDNS_UPDATE_RESPONSE_RECEIVED Request ID 000201DE266B9E28D8CD6AECCAAA963EB2196BF00413DAFB62363C4A7B5C6272315C81: to server: 10.158.0.99 port:53 status: SUCCESS, rcode: NOERROR
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: DEBUG DHCP_DDNS_UPDATE_REQUEST_SENT Request ID 000201DE266B9E28D8CD6AECCAAA963EB2196BF00413DAFB62363C4A7B5C6272315C81: Reverse Replace to server: 10.158.0.99 port:53
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: DEBUG ASIODNS_FETCH_COMPLETED upstream fetch to 10.158.0.99(53) has now completed
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: DEBUG DHCP_DDNS_UPDATE_RESPONSE_RECEIVED Request ID 000201DE266B9E28D8CD6AECCAAA963EB2196BF00413DAFB62363C4A7B5C6272315C81: to server: 10.158.0.99 port:53 status: SUCCESS, rcode: NOERROR
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: INFO DHCP_DDNS_ADD_SUCCEEDED DHCP_DDNS Request ID 000201DE266B9E28D8CD6AECCAAA963EB2196BF00413DAFB62363C4A7B5C6272315C81: successfully added the DNS mapping addition for this request: Type: 0 (CHG_ADD)
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: Forward Change: yes
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: Reverse Change: yes
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: FQDN: [somehost.pink.example.org.]
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: IP Address: [10.144.32.100]
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: DHCID: [000201DE266B9E28D8CD6AECCAAA963EB2196BF00413DAFB62363C4A7B5C6272315C81]
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: Lease Expires On: 20230905160519
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: Lease Length: 1333
Sep 05 15:43:06 dhcp2 kea-dhcp-ddns[4787]: Conflict Resolution: yes
Also, the log clearly indicates that only the first dns-server in the list is update, but the dns-server @ 10.158.0.102 doesn't receive any updates. That is what I observe at 10.158.0.102, but it's also apparent from the log.
When I change the order of the two dns-servers, the other one is updated instead.
Expected behavior My understanding is that all listed dns-servers should receive an update, not only one.
Environment:
- Kea 2.2.0 (from this repo)
- Debian Bullseye (11)