DNSMasq não resolve IPs não roteáveis em nomes de domínio público

1

Nosso DNSMasq não pode resolver registros A, CNAME e Alias de domínios públicos que especificam endereços IP privados .

Por exemplo:

$ nslookup
> server 172.16.1.1
Default server: 172.16.1.1
Address: 172.16.1.1#53

> www.work-domain.com
Server:         172.16.1.1
Address:        172.16.1.1#53

Non-authoritative answer:
Name:   www.work-domain.com
Address: 55.77.XXX.XXX

> server-b.work-domain.com
Server:         172.16.1.1
Address:        172.16.1.1#53

Non-authoritative answer:
*** Can't find server-b.work-domain.com: No answer

Mas a mudança para um DNS público funciona bem:

$ nslookup
> server 8.8.8.8
Default server: 8.8.8.8
Address: 8.8.8.8#53

> www.work-domain.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   www.work-domain.com
Address: 55.77.XXX.XXX

> server-b.work-domain.com
Server:         8.8.8.8
Address:        8.8.8.8#53

Non-authoritative answer:
Name:   server-b.work-domain.com
Address: 10.1.XXX.XXX

Observe que a entrada server-b.work-domain.com resolve corretamente para um endereço IP não roteável de 10.1.XXX.XXX ? Esse é o meu problema, que não funciona com o meu dnsmasq local na rede local.

Esses endereços IP fazem parte de nossas sub-redes privadas da Amazon AWS e temos VPNs para obter acesso a eles.

Tudo isso é 100% consistente em todos os 200+ servidores registrados com 4 domínios públicos diferentes em várias sub-redes, todos usando um endereço IP privado não-roteável. Mas, no entanto, todos os outros registros usando endereços IP públicos roteáveis funcionam bem, no mesmo domínio!

Tudo o resto é 100% funcionando normalmente com o dnsmasq local:

  • resolve todos os domínios públicos
  • resolve todas as pesquisas inversas de IP de IPs públicos
  • resolve todos os domínios privados e hosts internos
  • resolve todas as pesquisas inversas de IP de IPs privados e concessões de DHCP

São apenas registros públicos que usam IPs privados e não roteáveis.

Devo estar faltando alguma opção que não consigo interromper a leitura da página MAN.

Versão:

Dnsmasq version 2.73 # (part of AdvancedTomato)

Configuração (remove entradas sensíveis, exemplo de exemplo):

# dhcp-option=lan,3,172.16.1.1
cache-size=8192
log-async=25
strict-order
#local=/lan/
#domain=lan,172.16.1.0/24,local
expand-hosts
domain-needed

# network devices
address=/router-gateway.lan/172.16.1.1
address=/router-office.lane/172.16.1.2
...and so on x 70

# arpa entries
ptr-record=1.1.16.172.in-addr.arpa,"router-gateway.lan"
ptr-record=2.1.16.172.in-addr.arpa,"router-office.lan"
...and so on

Resoluções locais no AdvancedTomato são exibidas:

# cat /etc/resolv.conf
nameserver 127.0.0.1

# cat /etc/resolv.dnsmasq
nameserver 8.8.8.8
nameserver 8.8.4.4

Novamente .. Tudo funciona perfeitamente com LAN local em clientes Windows, OSX e Linux resolvendo domínios públicos e internos e LANs e até mesmo hosts sem o sufixo de domínio (server-xyz - > resolve para server-xyz.lan). / p>

São apenas domínios públicos que usam IPs não roteáveis.

    
por Eric Duncan 23.11.2016 / 22:37

1 resposta

1

@ HåkanLindqvist comentou apontou-me na direção certa. Assim que ele responder, vou marcá-lo como a resposta. Até lá ...

Seu comentário me indicou as opções rebind para dnsmasq:

--stop-dns-rebind
    Reject (and log) addresses from upstream nameservers which are in the private IP ranges. This blocks an attack where a browser behind a firewall is used to probe machines on the local network.
--rebind-localhost-ok
    Exempt 127.0.0.0/8 from rebinding checks. This address range is returned by realtime black hole servers, so blocking it may disable these services.
--rebind-domain-ok=[<domain>]|[[/<domain>/[<domain>/]
    Do not detect and block dns-rebind on queries to these domains. The argument may be either a single domain, or multiple domains surrounded by '/', like the --server syntax, eg. --rebind-domain-ok=/domain1/domain2/domain3/

Armado com esse conhecimento, vejo que é realmente o que está acontecendo:

# cat /tmp/etc/dnsmasq.conf
...
rebind-localhost-ok
...

Depois adicionei o seguinte ao meu dnsmasq.conf para corrigi-lo:

rebind-domain-ok=/work-domain1.com/work-domain2.com/

Woohoo! Funciona!

Meu dnsmasq deve ter sido compilado com uma opção estrita para o padrão.

    
por 23.11.2016 / 23:02

Tags