Conectando-se ao host usando avahi dá erro: Nome ou serviço desconhecido

4

Estou criando e destruindo máquinas virtuais o tempo todo, a fim de testar vários serviços ou aplicativos, e por isso gostaria de usar o avahi para conectar-se a eles por seus nomes, para que eu não precise usar espaço valioso na minha cabeça para endereços IP dinâmicos que provavelmente serão eliminados amanhã de qualquer maneira. Isso nem sempre parece funcionar.

Atualmente, tenho duas máquinas virtuais CentOS 6.3, ambas executando o avahi-daemon, mas uma delas não pode ser acessada pelo nome.

A máquina com problemas:

error@underground ~ $ ssh nagios.local
ssh: Could not resolve hostname nagios.local: Name or service not known

A máquina de trabalho:

error@underground ~ $ ssh puppet.local
[email protected]'s password: 

Ainda consigo ver na rede: (underground é a máquina host da qual estou trabalhando)

error@underground ~ $ avahi-browse -at
+    br0 IPv4 puppet                                        SSH Remote Terminal  local
+    br0 IPv4 nagios                                        SSH Remote Terminal  local
+    br0 IPv4 puppet [52:54:00:d0:31:c7]                    Workstation          local
+    br0 IPv4 nagios [52:54:00:93:ec:af]                    Workstation          local
+    br0 IPv4 underground [6c:62:6d:d1:df:ad]               Workstation          local
+ virbr0 IPv4 underground [52:54:00:8e:60:30]               Workstation          local

Com base no feedback, a saída de getent hosts :

error@underground ~ $ getent hosts nagios.local
error@underground ~ $ getent hosts puppet.local
192.168.12.146  puppet.local

No nagios.local, a máquina virtual inacessível, o avahi-daemon (obviamente) está instalado e em execução, e eu tenho o orifício apropriado no firewall:

 pkts bytes target     prot opt in     out     source               destination
   74 15950 ACCEPT     udp  --  *      *       0.0.0.0/0            224.0.0.251         state NEW udp dpt:5353 

O syslog em nagios.local não me dá nenhuma pista do que pode estar acontecendo:

Jul 18 04:24:18 nagios avahi-daemon[1384]: Leaving mDNS multicast group on interface eth0.IPv4 with address 192.168.12.132.
Jul 18 04:24:18 nagios avahi-daemon[1476]: Found user 'avahi' (UID 70) and group 'avahi' (GID 70).
Jul 18 04:24:18 nagios avahi-daemon[1476]: Successfully dropped root privileges.
Jul 18 04:24:18 nagios avahi-daemon[1476]: avahi-daemon 0.6.25 starting up.
Jul 18 04:24:18 nagios avahi-daemon[1476]: WARNING: No NSS support for mDNS detected, consider installing nss-mdns!
Jul 18 04:24:18 nagios avahi-daemon[1476]: Successfully called chroot().
Jul 18 04:24:18 nagios avahi-daemon[1476]: Successfully dropped remaining capabilities.
Jul 18 04:24:18 nagios avahi-daemon[1476]: Loading service file /services/ssh.service.
Jul 18 04:24:18 nagios avahi-daemon[1476]: Joining mDNS multicast group on interface eth0.IPv4 with address 192.168.12.132.
Jul 18 04:24:18 nagios avahi-daemon[1476]: New relevant interface eth0.IPv4 for mDNS.
Jul 18 04:24:18 nagios avahi-daemon[1476]: Network interface enumeration completed.
Jul 18 04:24:18 nagios avahi-daemon[1476]: Registering new address record for 2001:db8:1600:80bf:5054:ff:fe93:ecaf on eth0.*.
Jul 18 04:24:18 nagios avahi-daemon[1476]: Registering new address record for 192.168.12.132 on eth0.IPv4.
Jul 18 04:24:18 nagios avahi-daemon[1476]: Registering HINFO record with values 'X86_64'/'LINUX'.
Jul 18 04:24:19 nagios avahi-daemon[1476]: Server startup complete. Host name is nagios.local. Local service cookie is 3129794608.
Jul 18 04:24:19 nagios avahi-daemon[1476]: Service "nagios" (/services/ssh.service) successfully established.

A principal diferença entre essas duas instalações é que o puppet.local foi instalado como uma instalação "Desktop", enquanto o nagios.local foi instalado como uma instalação "Minimal" e teve os vários pacotes relacionados ao avahi instalados posteriormente.

Não entendo por que não consigo resolver o nome dessa máquina. Que coisa completamente óbvia senti falta?

Atualização: Com base na recomendação do mgorven, verifiquei novamente o host e descobri que ele não tinha nss-mdns instalado. Então eu instalei, e agora o problema está exatamente invertido! Como visto do host:

error@underground ~ $ getent hosts puppet.local
error@underground ~ $ getent hosts nagios.local
192.168.12.132  nagios.local
    
por Michael Hampton 18.07.2012 / 06:34

1 resposta

2

Meu palpite é que a biblioteca NSS não está configurada para consultar o mDNS ao procurar nomes de host, e assim, quando os programas procuram o nome do host, ele falha (mesmo que o próprio Avahi esteja captando o nome). Verifique se o pacote nss-mdns está instalado (parece ser apenas estar disponível em EPEL , não no próprio CentOS), e que a linha hosts em /etc/nsswitch.conf contém mdns4 (ou banco de dados mdns4_minimal ). Deve ser algo como isto:

hosts:      files mdns4_minimal [NOTFOUND=return] dns

Você pode testar pesquisas de nome de host com getent hosts <hostname> .

    
por 18.07.2012 / 07:03