Sobre sua saída atual
ping wstation
PING wstation.local.domain
Indica claramente que seu computador está anexando .local.domain
a consultas não FQDN. Isso é algo configurado incorretamente ou pelo menos errado em sua configuração. (a menos que você use o sufixo .local.domain
de propósito)
Resolução de nomes e períodos
Uma coisa importante que muitas pessoas não sabem é que um nome completo deve sempre terminar com um ponto final ( .
). Se você omiti-lo, a máquina tentará resolvê-lo no domínio de pesquisa local (por exemplo, mydomain.tld). Então, nesse caso, uma consulta para mypc.local
se tornaria mypc.local.mydomain.tld
. Para evitar isso, consulte com o período.
Configuração do resolvedor
A configuração do resolvedor é de grande importância aqui. No Ubuntu (e Debian) isso é configurado no arquivo /etc/network/interfaces
(supondo que você não esteja executando o NetworkManager):
iface eth0 inet static
address 192.168.3.3
netmask 255.255.255.0
gateway 192.168.3.1
dns-nameservers 192.168.3.45 192.168.8.10
dns-search foo.org bar.com # <-- these are the search domains
A resolução de nomes no Linux também pode ser realizada de outras maneiras. Não é apenas que o servidor DNS local está sendo consultado por tudo isso. Dê uma olhada no seu arquivo /etc/nsswitch.conf
para a configuração hosts
da resolução:
hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
Isso significa que os arquivos são tentados primeiro (esse é o arquivo /etc/hosts
), depois o mDNS e somente depois o servidor DNS real é consultado. O mDNS é implementado usando Avahi no Linux e é chamado Bonjour em dispositivos Apple. Ele está usando o sufixo .local
por padrão e funciona por meio de mensagens de difusão. Muito parecido com o ARP funciona, mas para o DNS.
Todos esses sistemas podem ser muito confusos e ainda mais quando se usa .local
em uma configuração regular de DNS combinada com dispositivos mDNS. Eu acho que é por isso que você está confuso agora a respeito de porque um dispositivo funciona e o outro não: eles não estão todos usando o mesmo método de resolução.
Para resolver as coisas
- Evite o uso se
.local
, a menos que você queira confiar no mDNS completamente. De sua pergunta, eu entendo que você gostaria de manter as coisas configuradas em um lugar central, então minha abordagem aqui é evitá-lo. - Configure seu servidor DNS local (o dispositivo DD-WRT no seu caso) para usar um nome de domínio especial, por exemplo, %código%. Para dnsmasq esta é uma configuração única, mas em configurações regulares isso deve ser configurado tanto no servidor DNS quanto no servidor DHCP (como está sendo anunciado via DHCP).
- Configure todos os computadores para que tenham um nome de host simples e exclusivo. Eles usam isso em seu pedido de DHCP e isso é usado no dnsmasq em execução no seu roteador para resolvê-los. Como alternativa, configure-os manualmente para não precisar depender do DHCP.
- Remova qualquer configuração que tenha ficado em
my.home
caso você a tenha corrigido no passado. -
Configure os PCs na sua rede para usar
/etc/resolv.conf
como o domínio de pesquisa local. Isso pode ser feito via DHCP automaticamente, ou se estiver usando endereços estáticos através do arquivomy.home
ou no Network Manager: - Agora, a simples resolução de nomes (
/etc/network/interfaces
) e o nome completo (ping hostname
) devem funcionar.