So I have 100+ websites I manage for various clients, and it is a pain for me to login to their hosting or domain registrar accounts to manage their DNS.
Is there a simple solution, where I can turn on my own server that manages DNS? So for every domain I manage, I simply set a DNS once as ns1…com, and from thereon I can just manage their DNS configurations?
If you’re getting paid to manage these sites you should not selfhost their dns. Use a real dns provider like cloudflare.
I like powerdns for an authoritative server.
I run coredns.io these days. Simple, many plug-ins available, can handle split brain, etc.
(Personally I just make a change in git and it auto updates my dns boxes)
I’m using freeIPA and I’m happy
Thanks for the recommendation.
Bind, powerdns, dnsmasq… You COULD do it with windows DNS server or even something like a mikrotik router…
AWS has route53… but depending on your clients someone would be paying money…
Id probably look for someone like digitalocean or cloudflare that has an API and use that… DNS is pretty simple… Until it’s not.
Cloudflare is the best choice!
I use three instances of CoreDNS (one main and two others) at three different providers. Setup is relatively easy and I manage all DNS zone files, keys for DNSsec with Git.
DNS is a must for self-hosting!
Since you’re managing clients’ DNS, you don’t really want to self host it.
Take a look at OctoDNS: https://github.com/octodns/octodns
Yaml config for DNS, and it just interacts with all the providers your clients want to work with while letting you have everything in one place managed via IaC.
I use Technitium DNS for all my DHCP/DNS/Ad Blocking.
I tired it with about 400 domains and so far it is looking good but it needs a lot more work; someone will have to write a serious command line tool as we all know that GUI tools are good for a few clicks here and there but serious work needs a terminal.
If you do self host dns make sure you have at least 2 vm’s on different subnets (not the same ip ranges) and if you really go smart about it have them hosted in separate cloud providers to mitigate the risk a bit. Then make sure you are aware of how hackers use dns servers for example dns amplification attacks with dns to prevent yours from being used. There is documentation and CIS guides on this. But overall it is not scary. Just a bit of initial admin to get going. As other have mention there is bind, powerdns and that other one that was mentioned Technitium or something (never heard of it before). But as others have mentioned before, Cloudfare really is a good option to selfhost without the infrastructure requirements.
Thanks for the detailed post. I will keep these in mind.
Cloud flare offers an api which allows you to manage it yourself without much hassle.
Thanks, but I have had issues with clients with Cloudflare in the past. They tend to ban/block websites or traffic on subjective grounds. I am happy to spin off 5 VMs if needed.
The reason I like to self host is because I am kind of sick of these large companies acting like they own us.
this is a better solution
Cloudflare is a solid solution. Better than hosting yourself IMO
This, and manage it with Terraform.
This is the way
no it’s dnscontrol the dns way. sir
I use PowerDNS and PowerAdmin. Supports pretty much everything (including BIND backend), has an API, and you can store the DNS records in a SQL database.
dnscontrol it via git actions and u will never go to gui :)