Curiosity got the best of me and I wanted to know if it was possible to set this up using shared-network-parameters. Yes, it can. This would allow you to configure multiple different RNDC keys and send RFC 2136 updates to different servers per subnet.
To add to the caveat list, service dhcp-server dynamic-dns-update
must be set or isc-dhcpd does not attempt to update the forward/reverse mapping.
I tried both 1.2.6 and 1.3-rolling-202010231135.
VyOS config delta-
This config is similar to the one I pasted previously but I moved the RFC 2136 parameters under shared-network-parameters from global-parameters and then created another subnet.
interfaces {
ethernet eth1 {
address 10.0.0.1/24
}
ethernet eth2 {
address 172.16.0.1/24
}
}
service {
dhcp-server {
dynamic-dns-update
shared-network-name SERVER-TEST {
authoritative
shared-network-parameters "key rndc-key { algorithm hmac-md5; secret DJaP3k6VvQa4nZW4UTkN0Q==; };"
shared-network-parameters "ddns-domainname "server.test.";"
shared-network-parameters "ddns-rev-domainname "in-addr.arpa.";"
shared-network-parameters "zone server.test. { primary 10.0.0.5; key rndc-key; }"
shared-network-parameters "zone 0.10.in-addr.arpa. { primary 10.0.0.5; key rndc-key; }"
subnet 10.0.0.0/24 {
default-router 10.0.0.1
dns-server 10.0.0.5
domain-name server.test
domain-search server.test
range RANGE0 {
start 10.0.0.100
stop 10.0.0.200
}
}
}
shared-network-name SERVER-TEST2-172 {
authoritative
shared-network-parameters "key oneseventwo-key { algorithm hmac-md5; secret ZnQmJVW11vVUcX3vlKAY7w==; };"
shared-network-parameters "ddns-domainname "test2.org.";"
shared-network-parameters "ddns-rev-domainname "in-addr.arpa.";"
shared-network-parameters "zone test2.org. { primary 10.0.0.5; key oneseventwo-key; }"
shared-network-parameters "zone 16.172.in-addr.arpa. { primary 10.0.0.5; key oneseventwo-key; }"
subnet 172.16.0.0/24 {
default-router 172.16.0.1
dns-server 10.0.0.5
domain-name test2.org
domain-search test2.org
range RANGE0 {
start 172.16.0.100
stop 172.16.0.200
}
}
}
}
}
VyOS correctly handles RFC 2136 for both subnets-
Dec 14 19:54:16 vyos isc-dhcp-server[4519]: Starting ISC DHCP server: dhcpd.
Dec 14 19:55:14 vyos dhcpd: DHCPREQUEST for 172.16.0.100 from 0c:c5:f6:1b:95:00 (freebsd) via eth2
Dec 14 19:55:14 vyos dhcpd: DHCPACK on 172.16.0.100 to 0c:c5:f6:1b:95:00 (temp2) via eth2
Dec 14 19:55:14 vyos dhcpd: Added new forward map from temp2.server.test. to 172.16.0.100
Dec 14 19:55:14 vyos dhcpd: Added reverse map from 100.0.16.172.in-addr.arpa. to temp2.server.test.
----
Dec 14 20:11:44 vyos dhcpd: DHCPDISCOVER from 0c:c5:f6:26:08:00 via eth2
Dec 14 20:11:45 vyos dhcpd: DHCPOFFER on 172.16.0.102 to 0c:c5:f6:26:08:00 (temp3) via eth2
Dec 14 20:11:48 vyos dhcpd: DHCPREQUEST for 172.16.0.102 (172.16.0.1) from 0c:c5:f6:26:08:00 (temp3) via eth2
Dec 14 20:11:48 vyos dhcpd: DHCPACK on 172.16.0.102 to 0c:c5:f6:26:08:00 (temp3) via eth2
Dec 14 20:11:48 vyos dhcpd: Added new forward map from temp3.test2.org. to 172.16.0.102
Dec 14 20:11:48 vyos dhcpd: Added reverse map from 102.0.16.172.in-addr.arpa. to temp3.test2.org.
----
Dec 14 22:16:44 vyos dhcpd: DHCPREQUEST for 10.0.0.100 from 0c:c5:f6:7d:87:00 (freebsd) via eth1
Dec 14 22:16:44 vyos dhcpd: DHCPACK on 10.0.0.100 to 0c:c5:f6:7d:87:00 (freebsdone) via eth1
Dec 14 22:16:44 vyos dhcpd: Removed forward map from freebsd.server.test. to 10.0.0.100
Dec 14 22:16:44 vyos dhcpd: Removed reverse map on 100.0.0.10.in-addr.arpa.
Dec 14 22:16:44 vyos dhcpd: Added new forward map from freebsdone.server.test. to 10.0.0.100
Dec 14 22:16:44 vyos dhcpd: Added reverse map from 100.0.0.10.in-addr.arpa. to freebsdone.server.test.