dnsmasq causa incapacidade de resolver consultas DNS feitas pelo host

1

Em uma máquina baunilha sem cabeçalho do Ubuntu 14.04 eu configurei o dnsmasq como um proxy DNS com a seguinte configuração em /etc/dnsmasq.conf

no-resolv
nameserver=<some working custom dns ip>
port=5555 #to circumvent my ISP's DNS hijacking

Sempre que o serviço dnsmasq é iniciado, a máquina host perde a capacidade de resolver qualquer nome de host, no entanto, o dnsmasq resolve muito bem as consultas externas. Um check no /etc/resolv.conf mostra apenas uma linha de

nameserver 127.0.0.1

Por isso, adicionei alguns servidores de nomes a /etc/resolvconf/resolv.conf.d/base e reiniciei a máquina. O problema ainda persiste mesmo que os servidores de nomes adicionados apareçam em /etc/resolv.conf

Qualquer guru do Linux pode esclarecer por que isso está acontecendo? Muito obrigado.

    
por myopenid 28.02.2015 / 11:11

2 respostas

1

Acho que você tem vários problemas.

Primeiro: port=5555 - isso significa que o processo dnsmasq escutará as consultas DNS na porta 5555 do UDP (e provavelmente do TCP). Todos os clientes DNS do seu dnsmasq terão que consultar essa porta, caso contrário, eles não receberão uma resposta. O seqüestro de DNS do seu ISP não é material para isso. Eu suspeito que você não queira configurar uma porta não padrão por causa do próximo problema ...

Segundo, o arquivo /etc/resolv.conf é o que os processos que usam o resolvedor libc para fazer o DNS lerão para encontrar o processo dnsmasq . Isso é para processos na máquina "headless Ubuntu 14.04". A linha nameserver 127.0.0.1 é apropriada neste arquivo. Como aparentemente você tem dnsmaq ouvindo na porta 5555, esse arquivo é onde você especifica o número da porta que outros processos usariam para consultar dnsmasq . Depois de pesquisar, vejo que a libresolv do OpenBSD pode especificar portas não-padrão em /etc/resolv.conf , mas não sei dizer se algum dos resolvedores comuns consegue ler isso. Tente, eu diria. Use: nameserver 127.0.0.1:5555 e veja se isso faz diferença. Use algo como o comando ping www.google.com - ele usa o resolvedor libc para obter um endereço IP para o nome "www.google.com".

Terceiro, se você está tentando contornar o seqüestro de DNS de algum ISP, você terá que encontrar um servidor DNS em algum lugar do mundo que ouça em uma porta diferente de 53. Esse tipo de configuração não parecem existir. Mensagens no blog sobre contornar o seqüestro de DNS listam isso como um grande obstáculo. Eu não sei o que recomendar aqui, mas ulitmately, você terá que dizer dnsmaq onde encontrar tal servidor, e esse arquivo é geralmente /etc/dnsmasq.resolv .

    
por 28.02.2015 / 20:05
0

Remova tudo, exceto return 0 na função start_resolvconf() de /etc/init.d/dnsmasq .

    
por 01.03.2015 / 10:29