If the primary issue is that other devices can only resolve your
hostname after restarting avahi-daemon for a short time, plus, this
machine doesn't see anything else on the network, it means that for one
reason or another mDNS packets on port 5353 are not making it back to
this host.

The overwhelming majority of such cases are due to a bug in the driver
for that network interface, almost always its a wireless interface or
some kind - it's rare in wired ethernet drivers but not impossible.

Very often setting the interface to promiscuous mode will fix this, because it 
tells the NIC to receive all packets (by default NICs filter out packets not 
intended for the host). You can try this command to set it:
ip link set ens160 promisc on

If this solves the issue, then it's 100% a buggy driver and I cannot do
anything about that at the avahi level. You'll need to look at getting
the driver fixed. This is common with bad wifi drivers, very rare with
ethernet.

If that doesn't help, it could be the driver also doesn't support promiscuous 
but I've not really seen that before. I would then check
- Firewall on this machine,
- Any features of your wireless network such as "multicast dns optimisation", 
etc

If you run tcpdump for port 5353 you'll see packets coming and going. I suspect 
most likely your machine never receives any query packets from another host. So 
you can try run this command and then running a query from another host:
sudo tcpdump -ni ens160 --no-promiscuous-mode port 5353 

You can also try this without "--no-promiscuous-mode" (by default
tcpdump puts the interface in promiscious mode, same as the above
command).


As a final note the resolvectl/resolved mdns support is totally
independent of avahi, having it enabled could cause mDNS to fail in some
cases - particularly with a network that performs 'multicast dns
optimisation' where the packets are converted from multicast to unicast.
Only a single process can bind to port 5353 for unicast packets and the
packets will randomly get sent to resolved, avahi, chrome.. or any other
process listening on port 5353. So disabling it (and anything else
listening on 5353) could help in some specific circumstances though
usually not necessary in most cases.

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to avahi in Ubuntu.
https://bugs.launchpad.net/bugs/2021409

Title:
  mdns failng with current versions of libnss-mdns and avahi-daemon

Status in Avahi:
  New
Status in avahi package in Ubuntu:
  New
Status in nss-mdns package in Ubuntu:
  New

Bug description:
  I have Ubuntu Server 22.04.2

  I have installed avahi-daemon and libnss-mdns, but mdns resolution is
  not occurring over my primary network interface:

  Note that this is with `allow-interfaces=ens160` set /etc/avahi/avahi-
  daemon.conf.

  (22:25:17 Sat May 27 2023 jeremy@cid pts/0 aarch64)
  [648] ~ $ sudo resolvectl mdns ens160 1

  (22:25:22 Sat May 27 2023 jeremy@cid pts/0 aarch64)
  [649] ~ $ resolvectl status
  Global
         Protocols: -LLMNR +mDNS -DNSOverTLS DNSSEC=no/unsupported
  resolv.conf mode: stub

  Link 2 (ens160)
      Current Scopes: DNS mDNS/IPv4 mDNS/IPv6
           Protocols: +DefaultRoute +LLMNR +mDNS -DNSOverTLS 
DNSSEC=no/unsupported
  Current DNS Server: 2601:647:6680:4b95::1
         DNS Servers: 10.1.30.1 2601:647:6680:4b95::1
          DNS Domain: localdomain

  (22:25:27 Sat May 27 2023 jeremy@cid pts/0 aarch64)
  [650] ~ $ avahi-resolve -n cid.local
  Failed to resolve host name 'cid.local': Timeout reached

  (22:26:03 Sat May 27 2023 jeremy@cid pts/0 aarch64)
  [651] ~ $ avahi-resolve -a 10.0.30.1
  Failed to resolve address '10.0.30.1': Timeout reached

  (22:26:13 Sat May 27 2023 jeremy@cid pts/0 aarch64)
  [652] ~ $ sudo systemctl status avahi-daemon
  ● avahi-daemon.service - Avahi mDNS/DNS-SD Stack
       Loaded: loaded (/lib/systemd/system/avahi-daemon.service; enabled; 
vendor preset: enabled)
       Active: active (running) since Sat 2023-05-27 22:22:29 UTC; 3min 51s ago
  TriggeredBy: ● avahi-daemon.socket
     Main PID: 850 (avahi-daemon)
       Status: "avahi-daemon 0.8 starting up."
        Tasks: 2 (limit: 4523)
       Memory: 1.5M
          CPU: 15ms
       CGroup: /system.slice/avahi-daemon.service
               ├─850 "avahi-daemon: running [cid.local]"
               └─891 "avahi-daemon: chroot helper"

  May 27 22:22:29 cid avahi-daemon[850]: No service file found in 
/etc/avahi/services.
  May 27 22:22:29 cid avahi-daemon[850]: Joining mDNS multicast group on 
interface ens160.IPv6 with address 2601:647:6680:4b95:20c:29ff:fe42:f399.
  May 27 22:22:29 cid avahi-daemon[850]: New relevant interface ens160.IPv6 for 
mDNS.
  May 27 22:22:29 cid avahi-daemon[850]: Joining mDNS multicast group on 
interface ens160.IPv4 with address 10.1.30.2.
  May 27 22:22:29 cid avahi-daemon[850]: New relevant interface ens160.IPv4 for 
mDNS.
  May 27 22:22:29 cid avahi-daemon[850]: Network interface enumeration 
completed.
  May 27 22:22:29 cid avahi-daemon[850]: Registering new address record for 
2601:647:6680:4b95:20c:29ff:fe42:f399 on ens160.*.
  May 27 22:22:29 cid avahi-daemon[850]: Registering new address record for 
10.1.30.2 on ens160.IPv4.
  May 27 22:22:30 cid avahi-daemon[850]: Server startup complete. Host name is 
cid.local. Local service cookie is 2371061072.
  May 27 22:26:11 cid avahi-daemon[850]: wide-area.c: Query timed out.

  (22:27:14 Sat May 27 2023 jeremy@cid pts/0 aarch64)
  [657] ~ $ grep hosts /etc/nsswitch.conf 
  hosts:          files mdns4_minimal [NOTFOUND=return] dns

  ---

  If I set 'allow-interfaces=ens160,lo`, we are able to resolve
  cid.local to localhost:

  $ avahi-resolve -n cid.local               
  cid.local     127.0.0.1

  but I cannot lookup anything else on my network via the ens160
  interface.

  I *can* resolve cid.local (10.1.30.2) from other devices on my network
  for a brief moment after I restart avahi-daemon.

To manage notifications about this bug go to:
https://bugs.launchpad.net/avahi/+bug/2021409/+subscriptions


-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to