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.homecaso você a tenha corrigido no passado. -
Configure os PCs na sua rede para usar
/etc/resolv.confcomo 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.homeou no Network Manager:
- Agora, a simples resolução de nomes (
/etc/network/interfaces) e o nome completo (ping hostname) devem funcionar.