I have a follow-up question and a follow-up concern:

First, the concern. I run MySQL in master/slave replication mode. I have a 
master MySQL server that I write to, and the PowerDNS servers connect to the 
slaves, not the master. Is there some way to tell PowerDNS to send updates to 
the master, or will I have to change one of the servers to connect to the 
master and explicitly send updates only to that server?

Second, my question: Is there anyway to customize the queries that PowerDNS 
uses to update the records? Specifically, I would like to add a flag to records 
that were added or updated with Dynamic DNS so that my administrative console 
can differentiate between those and explicit records.

Thanks,

Nick

> On Oct 17, 2020, at 06:22, Nicholas Williams <nicho...@nicholaswilliams.net> 
> wrote:
> 
> Thanks, everyone! I knew about DDNS and how it works, but I just thought it 
> was how public hosts that can’t have static IPs update their own DNS records. 
> I did not realize that DHCP servers employ DDNS to update DNS records on 
> behalf of DHCP clients. I’ll look into this more, and also post in the VyOS 
> forums.
> 
> Thanks!
> 
> Nick
> 
>>> On Oct 17, 2020, at 02:49, Brian Candler <b.cand...@pobox.com> wrote:
>>> 
>>> 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.
>> 
_______________________________________________
Pdns-users mailing list
Pdns-users@mailman.powerdns.com
https://mailman.powerdns.com/mailman/listinfo/pdns-users

Reply via email to