What's new

Bonjour (MDNS) support

  • SNBForums Code of Conduct

    SNBForums is a community for everyone, no matter what their level of experience.

    Please be tolerant and patient of others, especially newcomers. We are all here to share and learn!

    The rules are simple: Be patient, be nice, be helpful or be gone!

mekabe remain

Regular Contributor
Hi,

I have installed a new preconfigured server on my Raspberry PI box.
The developer instructs to use http://escapepod.local address for reaching the UI.
However, my Windows 10 PC can not resolve that name.
I can ping the local IP address of the RPI box. But it is not accessible via this dns name.

I see that the box is sending out mDNS requests to a multicast address with this name (escapepod.local) and destination 224.0.0.251

So this is called Bonjour service announcing its name to network nodes.

I'm not sure if this is a problem with my Asus RT-AC88u configuration or Windows 10 not supporting this service.
How can I make sure ?

Do I have to enable Bonjour/mdns somewhere on router config ?

How does this service work actually ? is it client to client or should it register this name on the router DNS service ?

Thanks.
 
actually I just tried it on a different Windows PC and 2 Android phones. They are not able to resolve this name either.

so it seems it is not a client issue ?

and , on the router I checked if avahi daemon is running:
Code:
admin@RT-AC88U-DF80:/jffs# ps w | grep avahi-daemon
 2758 nobody    1628 S    avahi-daemon: running [RT-AC88U-DF80.local]

I learned that this daemon is responsible for bonjour protocol.
so what is my problem ?
 
The domain name escapepod.local assumes your local domain is in fact called 'local' (usually the default). But that may NOT be the case, esp. if you specified something different (I normally do). And it may be assuming the use of pihole as the primary DNS server, where that FQDN has a DNS record.

Reaching the UI shouldn't require mDNS or a domain name anyway. Just use the IP address (and port if relevant) assigned to the server.
 
The domain name escapepod.local assumes your local domain is in fact called 'local' (usually the default). But that may NOT be the case, esp. if you specified something different (I normally do). And it may be assuming the use of pihole as the primary DNS server, where that FQDN has a DNS record.

Reaching the UI shouldn't require mDNS or a domain name anyway. Just use the IP address (and port if relevant) assigned to the server.
that is not possible , because the PI image and software on that image is configured to answer that DNS name.
if I access with IP address , it does not function and does not respond correctly.
 
that is not possible , because the PI image and software on that image is configured to answer that DNS name.
if I access with IP address , it does not function and does not respond correctly.

The domain name is only used by the client for the purposes of converting to the destination IP of the server, but the domain name itself never gets transferred to the server (at least NOT at the network level).

The only time I've seen this as a requirement is w/ a webserver, where the http headers will contain a reference to the domain name (it gets placed there by the browser in the payload area of the packet), and which is then handled by the http server, usually to direct your access to a specific virtual directory within the webserver. If it's not there, then perhaps the webserver might refuse to respond. But it seems more likely it would just jump to some default webpage.

Is that what we're talking about here? You weren't very specific as to the purpose of this server.
 
Last edited:
If you install Apple iTunes for Windows it includes a Bonjour client. You can then uninstall all the Apple software apart from Bonjour.
so this is about client and not router ?
ok. I'll try this now.
but installing apple services/software for using a known service is weird...
 
but installing apple services/software for using a known service is weird...
Indeed. I'm assuming you're talking about this. It seems a pretty poor design if it a) requires Bonjour, or b) has a hard-coded domain name, or c) uses a domain name of ".local" (which conflicts with Bonjour). This is why I hate Bonjour.

At the bottom of the setup page it says you can SSH into the device. I would do that first and see if I could reconfigure the network interface to be more normal.
 
well, I just tried it. After installing Bonjour and restarting Windows, I was able to access the dns name.
But after a few minutes I lost it again.
Weird.

So now I wrote the dns name to hosts file and assigned a static IP address.
not a good solution. But then I really don't know why Bonjour fails after a few minutes of restarting windows.
 
So now I wrote the dns name to hosts file and assigned a static IP address.
not a good solution.

Why?! Sounds like a perfectly good solution, in fact, better! Better yet, add it to the router's DNS server. As long as the IP is static, who cares whether it's optionally available via mDNS (network discovery)? Seems to me you're getting hung up on this notion of mDNS being a requirement, which isn't the case if it's available via a hosts file.
 
I really don't like using hosts file and using static IP address. The router allows up to 64 static IP definitions.

>>Better yet, add it to the router's DNS server.
how is that done ?
 
actually this is not the first time that I see bonjour used for packed RPI images.
FOr example OctoPi (a 3d printer extension module) uses this service to introduce the UI.
without such service, user has to figure out the IP address of the device, accessing the router UI.
so actually bonjour/mdns is a nice service.

I really need to figure out why it does not work on my windows 10 pc.
 
actually this is not the first time that I see bonjour used for packed RPI images.
FOr example OctoPi (a 3d printer extension module) uses this service to introduce the UI.
without such service, user has to figure out the IP address of the device, accessing the router UI.
so actually bonjour/mdns is a nice service.

I really need to figure out why it does not work on my windows 10 pc.

If you find this a common occurrence and therefore burdensome, then by all means, pursue the Bonjour angle.

FWIW, you can add the DNS record to the router's DNS server using a custom config file.


Specifically, /jffs/configs/dnsmasq.conf.add, and the following directive:

Code:
address=/escapepod.local/192.168.1.100
 
If your local subnet is .local, this will conflict with mDNS (Avahi/Bonjour)...

dnsmasq will attempt to resolve it, which is why it fails.

name the local subnet .lan, and this problem goes away...
 
If your local subnet is .local, this will conflict with mDNS (Avahi/Bonjour)...

dnsmasq will attempt to resolve it, which is why it fails.

name the local subnet .lan, and this problem goes away...
For an Asus router running Merlin 386.1_2, I see devices on my network have .local

is the local subnet name changed in the LAN - LAN IP setting for Domain name, like this ?

subnet.png
 
Last edited:
For an Asus router running Merlin 386.1_2, I see devices on my network have .local

is the local subnet name changed in the LAN - LAN IP setting for Domain name, like this ?
mDNS and DNS are not mutually exclusive. A device can have both an mDNS (.local) name and a DNS (e.g. .lan) name. The only time this is a problem is if you try to use .local as your DNS domain name.

Asus routers don't have a default domain name of .local so unless you explicitly set that on your router there isn't a conflict.
 

Similar threads

Sign Up For SNBForums Daily Digest

Get an update of what's new every day delivered to your mailbox. Sign up here!
Top