Ticket #524 (new enhancement)

Opened 11 months ago

Last modified 5 months ago

Dyndns-like functionality

Reported by: anon Owned by: ahu
Priority: low Milestone:
Component: auth Version: 3.2
Severity: normal Keywords:
Cc:

Description

As most of the free Dynamic-dns providers have gone AWOL or are charging for their dynamic DNS services, I was looking into setting up a service like that on my own nameserver.

If powerDNS would be enhanced with a plugin/module/app that emulates the commonly used dyndns.org API (which basically is 1 HTTP GET with data as URL parameters), I would certainly use that over a paid ddns service. Also, I trust my own servers more than a dynamic DNS provider, who are in the position of doing potential MITM's.

I have no clue as to the architecture of powerdns, so I can not imagine how trivial this is. I would assume a simple CGI-script would suffice, with minor configuration.

Change History

Changed 11 months ago by peter

  • owner changed from somebody to ahu
  • version set to 3.1
  • component changed from component1 to auth

Changed 10 months ago by anon

You're right: a simple CGI-script suffices :)

Assuming you have a Web server at your disposal, a small PHP script or CGI script (in almost any language I can think of) is enough. Following points you should consider:

  • Authentication: if this is just for yourself, in your SOHO environment, don't bother too much. If you're opening this to public consumption, do worry.
  • You don't really need to handle the original "dyndns" protocol: your CGI script can evaluate $REMOTE_ADDRESS to determine the IP address of the client.
  • Your CGI then updates the backend database (SQL INSERT or UPDATE) with a row for the address record of the domain name you wish to modify.

That's about it.

-JP

Changed 10 months ago by anon

If you use dnssec, don't forget to run pdnssec rectify-zone :)

Changed 5 months ago by peter

  • version changed from 3.1 to 3.2

Postponing ticket. Note that the solution above works fine. Also, the experimental JSON interface in 3.2 might be of use.

Note: See TracTickets for help on using tickets.