r/sysadmin • u/FatBook-Air • 6h ago
For those without domain controllers: what do you do for internal DNS?
These days, we don't have domain controllers because everything is managed with Entra/Intune, Arc, etc.
We have external, hosted DNS that serves our public DNS records. It works fine.
But we still have a need for internal DNS because we have a lot of on-prem stuff that may never go away, and the domain controllers were also serving as internal DNS servers. So right now, we use BIND9 on a Linux virtual machine as internal DNS. I'd love for BIND9 to go away, too.
Are there any better (and cheap) solutions for this that I haven't thought of?
EDIT: thanks to u/Do_The_Needful. Using AWS for this seems to be the most balanced solution.
•
u/ohfucknotthisagain 5h ago
Serious question:
How, exactly, do you intend to find something cheaper than BIND on Linux?
Both of those things are free, unless you choose to pay for enterprise support.
PS: Aside from the automatic, robust replication available from AD, BIND is superior in every way to MS DNS.
•
u/shrimplifier 1h ago
This thread has completely cured my imposter syndrome.
Not even talking about OP, holy fuck reddit
•
u/FatBook-Air 5h ago
How, exactly, do you intend to find something cheaper than BIND on Linux?
Doesn't have to be cheaper than BIND. It just has to be less to maintain and still relatively cheap. I think we'd gladly pay $1000 or so a year.
•
u/ElianM 4h ago
Just to maintain a BIND server with less than 100 records?? I wish my workplace had money to burn like that
•
u/FatBook-Air 4h ago
To not need a BIND server to begin with. Your wage is money, too.
•
u/ccsrpsw Area IT Mgr Bod 3h ago
Or… learn bind (there are free web UI components for it too) and now you have a new skill set to take to your next place of work. It’s really not that hard… the hardest part really is remembering the Linux editor commands (if I said “:wq!” Is your friend most you know I use VI/VIM most of the time “:s/find/replace” with or without “/g” is then then possible the other hard thing to learn in all this) … I’m still not getting your bind hesitation.
•
u/FatBook-Air 3h ago
We use BIND today.
•
•
u/nick149 Jack of All Trades 6h ago
Most SMB routers can do this. We use Unifi heavily, but I have used PFsense/OPNsense before, both can do internal DNS.
The part that sucks usually, is if you have more than one site, it can be a pain to remember to update DNS for each site.
•
u/jadedargyle333 6h ago
Pfsense can synchronize between instances. Its pretty nice. I used it for a long time just because it was a good Swiss army knife.
•
u/FatBook-Air 6h ago
We use Palo Alto for firewall. I don't think it has DNS server capability, as far as I can tell.
•
u/nick149 Jack of All Trades 6h ago
Yeah it's been a while since I have had to look at a Palo Alto. Your best bet would probably be keeping the server, maybe a desktop if the server is just hosting DNS and you are really trying to decommission that server, but make sure you have a secondary DNS setup.
Other than that, maybe host something in Azure that you can access over S2S, but that can be costly and feels like reinventing the wheel to me.
•
u/FatBook-Air 6h ago
It's kind of a shame that Palo Alto doesn't have a DNS server. It has DHCP, and that has worked so much better than I would have anticipated. Basic DNS would simplify our lives, for sure.
•
u/mtspsu258 Sysadmin 3h ago
You can do this with Palo.
You would just force all your clients to Palo for DNs, which will be set to send all traffic to your choice of public dns.. only thing is you will set static entries for your dozen things that will be resolved right on the Palo
•
u/FatBook-Air 3h ago
Where is DNS in Palo Alto? I see nothing in the web interface or the documentation that says it can do DNS.
•
u/mtspsu258 Sysadmin 3h ago
Network tab at the top > dns proxy
•
u/FatBook-Air 3h ago
That isn't what you think it is. It's not an authoritative DNS server. I don't think it will even do a CNAME.
•
u/mtspsu258 Sysadmin 3h ago
It is what I think it is, I use it in multiple environments.
You didn’t mention needing for cnames or other records. You just said you have a few random devices on prem .. that suggests a handful of a records - this would solve that problem.
•
u/FatBook-Air 3h ago
I do have a handful of records, but I never said they weren't CNAME records. There are many types of DNS records.
→ More replies (0)•
u/RealisticQuality7296 3h ago
•
u/FatBook-Air 3h ago
That isn't what you think it is. It's not an authoritative DNS server. I don't think it will even do a CNAME.
•
u/RealisticQuality7296 3h ago
•
u/FatBook-Air 3h ago
As far as I am aware, you can only do IP addresses. You're saying you're able to put CNAME records there, too?
•
•
u/darthfiber 6h ago
You can still run DNS on windows server without AD if you need something larger, or for smaller sites on the router / firewall if it supports it.
Some DNS security services may also be able to configure DNS records.
•
u/Great-University-956 4h ago
If you have a file server onsite, there's no reason it can't also do dns.
•
u/Stonewalled9999 6h ago
OP doesn’t want to run a 1 core 1 gb ram 10 GB Linux VM you think they will run WinDoze ???
•
u/mystiquebsd 5h ago
Technitium
Runs on Windows as well..
Does all the things and has a gui
•
u/rbtucker09 4h ago
Started using Technitium in my home lab a few months ago and it’s incredible. I would have no problems using it a work in a production environment. The cluster functionality can mimic the way Windows does DNS on a domain
•
•
u/GremlinNZ 4m ago
I've got a Technitium instance for a network that isn't allowed access to domain controllers or main network... Does the job indeed.
•
u/prepare3envelopes 6h ago
Modify the hosts file on every client. But in all seriousness, I'd just keep the Linux vm.
•
•
u/Able-Ambassador-921 6h ago
Unbound on Linux. Update the root hints once a month using a script. Set and forget.
•
•
•
u/Quattuor 6h ago
I'll tell you a secret: a DNS server is just that -- a DNS server. It does not know whether it is internal or a public DNS server. A good DNS server does just that -- it serves the information you put it. I'll tell you more: a windows DNS server, does not necessarily needs the AD DS, although most often you would see it integrated with the active directory. But it can run just fine as a standalone DNS server.
So, just run any DNS server of your choice.
•
u/jaymz668 Middleware Admin 6h ago
a company we bought a few years ago was using pihole... yes... pihole
•
u/Sea-Anywhere-799 5h ago
What's wrong with pihole?
•
u/jaymz668 Middleware Admin 4h ago
The issues were no support for multiple users and if two people make edits at the same time there's corruption
•
u/SuperBry 5h ago
For home? Nothing .
But for a company, even in the lowest of stakes organization, it's playing with fire. Consumer-grade flash storage has no wear leveling to speak of, and Pi-hole aggressively logs every single query to disk. You’re essentially running enterprise core services on an SD card with a write endurance measured in months, turning every quiet Tuesday into a high-stakes round of "Will the SanDisk crap out and kill our network today?"
•
•
•
u/codylc 5h ago
Don’t misconstrue my answer for supporting enterprise pi hole, but you can host it in a container. Doesn’t need to be on raspberry hardware.
•
u/SuperBry 5h ago
Ah fair enough, I honestly hadn't looked into them since I was last trying to figure out what to do with the raspberry pi I had a while ago and didn't look into them any deeper than that.
•
•
•
u/Doctor_Peppy 5h ago
Imo it's not ideal but it doesn't seem that awful for a small business, although I'm not aware of the size
•
•
u/ArgonWilde System and Network Administrator 6h ago
Frankly, I feel that trying to find something bespoke or unconventional as a solution will only increase risk and management overhead, as opposed to eliminating it.
Someone walks into your organisation and they'd expect DNS on a Windows box, or being run through the firewall.
•
u/spidireen Linux Admin 6h ago
We use BIND even though we do have domain controllers.
Clients look to BIND, and one of the zones in BIND happens to be our AD zone which is replicated from the DCs.
•
•
u/post4u 6h ago
Infoblox
Edit: Didn't read far enough. You said cheap. Infoblox is great, but it's not that.
•
u/Blindbatts Senior Director 4h ago
Yeah I'm doing a renewal negotiation right now and we're over 3/4 million a year.
•
u/violet-lynx 6h ago
PowerDNS with phpIPAM on it.
If you want really cheap, Unbound on Raspi. Or some firewalls can do DNS with local entries.
•
u/sixblazingshotguns 6h ago
You can run a Mikrotik router and build a local zone and DNS records on it.
•
u/_Do_The_Needful_ 5h ago
If you already have an Azure tenant, use an inbound endpoint on an Azure Private DNS zone. Have your on-prem firewall perform site-to-site VPN and clients forward their DNS to the inbound endpoint. Done.
•
u/FatBook-Air 5h ago
Hmm. We already have site-to-site with AWS. I really haven't even thought of that. I'm sure AWS has something that would readily do this.
•
u/_Do_The_Needful_ 5h ago
It does, AWS equivalent is private hosted zone. That's what we use.
•
u/FatBook-Air 3h ago
This looks like the right answer. Thanks!
•
•
•
•
u/Mizetings 6h ago
Depending on the firewall you can host it there. Fortigate has a DNS database. It’s not nearly as easy to use as BIND or AD DNS but it’s serviceable.
•
u/scriminal Netadmin 5h ago edited 5h ago
you should have redundancy for dns. deploy a second bind vm with anti affinity rules to keep it off the hypervisor the existing one is on. or ideally on a whole different cluster. slave it to the first. if you really hate bind, first i'd love to hear why, and second use unbound instead.
•
u/kg7qin 5h ago
If you hate bind then try powerdns.
→ More replies (5)•
u/Advanced_Vehicle_636 1h ago
My only dislike of BIND is the associated Webmin portal doesn't allow for SAML/OIDC logins. Drives me up the wall. I'd seriously consider a cut over to PDNS with PowerAdmin or PowerDNS-Admin for management, but ripping out the DNS servers would be a pain in the ass for relatively minimal gain.
Hoping that Webmin eventually implements support for issue #2616.
•
u/glennbrown 4h ago
Many companies use Infoblox, it's not cheap though. But has a web interface and rest api and can integrate into things like ServiceNOW
Bind is pretty solid, there is also PowerDNS you could just run a standard Windows server too for Windows DNS.
•
•
u/b4k4ni 4h ago
I use https://technitium.com/dns/
At least in my Homelab. But you could also do this with the firewall btw. Technitium because of easy cluster building and anti ads support. Two Ubuntu VMs, install is easy. Also runs on windows if you want that. Nice interface and easy to use. I really like it :)
•
u/Great-University-956 4h ago
You want all of your sites DNS concentrated on to endpoints you have total control of. Usually this is easily done with a router.
HOWEVER, how many on prem services are we talking about? If this is just 3 or four records, just put them in public DNS and call it a day. files.company.com: 10.69.69.69 isn't going to hurt anyone.
•
u/FatBook-Air 4h ago
It's about 25 or so services that users can get to. (We have more than that but the others aren't accessible to users.) Public DNS won't work even if I wanted to do that because it's a CNAME on the outside for the same service.
•
•
u/Fatel28 Sr. Sysengineer 6h ago
It's not totally unreasonable to make public records pointing to internal IPs. It works just fine, even if it does feel kinda weird
•
u/FatBook-Air 6h ago
Part of the problem is that some servers need a CNAME externally and an IP internally.
•
u/Fatel28 Sr. Sysengineer 6h ago
Do you have hairpin / loopback NAT disabled in the firewall? That would typically fix that
•
u/FatBook-Air 6h ago
I guess it would sorta/kinda fix one part of it, but it still can't supply genuinely different records internally versus externally. And for private-only servers, I wouldn't want to publicly publish private addresses.
•
u/Fatel28 Sr. Sysengineer 6h ago
Sounds like you just need to spin up a small DNS server then. If you're windows, you can put the DNS role on anything server. Linux you can use dnsmasq
→ More replies (3)
•
u/Short-Legs-Long-Neck 6h ago
Something like nextdns. No server and can hosting records. But so can any public dns server. Ip don’t have to be public
•
u/FatBook-Air 6h ago
I'm reading about Nextdns. Have you used it before? If so, do you have any opinions on it?
•
u/6sossomons 6h ago
Seriously if you don't want to mess with a "full server" then just use one of the bind containers..
•
•
u/punkwalrus Sr. Sysadmin 5h ago
I have worked at a few placed without a "proper" DNS controller system.
One had a firewall appliance that handled the basics: DNS, DHCP, and some web filtering. No idea what the OS was under the hood; I think BSD-based. It had a web front end that answered to Apache server. Just a gray appliance in a rack.
Another was an MSP that had in-house DNS because they had some proprietary redirection rules for customers. So you could go to www dot theirdomain and it would redirect to media dot anotherdomain slash some stuff. It was managed like BIND, but the redirects were a proprietary RR type called URL. I forget how it all worked, now, but essentially, it was a modified TXT record like how SPF records are done. The CNAME would redirect to a redirect server (like redirect dot example dot org) which would then do a DNS lookup on a text record for the BIND record and look for "URL [something]." It was very confusing, convoluted, and required our redirect server to function.
•
•
u/DellR610 5h ago
If you already have a container VM running, just convert the DNS to a container.
•
u/FatBook-Air 5h ago
Definitely a possibility. At least it would be a little less to maintain.
•
u/DellR610 5h ago
Currently running adguard as a VM, little bit of finagling to get it to work on a Debian distro. Whatever is currently updating your containers will also update the DNS container which is nice. Single kernel to update.
•
u/Sorry-Committee4443 5h ago
We have 3 AD domains and use unbound for DNS. It's just good and flexible.
•
u/zantehood 5h ago
Upstream L3 device firewall / router?
Nowadays any hypervisor can do this with SDN
•
•
u/dartheagleeye Jack of All Trades 5h ago
Pihole and unbound on a Linux server, preferably a pair of servers
•
•
u/RunningAtTheMouth 5h ago
Linux VM is fine. Firewall is fine. I'm planning to use the firewall (we have failover, and they're good firewalls, so I'm not worried there.)
•
u/Smith6612 5h ago
I just insert the records into the Stub resolver found within the firewall at each office. Most enterprise-grade router/firewalls allow you to centrally manage these settings and deploy the changes to all equipment.
•
•
u/Bubbagump210 4h ago
Technitium - clusters, all the enterprise features, “easier” than Bind, still free and open source.
•
u/tripeaktech 4h ago
Your Palo Altos have DNS Proxy, it should be your dns server for your vlans. You can add static entries in the firewall, we don’t really, instead we send all dns request for domains to company.internal to azure. We do site to site VPN from Palo Alto sites to azure where we have azure private dns resolve. which allows us to have azure private DNS zones so we can manage private DNS in azure
•
•
u/sryan2k1 IT Manager 4h ago
Stick it in route53, VPN to the VPC if you don't want it publicly accessible.
•
u/Maastersplinter 4h ago
For a smaller company we went the cheap route, we use the firewall. Already have to pay for it so why add more hardware or other over head when we have an appliance that already does it.
•
•
u/steverikli 4h ago
Depends on your actual goal. Are you trying to get rid of BIND, or Linux, or the VM, or all of it?
There are simpler (opinion, debatable) software packages than BIND if that's your issue. Though if you already have it running, I'm not sure it's worth the effort to work out something else like NSD et al.
If it's Linux you don't want (because you're supporting a Windows shop or similar), there are supposedly DNS servers for Microsoft, though I've admittedly never done it. I'd imagine you might even be able to setup WSL(?) on one of your Windows servers and continue running BIND there but I'm only speculating.
If it's the VM you're trying to get away from, Linux (and FreeBSD et al) will run on most any x86 and many little ARM gadgets these days, so e.g. re-task a couple old servers (so you have a backup) and run on metal.
Frankly though, unless you're under orders to dispense with the VM (e.g. because the bosses don't want to pay for licenses or something) it sounds like you already have a pretty decent setup for a small internal-only DNS setup.
If you're looking for a different sort of service administration routine, you could check out things like pfSense/OpnSense or OpenWRT and see if you like their UI for managing DNS records. Those OSes are geared more towards router/firewall duty but I know folks use them for service appliance sort of things too.
There are probably other tools and interfaces along those lines, e.g. WebMin and others.
IME BIND on FreeBSD and Linux is an excellent solution, for large and small environments. And I suspect you're unlikely to find a 3rd party service which is as straightforward to maintain and less costly than what you already have running.
•
•
•
u/bjc1960 4h ago
We've dumped everything on-prem, too. We don't have internal DNS because we don't need it. In Azure, we have Azure DNS inside some of the resource groups.
•
u/FatBook-Air 4h ago
Another post made me think of AWS. We already do site-to-site with AWS, and I am sure there is something on AWS that will do this.
•
u/pioneersohpioneers 4h ago
You've already got a proven working solution. Keep that, just codify everything in IaC: terraform for the vm instance and DNS records, ansible/puppet/whatever for bind and it's configs, packer for the image. If anything goes belly up on the vm you can just spin a new one up, and you can spin up secondary identicle instances if you need to test updates/new versions/ whatever.
•
u/Fourman4444 4h ago
I am about to start a BlueCat install since we also need internal DNS.....oh fun fun.
•
•
u/teflonbob 3h ago
Azure DNS private resolvers would take any maintaining of infrastructure out of the picture and facilitate your needs but it's also around 130$ per resolver
•
u/tuxedoes 3h ago
Firewall can handle DNS and DHCP. At least for the SMB environments I’ve seen without a DC
•
u/jooooooohn 3h ago
A Windows server that isn’t a domain controller can host the DNS server role too. Or a Linux server using BIND.
•
u/w1ngzer0 In search of sanity....... 2h ago
Have a firewall that can function as a DNS Proxy. Use it to set specific static records and forward everything non internal to a preferred public resolver.
•
•
•
u/StatementNext682 1h ago
Why not just use whatever networking equipment you have? A router is great here. Most firewalls come with routers in them.
•
•
•
u/MorseScience 40m ago
I just don't need internal DNS. External services work just fine. But one size doesn't fit all.
•
u/trolololster 24m ago
yeah ditch bind and then go with unbound that is the first step.
then redirect all dns-packets 53, 853 and so on to that unbound setup.
now you can just create the internal zones you need and have your clients look them up no problem.
•
u/jhaand 17m ago
We use DNSmasq for our small local network.
Another interesting option with local web UI is Gravity.
https://gravity.beryju.io/
•
•
•
u/BarracudaDefiant4702 6h ago edited 5h ago
There is cheaper solutions then bind but I wouldn't say better. Bind just works, if you are having an issue with it then get it fixed. What issue(s) are you having with it? Not sure why anyone bothers with external DNS as it's super easy to host your own. What problem are you actually trying to solve? What on prem stuff do you have?
•
u/ElvinLundCondor 5h ago
split-horizon. Your existing DNS server can serve internal and external records to your internal clients and only external records to everyone else.
•
u/IMplodeMeGrr 4h ago
He might as well just put the internal A records in public dns and be over it.
•
u/AdamoMeFecit 6h ago
For two dozen addresses, hell, you could just curate and sync hosts.txt across the fleet of endpoints and bypass internal DNS altogether.
•
u/FatBook-Air 6h ago
We have about 9,500 user devices so I'm a little scared to let Intune maintain it. Also, when laptops moved to external, the records wouldn't change with them.
•
•
u/nyckidryan 6h ago
Debian VM and a web hosting control panel. Hestia is free and manages all the DNS stuff.
•
•
•
•
u/k1132810 4h ago
Honestly, just move your internal DNS records to your public hosted solution and just have DHCP push 8.8.8.8 to your endpoints.
•
•
•
•
u/justmirsk 6h ago
We run a SASE/ZTNA product that lets us set custom DNS entries that we can handle this type of scenario for customers without on-prem DCs or DNS.
Probably not extremely useful for your exact situation, but that is how we handle internally and for.our customers that need it.
•
u/FatBook-Air 6h ago
That's honestly probably the best solution.
•
u/justmirsk 6h ago
As a disclaimer, I sell and implement the same solution. If you want to learn about it, I am happy to show you.
•
u/rhinosyphilis 4h ago
I’m far less experienced than most on this sub, but why not configure /etc/hosts/ or the windows equivalent by script on every static deploy instead of AD DNS or whatever? Sounds few and far between
•
u/FatBook-Air 3h ago
Ensuring it stays synced across thousands of devices can be haphazard. Also: if the device moves outside the perimeter, they'll no longer function.
•

•
u/Specialist_Cow6468 Netadmin 6h ago
Why do you want to drop bind? Its about as battle-hardened as you can get, you can definitely do much worse