volumio/Volumio2-UI

volumio.local vs volumio.lan

Testato opened this issue · 10 comments

I do not know if it is an issue or a strange normal behavior.

From Chrome on linux desktop Volumio respond to http://volumio.lan (not on .local)
Instead from Chrome on Android Volumio respond to http://volumio.local (and not on .lan)

This comes down to how each client converts those names into IP addresses.
Can you run this command on the desktop and paste the output?

$ nslookup volumio.lan
$ nslookup volumio.local
$ nslookup volumio

Android has known weird behaviour (volumio/Volumio2/issues/1228).
If you are able to run a shell on it and repeat the commands above that would allow us to compare.

Can you also please post your volumio version here?

Volumio 2.502 on RpiZeroW

UbuntuBudgie 18.10

ubuntubudgie@ubuntubudgie:~$ nslookup volumio.lan
Server:		127.0.0.53
Address:	127.0.0.53#53

** server can't find volumio.lan: NXDOMAIN

ubuntubudgie@ubuntubudgie:~$ nslookup volumio.local
Server:		127.0.0.53
Address:	127.0.0.53#53

** server can't find volumio.local: NXDOMAIN

ubuntubudgie@ubuntubudgie:~$ nslookup volumio
Server:		127.0.0.53
Address:	127.0.0.53#53

** server can't find volumio: SERVFAIL

Android 8.0.0

$ nslookup volumio.lan
Server:         8.8.8.8
Address:        8.8.8.8#53

 server can't find volumio.lan: NXDOMAIN

$ nslookup volumio.local
Server:         8.8.8.8
Address:        8.8.8.8#53

 server can't find volumio.local: NXDOMAIN

$ nslookup volumio
Server:         8.8.8.8
Address:        8.8.8.8#53

** server can't find volumio: NXDOMAIN

Thanks for that input, it helps but is also a bit confusing.

Q1.
At first you said your desktop can resolve volumio.lan.
But your example above shows it failing to resolve. Does it still work on firefox?

Q2.
Is the desktop the RpiZeroW? If not could you try on the desktop please?
On the machine where volumio.lan resolves, could you post the output of

$ cat /etc/resolv.conf

It might be useful to try a different DNS lookup command as well

$ host volumio.lan

8.8.8.8 is a public DNS server. It should not know anything about the names of devices inside your home LAN, so it should not be able to resolve names like volumio.lan. Assuming you are connecting your phone to your home wifi, you may need to tell your router to tell the DHCP clients which DNS server to use. But we'll get to that later.

Q3.
Your example shows volumio.local also fails on android - does it still work in chrome?
My understanding is .local should use multicast DNS to resolve the name. Not really sure how to debug that.

To test .local addresses, you can try on your ubuntu host

$ avahi-resolve -n volumio.local

This command shows you all devices advertising on mDNS

$ avahi-browse -a

These commands come in the 'avahi-utils' package.

my hw map is a classic scenario, Volumio on an RpiZeroW connected to my home HiFi by an I2S shield, an Ubuntu on pc desktop wired connected, and an Android smartphone (Samsung S8 official Rom) wireless connected

I discovered that today Chrome on Ubuntu do not resolve .lan but .local, instead Chrome on Android do not resolve .local not .lan, it work only by direct IP access.

Q1:
Ubuntu still work but like I said now work on http://volumio.local
I have only Chrome, I always uninstall Firefox from my machine, if you need it i can reinstall it.
I retested the nslookup and it respond in the same manner like my old answer on ubuntu and android

Q2:

ubuntubudgie@ubuntubudgie:~$ cat /etc/resolv.conf
nameserver 127.0.0.53
search lan
ubuntubudgie@ubuntubudgie:~$ host volumio.lan
Host volumio.lan not found: 3(NXDOMAIN)
ubuntubudgie@ubuntubudgie:~$ host volumio.local
Host volumio.local not found: 3(NXDOMAIN)
ubuntubudgie@ubuntubudgie:~$ host volumio
Host volumio not found: 2(SERVFAIL)

@xipmix

ubuntubudgie@ubuntubudgie:~$ avahi-resolve -n volumio.local
volumio.local	192.168.2.191
ubuntubudgie@ubuntubudgie:~$ avahi-resolve -n volumio.lan
Failed to resolve host name 'volumio.lan': DNS failure: NXDOMAIN
ubuntubudgie@ubuntubudgie:~$ avahi-browse -a
+   eno1 IPv4 volumio                                       _Volumio._tcp        local
+   eno1 IPv4 volumio [b8:27:eb:03:6f:d1]                   Workstation          local

Thanks for all that. Using chrome or firefox should not matter,

So it seems that when you are using chrome

  • volumio.local works ok for you on ubuntu
  • volumio.local does not work on android
  • volumio.lan does not work on ubuntu
  • volumio.lan does not work on android
    If I have misunderstood, can you indicate which cases please?

Volumio supports mDNS, i.e. it has an mDNS server running and announcing the device as volumio.local.

Your test with avahi-resolve shows your ubuntu host has support for mDNS, which is why volumio.local works.
Android does not really have mDNS support, see here

If you want volumio.lan to work then I think you need to set up some DNS entries for the .lan domain.
To make that work depends on how the DNS resolver running at 127.0.0.53 gets its information, which I don't understand at present. There are lots of threads on askubuntu that should help. If you can make it work please post your setup here, it will help people. My guess is you will need to start with your router. Look there for settings like "static IP address". You want to set up the DHCP server to always give your volumio device the same IP address (hence the 'static') and not one from the 'DHCP pool' which can give a different IP every time the device is rebooted. Then look for a way to associate names with IP addresses, so you can call it 'volumio'. You will also have to fiddle with the DNS settings, to make the router deal with requests for '.lan' names and pass any other requests (eg for something.com) on to an external server (8.8.8.8 would do).

However, even if you get .lan working on ubuntu, it may not work on android because (as the stackexchange link explains) android ignores any local DNS servers the DHCP server specifies when it hands out an IP address to android. After a brief search it seems that you can tell android which DNS server to use when connected to your wifi, see

To return to your original question, as far as I can see this is not really an issue with volumio and more a reflection of the craptastic state of networking as we know it.

Thanks for your research, I will read it today.

I do not need .lan working, I only discovering it because .local do not work when I installed Volumio.

The real strange things here is that from day one all behaviour is changed, the android now do not work and ubuntu passed from working on .lan to .local (yes you understand correctly the actual situation, that is different from day one)

I never touched the router (OpenWrt fw) so why android work on .local on day one and not now is a mistery, and why ubuntu work on .lan on day one and not on .local is another mistery.

That is strange but at least it works as expected now.

If you are content can you close this issue please? You can always add notes to it after if you like.

Ok i closed it

But if you consider normal that Android do not resolve volumio.locan (not always, on my day one it worked) maybe it is good to add this info to the installation documentation ?

Maybe a simple tips like "please try also volumio.lan and if not work you need to identify the IP addres"