Como obtenho o DNSMasq para servir DNS para hosts do Windows sem um domínio?

0

Eu tenho um host Ubuntu 16.04 (10.0.10.2) com o DNSMasq instalado, o qual somente atende DNS, e alguns hosts Windows na mesma sub-rede, bem como alguns outros hosts Linux em a mesma sub-rede. Meu gateway padrão é distribuir o DHCP, além de distribuir o 10.0.10.2 para um servidor DNS.

As caixas do Windows não têm um sufixo de pesquisa DNS ou domínio definido, mas eu quero que eles resolvam os hosts que eu defini em meu / etc / hosts no servidor DNSMasq SEM precisar especificar domínios ou pesquisar sufixos, mas isso está provando ser difícil. De acordo com o Wireshark, os hosts do Windows sempre querem acrescentar .local ao executar um ping ou tentar navegar para um serviço da Web nos hosts do Linux.

Meu arquivo / etc / hosts é o seguinte:

127.0.0.1 localhost
10.0.10.2 box-linux-0 box-linux-0.local
10.0.10.3 box-linux-1 box-linux-1.local
10.0.10.3 box-linux-2 box-linux-2.local
10.0.10.7 box-windows-0 box-windows-0.local
10.0.10.5 box-windows-1 box-windows-1.local

# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

Minha configuração do DNSMasq é:

strict-order
port=53
resolv-file=/etc/resolv.conf
log-queries
log-facility=/var/log/dnsmasq.log

E meu resolv.conf é:

nameserver 127.0.0.1
nameserver 8.8.8.8

Existe algo que estou perdendo para permitir que os hosts do Windows consigam resolver box-linux-0, box-linux-1 e box-linux-2?

    
por C. Driscoll 31.08.2018 / 04:26

1 resposta

0

Seu resolv.conf não deve ter servidores DNS externos para garantir que o dnsmasq esteja resolvendo todas as solicitações de DNS. Mude para:

nameserver 127.0.0.1

Para permitir a resolução de nomes DNS externos, use dnsmasq como o servidor DNS global, informando-o para usar algum servidor DNS externo. Adicionar ao arquivo de configuração DNSmasq:

--server Specify IP address of upstream servers directly.

server=8.8.8.8

Para fazer com que o dnsmasq resolva apenas nomes que podem ser nomes de DNS globais, adicione ao arquivo de configuração do DNSmasq:

# Never forward plain names (without a dot or domain part)
domain-needed
# Never forward addresses in the non-routed address spaces.
bogus-priv

Para garantir que os nomes locais sejam resolvidos por / etc / hosts, adicione ao arquivo DNSmasq:

# Add local-only domains here, queries in these domains are answered
# from /etc/hosts or DHCP only.
local=/local./

Você pode tentar essa opção (pode ser útil ou não):

# Set this (and domain: see below) if you want to have a domain
# automatically added to simple names in a hosts-file.
expand-hosts

# Set the domain for dnsmasq. this is optional, but if it is set, it
# does the following things.
# 1) Allows DHCP hosts to have fully qualified domain names, as long
#     as the domain part matches this setting.
# 2) Sets the "domain" DHCP option thereby potentially setting the
#    domain of all systems configured by DHCP
# 3) Provides the domain part for "expand-hosts"
domain=local
    
por 31.08.2018 / 05:17