Alguns hosts não podem ser contatados usando seu FQDN

0

Eu tenho uma LAN com vários hosts conectados. Instalei recentemente um host executando dnsmasq oferecendo serviços DHCP e DNS aos hosts na LAN. Eu notei desde algum comportamento estranho na rede que eu não entendo e pode ou não ter origem na introdução do host dnsmasq . Eu estou em uma perda. Eu não tenho ideia de onde procurar. (Eu até luto com um bom título para a minha pergunta) Por favor, me guie na solução do problema descrito abaixo. Se informações extras forem necessárias, avise-nos e tentarei adicioná-las.

O host executando dnsmasq (máquina virtual LXC / LXD):

$ uname -a
Linux dhcpns 3.19.0-26-generic #28-Ubuntu SMP Tue Aug 11 14:16:32 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

Para sua informação básica, aqui está o /etc/dnsmasq.conf :

$ cat /etc/dnsmasq.conf |grep -ve '^$' |grep -v '#'
domain-needed
bogus-priv
no-resolv
no-poll
server=208.67.220.220
server=8.8.8.8
server=208.67.222.222
server=8.8.4.4
local=/local/
address=/mackeeper.com/0.0.0.0
expand-hosts
domain=local
dhcp-range=10.0.1.100,10.0.1.254,255.255.255.0,72h
dhcp-host=B0:C2:87:79:B0:41,router,   10.0.1.1
# multiple dhcp-host lines for static hosts removed
dhcp-option=option:router,10.0.1.1
dhcp-option=42,10.0.1.220
dhcp-option=15,local
dhcp-option=119,local
dhcp-option=252,"\n"
dhcp-authoritative
log-queries
log-dhcp
conf-dir=/etc/dnsmasq.d,.bak
dhcp-sequential-ip

Aqui está o problema

Em alguns hosts (por exemplo, meu MacBook Air; OSX 10.10.5)

$ uname -a
Darwin argon.local 14.5.0 Darwin Kernel Version 14.5.0: Wed Jul 29 02:26:53 PDT 2015; root:xnu-2782.40.9~1/RELEASE_X86_64 x86_64

Eu posso pingar todos os hosts na rede pelo endereço IP, pelo nome do host ou pelo FQDN deles.

Por exemplo, fazendo ping no servidor MySQL:

$ ping -c 1 10.0.1.163
PING 10.0.1.163 (10.0.1.163): 56 data bytes
64 bytes from 10.0.1.163: icmp_seq=0 ttl=64 time=2.245 ms

--- 10.0.1.163 ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.245/2.245/2.245/0.000 ms
$ ping -c 1 sql
PING sql.local (10.0.1.163): 56 data bytes
64 bytes from 10.0.1.163: icmp_seq=0 ttl=64 time=2.147 ms

--- sql.local ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.147/2.147/2.147/0.000 ms
$ ping -c 1 sql.local
PING sql.local (10.0.1.163): 56 data bytes
64 bytes from 10.0.1.163: icmp_seq=0 ttl=64 time=2.246 ms

--- sql.local ping statistics ---
1 packets transmitted, 1 packets received, 0.0% packet loss
round-trip min/avg/max/stddev = 2.246/2.246/2.246/0.000 ms

No entanto, em alguns hosts isso não funciona. Por exemplo:

$ uname -a
Linux rbian 3.18.0-trunk-rpi #1 PREEMPT Debian 3.18.5-1~exp1+rpi19 (2015-08-08) armv6l GNU/Linux

$ ping -c 1 10.0.1.163
PING 10.0.1.163 (10.0.1.163) 56(84) bytes of data.
64 bytes from 10.0.1.163: icmp_req=1 ttl=64 time=0.457 ms

--- 10.0.1.163 ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.457/0.457/0.457/0.000 ms
$ ping -c 1 sql
PING sql.local (10.0.1.163) 56(84) bytes of data.
64 bytes from sql.local (10.0.1.163): icmp_req=1 ttl=64 time=0.393 ms

--- sql.local ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.393/0.393/0.393/0.000 ms
$ ping -c 1 sql.local

ping: unknown host sql.local

Outros hosts respondem sem problemas:

$ ping -c 1 proton.local
PING proton.local (10.0.1.25) 56(84) bytes of data.
64 bytes from proton.local (10.0.1.25): icmp_req=1 ttl=255 time=0.619 ms

--- proton.local ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 0ms
rtt min/avg/max/mdev = 0.619/0.619/0.619/0.000 ms

Assim, alguns hosts podem executar ping em todos os hosts na LAN usando hostname.local , alguns hosts não podem pingar nenhum hostname.local e alguns hosts podem executar ping em alguns deles com êxito. Ninguém tem um problema ao fazer ping apenas hostname .

Por favor, me aconselhe.

EDITAR : Isso pode ser relacionado a avahi / netatalk? Nos logs dnsmasq-dhcp , vejo que às vezes / para alguns hosts o nome do host * .local é consultado e, para outros, não é.

EDIT2 : alterei duas configurações:

local=/lan/
domain=lan

Também diminuí o uso de *.local e agora uso *.lan . Isso parece ter funcionado.

    
por Mausy5043 06.09.2015 / 10:29

1 resposta

1

.local é uma zona de DNS interna para fins especiais que o Apple OS X usa para os serviços do Bonjour. Então, sim, você está causando um conflito com Macs nativamente e Linux executando o Avahi (daemon Bonjour).

Uma correção é executar uma resposta de DNS de Multicast baseada em servidor que todos possam usar para obter uma imagem consistente do que vive em .local. O pacote daemon / servidor Avahi em qualquer distribuição Linux pode fornecer isso.

Seria melhor construir um domínio DNS real usando um servidor DNS real e um servidor DHCP real, especialmente se / quando isso precisar ser dimensionado.

    
por 10.09.2015 / 23:16

Tags