¿Por qué los programas Nix no pueden resolver nombres mDNS cuando los programas nativos sí lo hacen?

¿Por qué los programas Nix no pueden resolver nombres mDNS cuando los programas nativos sí lo hacen?

Mis programas nativos (en Fedora) pueden resolver nombres mDNS/Avahi/zeroconf, así:

$ ping felonyspork.local -c 1  
PING felonyspork.local (192.168.88.169) 56(84) bytes of data.
64 bytes from 192.168.88.169 (192.168.88.169): icmp_seq=1 ttl=64 time=1.73 ms

--- felonyspork.local ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 1.734/1.734/1.734/0.000 ms

$ ssh felonyspork.local        
Last login: Mon Apr 25 16:05:34 2022 from 192.168.88.200

$ exit
Connection to felonyspork.local closed.

Sin embargo, mis programas instalados en Nix no son:

$ nix-shell -p openssh ssh-tools

[nix-shell:~/src/nixconfig]$ ssh-ping -c 1 felonyspork.local
SSHPING felonyspork.local

--- felonyspork.local ping statistics ---
1 requests transmitted, 0 requests received, 100% request loss

[nix-shell:~/src/nixconfig]$ ssh felonyspork.local
ssh: Could not resolve hostname felonyspork.local: Name or service not known

Tengo mDNS configurado en /etc/nsswitch.conf:

hosts:      files myhostname mdns4_minimal [NOTFOUND=return] resolve [!UNAVAIL=return] dns

Y avahi-daemonse está ejecutando en mi sistema.

¿Cómo puedo hacer que los programas Nix resuelvan correctamente los nombres mDNS? Esto es especialmente importante, porque la implementación con Morph requiere una sesión Nix SSH que funcione.

Respuesta1

El eslabón que falta aquí es nscd; simplemente instalar nscde iniciar el demonio hace que los programas instalados en Nix funcionen.

$ sudo dnf install nscd
$ sudo systemctl start nscd.service
$ nix-shell -p ssh-tools

[nix-shell:~]$ ssh-ping felonyspork.local
SSHPING felonyspork.local
Pong from felonyspork.local: ssh_seq=1 time=2191 ms
Pong from felonyspork.local: ssh_seq=2 time=1310 ms
^C
--- felonyspork.local ping statistics ---
2 requests transmitted, 2 requests received, 0% request loss

información relacionada