Quando eu trouxe um Raspberry Pi para a rede, esse problema manifestou-se de uma maneira nova e finalmente consegui diagnosticá-lo.
O problema está relacionado a systemd-resolved
. Isso tem afetado
outros usuários, veja por exemplo Ask do Ubuntu procura nslookup ip, mas ping
não
ou systemd-resolved não consulta servidor dns para local
domínio .
Eu supus que ssh myserver
acionaria uma pesquisa de DNS de
%código%. No entanto, esse não é o caso do meu sistema, aqui está o
padrão myserver
:
$ cat /etc/nsswitch.conf
# Name Service Switch configuration file.
# See nsswitch.conf(5) for details.
...
hosts: files mymachines myhostname resolve [!UNAVAIL=return] dns
...
O componente nsswitch.conf
é resolve
, que é um Lennart
Poettering projeto para implementar o
Zeroconf
protocolos DNS multicast
e Nome do Link Multicast local
Resolução .
O systemd-resolved
significa que quando [!UNAVAIL=return]
é
disponível, a resolução do host DNS nunca é usada. Geralmente isso não é
problema porque systemd-resolved
também é capaz de criar consultas DNS.
No entanto, aparentemente, não faz isso para nomes de host de rótulo único como
systemd-resolved
, mesmo quando o servidor DNS está no meu roteador local
(192.168.1.1). Isto é porque é raciocinado que single-label
hostnames não devem ser expostos à rede externa, como explicado
por Lennart em este tópico do Github .
Isso explica o fato de que myserver
produziu um endereço IPv4
(do roteador), enquanto host myserver
produziu um endereço IPv6 (de
Multicast DNS ou LLNR, não tenho certeza qual).
Fiquei confuso com isso porque nunca aprendi sobre o DNS Multicast ou LLNR ou IPv6. Eu nunca aprendi sobre essas tecnologias porque eu achava que as tecnologias familiares de IPv4 e DNS eram suficientes para eu.
Aparentemente, ssh myserver
é necessário não apenas para produzir
Zeroconf solicita, mas também para responder a eles. O Raspberry Pi
que eu trouxe para minha rede teve seu systemd-resolved
parado para
alguma razão, embora eu pudesse procurar o nome do host com
systemd-resolved
e host
, não consegui ver via dig
ou ssh
:
$ ping raspberrypi
ping: raspberrypi: Name or service not known
[2]$ host raspberrypi
raspberrypi has address 192.168.1.135
Isso me levou ao primeiro relatório de bug Ask Debian acima, que me levou a
a solução. Se eu começar ping
no Pi então eu sou capaz
para systemd-resolved
e ping
it. No entanto, se eu desativar ssh
localmente, também posso systemd-resolved
e ping
para o Pi.
Por enquanto, acabei de desativar ssh
em todos os meus sistemas
$ sudo systemctl stop systemd-resolved.service
$ sudo systemctl disable systemd-resolved.service
pois parece criar problemas com systemd-resolved
do GNU libc e como
requer que eu aprenda sobre tecnologias como IPv6, mDNS e LLNR,
que eu não preciso atualmente - porque meus computadores estão todos conectados
para um roteador consumidor básico que fornece tecnologias familiares de DNS
e NAT fora da caixa.
Obrigado a todos que comentaram a minha pergunta original, mas no final
não era necessário "configurar um prefixo ULA ou obter
conectividade global IPv6, ou ambos "via" uma configuração em seu roteador doméstico,
se não é um pedaço completo de "ou" para gritar com o seu ISP ". Eu só
teve que desativar alguns dos novos softwares de Lennart para me afastar
a borda do sangramento. O tópico do Github tem alguma discussão sobre se
o software está realmente se comportando corretamente, mas eu me encontro no
mesma posição que muitos outros usuários: depois de passar horas de tempo
Descobrir que nscd
é o culpado, prefiro não
passar mais horas tentando entender como corrigi-lo, quando a desativação é
tão fácil.