Resolving issues with ⏱
3 minutes read.
✎ Last updated
.local networks on CentOS 7 (or any system with Avahi)
Local networks, be it private or small business networks, have for a long time
.local suffix. Partially, thanks to Microsoft and their
former of this sort of usage.
Usually, this isn’t something that causes much issues, but besides being a bad idea in the first place, you might be so lucky as to incur issues if you mix and match this with most Linux distributions including Avahi.
The sort of issue I’ve most frequently come
across–although never frequently enough to remember it when it happens
nsswitch.conf is set to
mDNS at a higher priority than
resolv.conf. Inevitably this means that lookups on the local network in the
my-computer all work fine, but the moment you try to
some-host.my-domain.local things do not work anymore.
You’ve got mainly three options. They’re ranged in the order of sensible solutions, not in the order of least effort.
- Use a different domain name.
- Change the multicast domain suffix for Avahi in
- Remove mDNS from your
Using a different domain name
You should not use
.local. However, we live in the realm of
reality, and whether or not alternative facts are a real thing (they’re
not), you are going to have a hard time convincing your colleagues to change
the domain network purely for this reason.
Ideally, you should do it for all the other reasons as well, but this is the
solution you go to in the long run. You don’t change the domain just to fix
host resolving on a subset of the machines, simply because you don’t want to
Nevertheless, if the network’s all yours, it’s the ideal solution. Use something else. Preferably, use something which you actually control — don’t go with a domain name that isn’t yours. Whether your network is airgapped or not, you’re going to have a bad time either way when there are faulty DNS configurations, or if your network is breached.
Editing Avahi’s daemon to use a different multicast domain suffix
This is–what I believe–is the ideal workaround. I say workaround because the first suggestion is a true solution, whereas this incurs some configuration cost on all devices with Avahi. Either way, you won’t create any other particular disadvantages—in part because you doubtfully use much of Avahi anyway—if you make sure to set it to a consistent alternative.
Open up the file and make a modification in the
server section, i.e. in
The value might already be
#domain-name=local, which is a bit misleading
seeing as the default value is actually
local. You can change
it to anything you’d like, besides
Remove mDNS from
Don’t do this. Sure, you can, but there are applications depending on it, such as Google’s Chromecast, and surely you do not want to mess that up for no good reason.
Seeing as I don’t recommend doing this, although it’ll work around the issue, I’m not going to go into detail on how to do it. Needless to say, however, the cat’s already out of the bag, if you know how to edit files.