AnalogJ / lexicon

Manipulate DNS records on various DNS providers in a standardized way.
MIT License
1.48k stars 304 forks source link

Add Technitium DNS server API #1553

Open renne opened 1 year ago

renne commented 1 year ago

Technitium DNS is a quite powerful DNS server with integrated DHCP server. Adding the Technitium DNS API to lexicon would allow to e.g. self-host DNS on Yunohost.

Issue in Technitium DNS issues

Djelibeybi commented 1 year ago

@renne you can use Lexicon's existing ddns provider with Technitium. To do this, add a TSIG key via Settings -> TSIG. I recommend using a simple key name and letting Technitium generate a strong secret for you. Leave the algorithm as HMAC-SHA256 too.

You then need to allow both zone transfers and dynamic updates for Lexicon using that TSIG key. If you can limit the source IP addresses that would be good. On the Dynamic Update page, you need to specify the domain name as *.domain.com and the record type can be limited to TXT

When running Lexicon, the --auth-token parameter is hmac-sha256:lexicon:<shared_secret> and the --ddns-parameter is just the IP address of your Technitium server.

renne commented 1 year ago

@Djelibeybi Is it possible to add/update/delete A, AAAA, MX, CAA and TXT records via lexicon?

Djelibeybi commented 1 year ago

Yes, it is

alexhorner commented 9 months ago

It would be good if this was referenced somewhere in documentation. I had to go down the rabbit hole of acme.sh, lexicon and then issues just to find out how you'd set up acme.sh to work with Technitium.