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 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.
Yes there are a number of solutions out there including running your own bind server. But that is probably a little more difficult than what you might actually want which is just to consolidate their name servers down to one centralized place. Another comment mentioned one, clouddns is another that does this, maybe slightly differently?
Yes. Bind DNS is the perfect candidate for that because it supports DNSSEC and everything in between. For DNS NS you need at least two static IPv4 addresses if you want to host it yourself.
Powerdns and powerdnsadmin works well. Do keep in mind you are assuming responsibility for keeping that server up, if it fails your domains could be impacted (depending on how secondary servers are set up)
Why not just use Cloudflare? Redirect client nameservers to them. Also you can pay them if you ever need prioritized support. Free plan is solid usually.
DNS is scary to selfhost.
DNS and e-mail are really, honestly, truly easy to self-host.
I don’t understand this sub sometimes. You are very right.
This sub’s aversion to hosting email (and now DNS) is bizarre.
Can you make an example why selfhostig DNS is scary?
Externally. Why not take use of the good options out there and make it easier for yourself?
That’s not an example. Can you please make a technical example, thanks.
Basically letting Cloudflare take ownership over DNS. So much better then logging into x amount of different domain registrars web management panels. Its not really directly comparing to your BIND solution. But a lot better then what he/she currently struggles with.
CloudFlare is a quality DNS host with a solid control panel for managing your zones. However I will say that granting access to the domain owner or their other tech people is a giant hassle on CloudFlare.
Cloudflare is a solid solution. Better than hosting yourself IMO
This is the way
no it’s dnscontrol the dns way. sir
This, and manage it with Terraform.
I do both bind and route 53, but this is self-hosted so bind would be my choice.
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.
Cloud flare offers an api which allows you to manage it yourself without much hassle.
this is a better solution
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.
Thanks for the detailed post. I will keep these in mind.
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 :)
You can always use a Pi-Hole which offers DNS Hosting or if you have a Synology NAS
https://dnssimple.com is also a great cheap solution that will host your own NS servers.
Cloudflare + terraform is a good solution. It’s not self hosted, but cloudflare managing the dns for you is much less headache. And you can manage all the records with IaC which makes it super simple to automate and take away the ‘clickops’
I would use cloudflare and terraform to be honest, but bind would work just fine. You’d be able to keep all configs in git and have a pipeline deploy to the server and reload.
I use Cloudflare. I just have the users add the Cloudflare nameservers to their domain. Once all is done, I can make DNS changes while the customer continues to pay for the domain using their preferred registrar.
I’d advise to use DNSControl, combine that with Gitlab / GitHub and a ci/cd pipeline and you’ll only have to commit you’re changes and the ci/cd will do the rest.
I use it to manage DNS at Cloudflare, but anything else that DNSControl can communicate with will work.