[Pdns-users] PowerDNS Recursor (+PDNS?) and auto-update of local hostname DNS

Brian Candler b.candler at pobox.com
Sat Oct 17 07:49:00 UTC 2020


On 17/10/2020 03:22, Nicholas Williams via Pdns-users wrote:
> Hello all,
>
> For background/context, I currently run a geographically-dispersed 
> PowerDNS infrastructure with a MySQL backend publicly, and then on a 
> private network I run PowerDNS Recursor for name resolution.
>
> My router software is VyOs <https://www.vyos.io/>, which is the base 
> OS on which UniFi’s router software is based. It is set up to push out 
> the IP addresses for my PowerDNS Recursor servers with DHCP 
> assignments. Recursor has a single authoritative domain for which it 
> uses a hand-coded zone file to serve out the static IPs for all the 
> known hostnames on the internal network. It recurses all other domains.
>
> I know that when hosts get DHCP assignments, they can tell the DHCP 
> server what their hostname is, and the DHCP server can do “something” 
> with that. As much as I know about DNS, I find myself not knowing what 
> this protocol is called or how it works. What I would like to do is 
> add/update that host name to the authoritative local domain. I don’t 
> think I can do this with just Recursor (but maybe I’m wrong). I think 
> I will probably need to also run an Authoritative server and point 
> Recursor to that server for the local domain.
>
> What I am looking for are any suggestions, tutorials, documentation, 
> or write-ups about how to do this.

For questions along the lines of "how does VyOS's DHCP server interact 
with a DNS server?" you'd be better off asking on a VyOS forum.

FWIW: all DHCP servers I've worked with that interact with DNS work as 
follows:

1. They receive a DHCP request from the client (which may include a 
hostname that the client requests)
2. They assign an IP address from a pool
3. They perform a Dynamic DNS update (RFC 2136) for a pre-configured 
zone, inserting the given hostname.

But you said something else: VyOS is "set up to push out the IP 
addresses for my PowerDNS Recursor servers with DHCP assignments".  Now, 
DHCP servers *can* give out specific IP addresses to specific clients, 
with a table of assignments to give out.  Normally it's done by MAC 
address, but it can be done based on the client-provided hostname.  
However, if you do it that way round, there's no need for dynamic DNS 
updates, since essentially every client gets a static IP address anyway.

 From your description I'm also confused as to whether you are giving 
out DHCP addresses to regular clients, or just to the servers where PDNS 
recursor is running.

You also said:

 > Recursor has a single authoritative domain for which it uses a 
hand-coded zone file to serve out the static IPs for all the known 
hostnames on the internal network. It recurses all other domains.

I presume you mean via the "auth-zones" configuration? That's a frig for 
a handful of statically configured addresses, and you won't be able to 
do dynamic DNS updates on that.  If you need DDNS updates with powerdns 
then you need a separate pdns-authoritative server with a database 
backend, and you'd forward the zone to that, just as you said.  (It has 
to be a database backend - pdns-auth's BIND backend doesn't accept DDNS 
updates).

Depending on the specifics of VyOS's DHCP server, the likely 
configuration is to set up a PDNS zone which can be updated using a TSIG 
key for authentication, and put that into the VyOS DHCP server.  If the 
VyOS DHCP server can do that, then there's no need for LUA scripting.


> I think I can probably hack a non-standard solution with a Lua script 
> that runs on my router to execute a command to update a host MySQL 
> record every time a DHCP assignment happens, but I am hoping that 
> there is an accepted/standard/common way of doing this that I don’t 
> know about.
>
For the pdns side, see 
https://docs.powerdns.com/authoritative/dnsupdate.html

I can't speak to specifics of VyOS, but "dynamic DNS updates", "TSIG", 
"RFC2136" may be useful search terms when going through their documentation.

Regards,

Brian.



More information about the Pdns-users mailing list