Um pouco preso aqui.
Eu tenho 2 máquinas que não podem resolver nomes de hosts da LAN, a menos que haja entradas específicas em / etc / hosts
Mas outras máquinas na LAN podem resolver nomes de host.
Minha LAN:
- 1 x roteador Cisco executando DD-WRT v24-sp2 com DNSMasq ativado. Eu configurei isso com os nomes de host e IPs na minha LAN.
- 1 x Kubuntu 12.10 (resolve todos os nomes de host corretamente, desde que digitados no DNSMasq no roteador)
2 x NAS (também resolva todos os nomes corretamente)
1 x Ubuntu Server 12.04 (isso NÃO resolve nomes de host locais, a menos que eles sejam inseridos em / etc / hosts)
- 1 x XBMCLive (Dharma) (o mesmo - não é resolvido, a menos que haja entradas no / etc / hosts)
Como faço para os 2 últimos usarem as entradas DNSMasq no roteador? Cada máquina está configurada para usar o roteador como servidor de nomes e todas as unidades resolvem os endereços externos corretamente.
Obrigado.
mais algumas informações:
enquanto estiver no servidor, se eu executar ping em outro PC (wstation)
$ ping wstation
PING wstation.local.domain (x.x.x.x)
Se eu acrescentar .local
$ ping wstation.local
PING wstation.local.local.domain (x.x.x.x)
e diretamente
$ ping 10.0.0.4
PING 10.0.0.4 (10.0.0.4) 56(84) bytes of data.
64 bytes from 10.0.0.4: icmp_req=1 ttl=64 time=0.387 ms
64 bytes from 10.0.0.4: icmp_req=2 ttl=64 time=0.316 ms
64 bytes from 10.0.0.4: icmp_req=3 ttl=64 time=0.312 ms
64 bytes from 10.0.0.4: icmp_req=4 ttl=64 time=0.280 ms
64 bytes from 10.0.0.4: icmp_req=5 ttl=64 time=0.322 ms
^C
--- 10.0.0.4 ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 3998ms
rtt min/avg/max/mdev = 0.280/0.323/0.387/0.038 ms
Respostas:
Sobre sua saída atual
Indica claramente que seu PC está anexando
.local.domain
a consultas que não são do FQDN. Isso é algo configurado incorretamente ou pelo menos errado na sua configuração. (a menos que você realmente use o.local.domain
sufixo de propósito)Resolução de nomes e períodos
Uma coisa importante que muitas pessoas não sabem é que um nome completo sempre deve terminar com um ponto (
.
). Se você o omitir, a máquina tentará resolvê-lo no domínio de pesquisa local (por exemplo, meudominio.tld). Portanto, nesse caso, uma consulta paramypc.local
se tornariamypc.local.mydomain.tld
. Para evitar isso, consulta 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):A resolução de nomes no Linux também pode ser realizada de outras maneiras. Não é apenas que o servidor DNS local esteja sendo consultado por tudo isso. Dê uma olhada no seu
/etc/nsswitch.conf
arquivo para ahosts
configuração da resolução:Isso significa que os arquivos são tentados primeiro (esse é o
/etc/hosts
arquivo), depois o mDNS e somente mais tarde o servidor DNS real é consultado. O mDNS é implementado usando o Avahi no Linux e é chamado Bonjour em dispositivos Apple. Ele está usando o.local
sufixo por padrão e funciona via mensagens de difusão. Bem como o ARP funciona, mas depois para o DNS.Todos esses sistemas podem ser muito confusos e ainda mais quando usados
.local
em uma configuração DNS regular combinada com dispositivos mDNS. Eu acho que é por isso que você está confuso agora sobre por que 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
.local
menos que você queira confiar no mDNS completamente. Pela sua pergunta, entendo que você gostaria de manter as coisas configuradas em um local central, portanto, minha abordagem aqui é evitá-lo.my.home
. Para o dnsmasq, essa é uma configuração única, mas em configurações regulares, ela deve ser configurada no servidor DNS e no servidor DHCP (como está sendo anunciado via DHCP)./etc/resolv.conf
caso você tenha mexido com ela no passado.Configure os PCs na sua rede para usar
my.home
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/etc/network/interfaces
arquivo ou no Network Manager:ping hostname
) e o nome completo (ping hostname.my.home
) devem funcionar.fonte
files mdns4_minimal [NOTFOUND=return] dns mdns4
. Agora, tudo se comporta mais como eu esperava com minhas máquinas endereçadas host.foo.local (com nomes inadequados). Antes dessa mudançaping hostname
funcionaria, masping hostname.foo.local
estava falhando. Eu estava ficando realmente confuso quandodig hostname
estava falhando edig hostname.foo.local
estava retornando um resultado, o oposto do que eu esperava. Agora eu posso executar ping nos FQDNs conforme o esperado. Existe uma desvantagem em ter o pedido definido dessa maneira?Com base na resposta de gertvdijk, acabei de comentar a linha em nsswitch.conf
fonte
Eu tenho problemas semelhantes com um / etc / hosts contendo vários espaços entre IP e nome do host, em vez disso, usando uma TAB. Depois de mudar para TAB, o nome do host pode ser resolvido por ping.
veja também em /superuser//a/938366/467479
fonte