Invalid IPEndPoint (127.0.01) when playing to AirPlay targets

Roon Core Machine

lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye

model name : Intel(R) Core™ i7-4770K CPU @ 3.50GHz
stepping : 3
microcode : 0x28
cpu MHz : 1546.340
cache size : 8192 KB
physical id : 0
siblings : 8
core id : 0
cpu cores : 4
apicid : 0
initial apicid : 0
fpu : yes
fpu_exception : yes
cpuid level : 13
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx pdpe1gb rdtscp lm constant_tsc arch_perfmon pebs bts rep_good nopl xtopology nonstop_tsc cpuid aperfmperf pni pclmulqdq dtes64 monitor ds_cpl vmx est tm2 ssse3 sdbg fma cx16 xtpr pdcm pcid sse4_1 sse4_2 movbe popcnt tsc_deadline_timer aes xsave avx f16c rdrand lahf_lm abm cpuid_fault epb invpcid_single pti ssbd ibrs ibpb stibp tpr_shadow vnmi flexpriority ept vpid ept_ad fsgsbase tsc_adjust bmi1 avx2 smep bmi2 erms invpcid xsaveopt dtherm arat pln pts md_clear flush_l1d
vmx flags : vnmi preemption_timer invvpid ept_x_only ept_ad ept_1gb flexpriority tsc_offset vtpr mtf vapic ept vpid unrestricted_guest ple
bugs : cpu_meltdown spectre_v1 spectre_v2 spec_store_bypass l1tf mds swapgs itlb_multihit srbds
bogomips : 8499.03
clflush size : 64
cache_alignment : 64
address sizes : 39 bits physical, 48 bits virtual
power management:

2x 8GB DDR3

cat /proc/meminfo
MemTotal: 16198184 kB
MemFree: 6696012 kB
MemAvailable: 9453636 kB

Roon Core version 1.8 (build 884) Stable

Networking Gear & Setup Details

Server → Wired 2.5GbE unmanaged switch (TP-Link TL-SG105-M2) → Wired 1GbE managed switch GS305e → Ubiquiti U6-LR Access Point → AirPlay clients over Wifi and Wired

Connected Audio Devices

HomePod - wifi
HomePod minis x3 - wifi
Yamaha RX-V583 (wired)

All clients are using airplay
HomePods are all running iOS 15.2

Number of Tracks in Library

10,000 tracks

Description of Issue

Issue with incorrect IPEndpoint whilst using Airplay targets.
As far as I can tell from the logs It looks like Roon is allowing the use of the loopback interface to be used as the IPEndpoint with an Airplay client.

This is an occasional annoyance, if I hit play and it doesn’t work I can keep hitting play in the Control interface on my phone, or PC a couple of times it will eventually pick the correct/actual IP address for the endpoint and play.

My best guess is that Roon is not using the correct IP endpoint for the Airplay client and defaulting to the loopback IP address.
I would expect Roon to validate that 127.0.0.1 is a loopback address and not a valid IP address for an AirPlay client

I have reproduced this issue multiple times on different HomePods in my home.

What my server network interfaces look like:

