Estou no CentOS 7.4 tentando configurar o dnsmasq para cache DNS e servidores DNS por zona para executar o Consul. Essencialmente, a configuração do dnsmasq se resume a isso:
# filter everything with consul in the name and send to local consul resolver
server=/consul/127.0.0.1#8600
O problema que estou tendo é obter o resolvedor local /etc/resolv.conf
sem substituir nenhum outro resolvedor no arquivo.
Eu costumava ser capaz de fazer isso usando a dhclient
configuração assim:
prepend domain-name-servers 127.0.0.1;
Como tudo agora é NetworkManager, descobri que a maneira de usar o dnsmasq é adicionar a seguinte linha à [main]
seção de /etc/NetworkManager/NetworkManager.conf
:
dns=dnsmasq
Antes de reiniciar o NetworkManager, vejo que meu /etc/resolv.conf
contém o servidor DNS de rede recebido pelo DCHP:
# Generated by NetworkManager
search nowhere
nameserver 10.0.2.3
options single-request-reopen
Ao reiniciar o NetworkManager com a alteração de configuração acima, ele substitui meu servidor DNS de rede com 127.0.0.1:
# Generated by NetworkManager
search nowhere
nameserver 127.0.0.1
options single-request-reopen
Como o dnsmasq usa o /etc/resolv.conf
para detectar resolvedores locais, gostaria de deixar o(s) resolvedor(es) /etc/resolv.conf
para que o dnsmasq possa descobri-los.
Existe uma maneira de alcançar a funcionalidade anterior de ter o NetworkManager apenas precedendo o resolvedor local?
Aparentemente, embora o CentOS 7.4 não seja fornecido com um upstream
/etc/dhclient.conf
, esse ainda é um caminho válido. Eu simplesmente criei este arquivo com o seguinte conteúdo:E voilá!