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.