$>ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.8.10  netmask 255.255.255.0  broadcast 192.168.8.255
        inet6 <redacted>  prefixlen 64  scopeid 0x0<global>
        inet6 <redacted>  prefixlen 64  scopeid 0x0<global>
        inet6 fe80::<redacted>  prefixlen 64  scopeid 0x20<link>
        ether 00:e0:4c:68:61:f2  txqueuelen 1000  (Ethernet)
        RX packets 353826  bytes 60508901 (57.7 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 780663  bytes 620614645 (591.8 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 149470  bytes 26814787 (25.5 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 149470  bytes 26814787 (25.5 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
$> ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 00:e0:4c:68:61:f2 brd ff:ff:ff:ff:ff:ff
    altname enp1s0
    inet 192.168.8.10/24 brd 192.168.8.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 <redacted>/64 scope global dynamic mngtmpaddr 
       valid_lft 86381sec preferred_lft 14381sec
    inet6 <redacted>/64 scope global dynamic mngtmpaddr 
       valid_lft 1797sec preferred_lft 298sec
    inet6 fe80::<redacted>/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast state DOWN group default qlen 1000
    link/ether 74:d0:2b:2c:8d:21 brd ff:ff:ff:ff:ff:ff
    altname enp0s25
    altname eno1

Data from avahi-browse -avrt
Filtered down to the single airplay endpoint I was debugging on / matching to the Roon Server log file snippets

+   eth0 IPv4 Garage                                        _srpl-tls._tcp       local
=   eth0 IPv4 MyHome56                                      _meshcop._udp        local
   hostname = [Garage.local]
   address = [192.168.8.29]
   port = [49191]
   txt = ["xa=829DBDF22C3740CE" "tv=1.2.0" "sb=00000031" "vn=Apple Inc." "rv=1" "xp=12A8503AFCF64161" "nn=MyHome56"]
+   eth0 IPv4 E02B969787D4@Garage                           AirTunes Remote Audio local
+   eth0 IPv4 Garage                                        AirPlay Remote Video local
+   eth0 IPv4 Garage                                        _companion-link._tcp local
+   eth0 IPv4 70-35-60-63.1 Garage                          _sleep-proxy._udp    local
=   eth0 IPv4 Garage                                        _srpl-tls._tcp       local
   hostname = [Garage.local]
   address = [192.168.8.29]
   port = [853]
   txt = ["server-id=d66f2ff9b7c4fece" "domain=openthread.thread.home.arpa."]

=   eth0 IPv4 E02B969787D4@Garage                           AirTunes Remote Audio local
   hostname = [Garage.local]
   address = [192.168.8.29]
   port = [7000]
   txt = ["vv=2" "ov=15.2" "vs=600.8.41" "vn=65537" "tp=UDP" "pk=3aa29ce45fea0b6a1db815024f0912f105ec94eb50d0b72b8463d95d68bac425" "am=AudioAccessory5,1" "md=0,1,2" "sf=0x404" "ft=0x4A7FCA00,0xBC356BD0" "et=0,3,5" "da=true" "cn=0,1,2,3"]

UFW firewall rules running on the server:

>ufw status numbered
Status: active

     To                         Action      From
     --                         ------      ----
[ 1] Anywhere                   ALLOW IN    192.168.8.0/24            
[ 2] Anywhere on eth0           ALLOW IN    192.168.8.0/24            
[ 3] Anywhere on eth1           REJECT IN   Anywhere                  
[ 4] 22/tcp                     LIMIT IN    Anywhere                  
[ 5] Anywhere (v6) on eth1      REJECT IN   Anywhere (v6)             
[ 6] Anywhere (v6)              REJECT OUT  Anywhere (v6) on eth1      (out)

Roon Log file snippets

01/12 17:35:09 Trace: [ipaddresses] enumerating addresses
01/12 17:35:09 Trace: [ipaddresses]    FOUND   lo 127.0.0.1
01/12 17:35:09 Trace: [ipaddresses]    FOUND   eth0 192.168.8.10
01/12 17:35:09 Trace: [ipaddresses]    SKIPPED eth1: no ipv4

An example of the wrong IP Endpoint being selected, and then a couple of minutes later (as I was filling out this support ticket) it subsequently working again.

01/12 18:16:23 Trace: [zone Garage] PlayPause
01/12 18:16:23 Trace: [zone Garage] Unpause
01/12 18:16:23 Trace: [zone Garage] Selecting Source state=Paused
01/12 18:16:23 Trace: [zone Garage] Unsuspend
01/12 18:16:23 Info: [Garage] [zoneplayer] Playing: /export/media/music/alex/flac/AFI/Decemberunderground/04 Summer Shudder.flac
01/12 18:16:23 Info: [Garage] [zoneplayer]     Open Result (Playing):Result[Status=Success]
01/12 18:16:23 Info: [Garage] [zoneplayer] Performing initial seek to 108000
01/12 18:16:23 Info: [Garage] [zoneplayer] Starting playback
01/12 18:16:23 Trace: [airplay/client] Connecting to airplay server
01/12 18:16:23 Warn: [airplay/rtsp] SocketException while connecting to RTSP server: Connection refused [::ffff:127.0.0.1]:7000
01/12 18:16:23 Warn: [airplay/client] Failed to connect: Result[Status=NetworkError]
01/12 18:16:23 Info: [zone Garage] OnPlayFeedback Playing
01/12 18:16:23 Info: [airplay] AirPlay device connection failed to: AirPlayDevice[DeviceId=E02B969787D4@Garage._raop._tcp.local, Name=Garage.local, Model=AudioAccessory5,1, IPEndPoint=127.0.0.1:7000]
01/12 18:16:23 Trace: [Garage] [HighQuality, 16/44 FLAC => 16/44] [PLAYING @ 1:48/3:06] Summer Shudder - AFI
01/12 18:16:23 Trace: [musicpowerstate] music is playing, preventing idle sleep
01/12 18:16:23 Trace: [airplay] disconnected
01/12 18:16:23 Trace: [zone] Garage received transport control from endpoint integration: suspend
01/12 18:16:23 Trace: [zone Garage] Garage received transport control from Garage: suspend
01/12 18:16:23 Trace: [zone Garage] Suspend
01/12 18:16:23 Info: [zone Garage] OnPlayFeedback Stopped
01/12 18:16:23 Info: [zone Garage] Canceling Pending Sleep
01/12 18:16:23 Trace: [Garage] [HighQuality, 16/44 FLAC => 16/44] [PAUSED @ 1:48/3:06] Summer Shudder - AFI
01/12 18:16:23 Info: [audio/env] [zoneplayer -> stream] All streams were disposed
01/12 18:16:23 Info: [audio/env] [zoneplayer] All streams were disposed
01/12 18:16:23 Info: 
--[ SignalPath ]---------------------------------------------
SignalPath Quality = HighQuality
Elements:
    Source Format=Flac 44100/16/2 BitRate=1046 Quality=Lossless
    Output OutputType=AirPlay Quality=HighQuality SubType= Model=AudioAccessory5,1
------------------------------------------------------------
01/12 18:16:26 Info: [stats] 27301mb Virtual, 1861mb Physical, 690mb Managed, 308 Handles, 97 Threads
01/12 18:16:41 Info: [stats] 27205mb Virtual, 1858mb Physical, 699mb Managed, 308 Handles, 83 Threads
01/12 18:16:56 Info: [stats] 27221mb Virtual, 1858mb Physical, 720mb Managed, 308 Handles, 85 Threads
01/12 18:17:11 Info: [stats] 27205mb Virtual, 1857mb Physical, 728mb Managed, 308 Handles, 81 Threads
01/12 18:17:26 Info: [stats] 27237mb Virtual, 1857mb Physical, 750mb Managed, 308 Handles, 89 Threads
01/12 18:17:41 Info: [stats] 27205mb Virtual, 1857mb Physical, 757mb Managed, 308 Handles, 81 Threads
01/12 18:17:56 Info: [stats] 27213mb Virtual, 1857mb Physical, 776mb Managed, 308 Handles, 82 Threads
01/12 18:18:11 Info: [stats] 27205mb Virtual, 1857mb Physical, 785mb Managed, 308 Handles, 83 Threads
01/12 18:18:24 Trace: [zone Garage] PlayPause
01/12 18:18:24 Trace: [zone Garage] Unpause
01/12 18:18:24 Trace: [zone Garage] Selecting Source state=Paused
01/12 18:18:24 Trace: [zone Garage] Unsuspend
01/12 18:18:24 Info: [Garage] [zoneplayer] Playing: /export/media/music/alex/flac/AFI/Decemberunderground/04 Summer Shudder.flac
01/12 18:18:24 Info: [Garage] [zoneplayer]     Open Result (Playing):Result[Status=Success]
01/12 18:18:24 Info: [Garage] [zoneplayer] Performing initial seek to 108000
01/12 18:18:24 Info: [Garage] [zoneplayer] Starting playback
01/12 18:18:24 Trace: [airplay/client] Connecting to airplay server
01/12 18:18:24 Info: [zone Garage] OnPlayFeedback Playing
01/12 18:18:24 Trace: [Garage] [HighQuality, 16/44 FLAC => 16/44] [PLAYING @ 1:48/3:06] Summer Shudder - AFI
01/12 18:18:24 Trace: [musicpowerstate] music is playing, preventing idle sleep
01/12 18:18:24 Info: [Garage] [zoneplayer] Queueing: /export/media/music/alex/flac/AFI/Decemberunderground/09 Kiss And Control.flac
01/12 18:18:24 Info: [Garage] [zoneplayer] Open result (Queueing): Result[Status=Success]
01/12 18:18:24 Trace: [prebuffer] ready 149940/441000 (34%) @ 108/186 sec
01/12 18:18:24 Trace: [airplay/client] Requesting OPTIONS
01/12 18:18:24 Info: [airplay/client] REQUESTING OPTIONS *
01/12 18:18:24 Trace: [airplay/client] Got good OPTIONS: ANNOUNCE, SETUP, RECORD, PAUSE, FLUSH, TEARDOWN, OPTIONS, GET_PARAMETER, SET_PARAMETER, POST, GET, PUT
01/12 18:18:24 Info: [airplay] AirPlay device connected: AirPlayDevice[DeviceId=E02B969787D4@Garage._raop._tcp.local, Name=Garage.local, Model=AudioAccessory5,1, IPEndPoint=192.168.8.29:7000]
01/12 18:18:24 Trace: [airplay] connected
01/12 18:18:24 Trace: [airplay/client] Sending ANNOUNCE
01/12 18:18:24 Trace: [airplay/client] ANNOUNCE Succeeded
01/12 18:18:24 Trace: [airplay/client] Sending SETUP
01/12 18:18:24 Trace: [airplay/client] SETUP was successful
01/12 18:18:24 Trace: [airplay/client] Sending RECORD
01/12 18:18:24 Trace: [airplay/client] Record Succeeded
01/12 18:18:24 Trace: [airplay/client] Sending SET_PARAMETER volume -4.800000000000001db
01/12 18:18:24 Trace: [airplay/client] Sending first sync packet rtptime=219248178 synctime=219336378
01/12 18:18:24 Info: 
--[ SignalPath ]---------------------------------------------
SignalPath Quality = HighQuality
Elements:
    Source Format=Flac 44100/16/2 BitRate=1046 Quality=Lossless
    Output OutputType=AirPlay Quality=HighQuality SubType= Model=AudioAccessory5,1
------------------------------------------------------------
01/12 18:18:26 Info: [stats] 27253mb Virtual, 1863mb Physical, 816mb Managed, 314 Handles, 91 Threads
01/12 18:18:27 Trace: [zone Garage] PlayPause
01/12 18:18:27 Trace: [zone Garage] Pause
01/12 18:18:27 Info: [zone Garage] Canceling Pending Sleep
01/12 18:18:27 Trace: [airplay/client] Sending FLUSH
01/12 18:18:27 Info: [zone Garage] OnPlayFeedback Paused
01/12 18:18:27 Trace: [Garage] [HighQuality, 16/44 FLAC => 16/44] [100% buf] [PAUSED @ 1:50/3:06] Summer Shudder - AFI
01/12 18:18:27 Trace: [airplay/client] FLUSH was successful
01/12 18:18:32 Trace: [zone Garage] [zone] no playback for 5s, suspending to release audio device
01/12 18:18:32 Trace: [airplay/client] Sending TEARDOWN
01/12 18:18:32 Info: 
--[ SignalPath ]---------------------------------------------
SignalPath Quality = HighQuality
Elements:
    Source Format=Flac 44100/16/2 BitRate=1046 Quality=Lossless
    Output OutputType=AirPlay Quality=HighQuality SubType= Model=AudioAccessory5,1
------------------------------------------------------------
01/12 18:18:32 Trace: [zone Garage] Suspend
01/12 18:18:32 Trace: [zone Garage] Stop
01/12 18:18:32 Info: [zone Garage] OnPlayFeedback Stopped
01/12 18:18:32 Info: [zone Garage] Canceling Pending Sleep
01/12 18:18:32 Info: [audio/env] [zoneplayer -> stream] All streams were disposed
01/12 18:18:32 Trace: [airplay/client] Sending FLUSH
01/12 18:18:32 Info: [audio/env] [zoneplayer] All streams were disposed
01/12 18:18:33 Trace: [airplay/client] TEARDOWN was successful
01/12 18:18:33 Info: [airplay] AirPlay device disconnected: AirPlayDevice[DeviceId=E02B969787D4@Garage._raop._tcp.local, Name=Garage.local, Model=AudioAccessory5,1, IPEndPoint=192.168.8.29:7000]
01/12 18:18:33 Trace: [airplay] disconnected
01/12 18:18:33 Trace: [zone] Garage received transport control from endpoint integration: suspend
01/12 18:18:33 Trace: [zone Garage] Garage received transport control from Garage: suspend
01/12 18:18:33 Trace: [zone Garage] Suspend
01/12 18:18:33 Info: [zone Garage] Canceling Pending Sleep
01/12 18:18:33 Warn: [airplay/client] FLUSH failed: 455 Method Not Valid In This State

RAATServer log:

01/12 17:35:09 Info: Starting RAATServer v1.8 (build 884) stable on linuxx64
01/12 17:35:09 Trace: [RAATServer] detected ALSA support
01/12 17:35:09 Warn: [bits] myinfo: {
    "os": "Linux 5.10.0-10-amd64",
    "platform": "linuxx64",
    "machineversion": 100800884,
    "branch": "stable",
    "appmodifier": "",
    "appname": "RAATServer"
}
01/12 17:35:10 Debug: [easyhttp] [1] POST to https://bits.roonlabs.net/1/q/roon.base.,roon.internet_discovery. returned after 360 ms, status code: 200
01/12 17:35:10 Trace: [bits] updated bits, in 397ms
01/12 17:35:10 Info: [RAATServer] creating RAAT__manager
01/12 17:35:10 Info: [RAATServer]     appdata_dir  = /home/roon/RAATServer
01/12 17:35:10 Info: [RAATServer]     unique_id    = 446fdf41-9233-4443-82f2-6544755cad1c
01/12 17:35:10 Info: [RAATServer]     machine_id   = 6c40f223-3fcb-9bb0-9e6f-1bee1c9b483e
01/12 17:35:10 Info: [RAATServer]     machine_name = sauron
01/12 17:35:10 Info: [RAATServer]     os_version   = Linux 5.10.0-10-amd64
01/12 17:35:10 Info: [RAATServer]     vendor       = 
01/12 17:35:10 Info: [RAATServer]     model        = 
01/12 17:35:10 Info: [RAATServer]     service_id   = d7634b85-8190-470f-aa51-6cb5538dc1b9
01/12 17:35:10 Info: [RAATServer]     is_dev       = False
01/12 17:35:10 Trace: [raatmanager] starting
01/12 17:35:10 Trace: [raatmanager] initialized
01/12 17:35:10 Info: [RAATServer] running RAAT__manager
01/12 17:35:10 Trace: [raatmanager] starting discovery
01/12 17:35:10 Trace: [discovery] starting
01/12 17:35:10 Info: [discovery] [iface:lo:127.0.0.1] multicast recv socket is bound to 0.0.0.0:9003
01/12 17:35:10 Info: [discovery] [iface:lo:127.0.0.1] multicast send socket is bound to 0.0.0.0:33592
01/12 17:35:10 Info: [discovery] [iface:eth0:192.168.8.10] multicast recv socket is bound to 0.0.0.0:9003
01/12 17:35:10 Info: [discovery] [iface:eth0:192.168.8.10] multicast send socket is bound to 0.0.0.0:41521
01/12 17:35:10 Info: [discovery] unicast socket is bound to 0.0.0.0:9003
01/12 17:35:10 Trace: [raatmanager] starting server
01/12 17:35:10 Info: [jsonserver] listening on port 9200
01/12 17:35:10 Trace: [raatmanager] announcing
01/12 17:35:10 Debug: [discovery] broadcast op is complete
01/12 17:35:10 Trace: [inetdiscovery] added device raatserver/446fdf41-9233-4443-82f2-6544755cad1c in addr:__ADDR__
01/12 17:35:10 Trace: [inetdiscovery] added service com.roonlabs.raatserver.tcp for device raatserver/446fdf41-9233-4443-82f2-6544755cad1c
01/12 17:35:13 Trace: [jsonserver] [127.0.0.1:41104] accepted connection
01/12 17:35:13 Trace: [jsonserver] [127.0.0.1:41104] GOT[LL] [1] {"request":"enumerate_devices","subscription_id":"0"}
01/12 17:35:13 Trace: [jsonserver] [127.0.0.1:41104] SENT [1] [nonfinal] {"status": "Success", "devices": []}
01/12 17:35:15 Trace: [ipaddresses] enumerating addresses
01/12 17:35:15 Trace: [ipaddresses]    FOUND   lo 127.0.0.1
01/12 17:35:15 Trace: [ipaddresses]    FOUND   eth0 192.168.8.10
01/12 17:35:15 Trace: [ipaddresses]    SKIPPED eth1: no ipv4
01/12 17:35:15 Debug: [easyhttp] [2] POST to https://discovery.roonlabs.net/1/register returned after 220 ms, status code: 200
01/12 17:35:15 Trace: [inetdiscovery] registered 1 devices, 1 services
01/12 17:35:20 Trace: [RAATServer] refreshing @ 10s
01/12 17:35:20 Trace: [raatmanager] announcing
01/12 17:35:20 Debug: [discovery] broadcast op is complete

At the cli, when you ping Garage.local what is the IP address it returns that it is connecting to?
127.0/8 or 192.168/16?

How is local DNS being handled? a hosts file or a bind/dnsmasq server?

.local a multicast DNS address is not directly pingable on my server / resolvable on my server under its default configuration. Debian is not configured by default for resolving mDNS queries out of the box.
I was hoping/intending to leave it configured this way and rely on applications that rely on multicast / mDNS to implement it correctly.

My /etc/nssswitch.conf is not configured to perform mDNS queries by default and usually looks like this for the host entry:

hosts:          files dns

I am using nscd for the local DNS cache on my server.
I double checked and DNS queries on my server are actually handled by my router and NOT the local copy of dnsmasq started by systemd.

I can verify this by strace’ing getent and ping

All attached traces are performed after stopping the nscd daemon, clearing the host entry cache /var/caches/nscd/hosts and starting nscd

strace -e open,openat,connect,read getent hosts Garage.local
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@n\2\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/etc/host.conf", O_RDONLY|O_CLOEXEC) = 3
read(3, "multi on\n", 4096)             = 9
read(3, "", 4096)                       = 0
openat(AT_FDCWD, "/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 3
read(3, "domain <redacted>\nsearch "..., 4096) = 96
read(3, "", 4096)                       = 0
connect(3, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
connect(3, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
read(3, "\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\1\0\0\0", 32) = 32
connect(3, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
read(3, "\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\1\0\0\0", 32) = 32
+++ exited with 2 +++
strace -e open,openat,connect,read ping Garage.local
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3203\0\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libidn2.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\"\0\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260C\0\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@n\2\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libunistring.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300 \1\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 5
connect(5, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
connect(5, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
read(5, "\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 24) = 24
openat(AT_FDCWD, "/usr/share/locale/locale.alias", O_RDONLY|O_CLOEXEC) = 5
read(5, "# Locale name alias data base.\n#"..., 4096) = 2996
read(5, "", 4096)                       = 0
openat(AT_FDCWD, "/usr/share/locale/en_US.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en_US.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en_US/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en.UTF-8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en.utf8/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
openat(AT_FDCWD, "/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
ping: Garage.local: Name or service not known
+++ exited with 2 +++

If I temporarily modify my /etc/nssswitch.conf to include mdns4_minimal

hosts:          files dns mdns4_minimal

Then it will resolve through getent and ping as expected.

strace -e open,openat,connect,read getent hosts Garage.local
strace -e open,openat,connect,read getent hosts Garage.local
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@n\2\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/etc/host.conf", O_RDONLY|O_CLOEXEC) = 3
read(3, "multi on\n", 4096)             = 9
read(3, "", 4096)                       = 0
openat(AT_FDCWD, "/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 3
read(3, "domain <redacted>\nsearch "..., 4096) = 96
read(3, "", 4096)                       = 0
connect(3, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
connect(3, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
read(3, "\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\1\0\0\0", 32) = 32
connect(3, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
read(3, "\2\0\0\0\1\0\0\0\r\0\0\0\0\0\0\0\2\0\0\0\4\0\0\0\1\0\0\0\0\0\0\0", 32) = 32
192.168.8.29    Garage.local
+++ exited with 0 +++
strace -e open,openat,connect,read ping Garage.local
openat(AT_FDCWD, "/etc/ld.so.cache", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libcap.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\3203\0\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libidn2.so.0", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\360\"\0\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libresolv.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\260C\0\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/lib/x86_64-linux-gnu/libc.so.6", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\3\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0@n\2\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/libunistring.so.2", O_RDONLY|O_CLOEXEC) = 3
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\300 \1\0\0\0\0\0"..., 832) = 832
openat(AT_FDCWD, "/usr/lib/locale/locale-archive", O_RDONLY|O_CLOEXEC) = 3
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/gconv/gconv-modules.cache", O_RDONLY) = 5
connect(5, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
connect(5, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
read(5, "\2\0\0\0\1\0\0\0\1\0\0\0\4\0\0\0\r\0\0\0\0\0\0\0", 24) = 24
read(5, "\300\250\10\35\2Garage.local\0", 18) = 18
openat(AT_FDCWD, "/usr/lib/x86_64-linux-gnu/charset.alias", O_RDONLY|O_NOFOLLOW) = -1 ENOENT (No such file or directory)
connect(5, {sa_family=AF_INET, sin_port=htons(1025), sin_addr=inet_addr("192.168.8.29")}, 16) = 0
PING Garage.local (192.168.8.29) 56(84) bytes of data.
openat(AT_FDCWD, "/etc/host.conf", O_RDONLY|O_CLOEXEC) = 5
read(5, "multi on\n", 4096)             = 9
read(5, "", 4096)                       = 0
openat(AT_FDCWD, "/etc/resolv.conf", O_RDONLY|O_CLOEXEC) = 5
read(5, "domain <redacted>\nsearch "..., 4096) = 96
read(5, "", 4096)                       = 0
connect(5, {sa_family=AF_UNIX, sun_path="/var/run/nscd/socket"}, 110) = 0
read(5, "\2\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\377\377\377\377\377\377\377\377\0\0\0\0\1\0\0\0", 32) = 32
64 bytes from 192.168.8.29 (192.168.8.29): icmp_seq=1 ttl=64 time=74.7 ms

Hi @Alex_1 ,

Thank you for the detailed technical report! We are checking with the team regarding your report, we will reach out once more once they have reviewed your findings. Thanks in advance for your patience!

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.