Onde encontrar servidores de nomes obtidos do DHCP (via NetworkManager)?

1

Para saber, estou escrevendo meu próprio servidor DNS de cache (à la dnsmasq, mas em Python). A partir do DHCP, o NetworkManager obtém os servidores de nomes upstream e os coloca em /etc/resolv.conf . Meu sistema também procura em /etc/resolv.conf para encontrar servidores de nomes para consulta.

Eu preciso colocar meu próprio servidor DNS ( 127.0.0.1 ) em /etc/resolv.conf , então meu sistema irá consultá-lo, mas o NetworkManager sobrescreverá o arquivo. Se eu proibir / configurar o NetworkManager para não sobrescrever /etc/resolv.conf , meu servidor DNS não conseguirá encontrar servidores de nomes em cache porque o NetworkManager não os grava lá.

Parece que /etc/resolv.conf é um link simbólico para /var/run/NetworkManager/resolv.conf , então eu acho que poderia ter meu servidor DNS encontrando servidores upstream lá? Eu tinha apenas chattr -i /etc/resolv.conf para evitar que o NetworkManager o sobrescrevesse. É assim que eu devo fazer isso ou há uma maneira melhor?

    
por Luc 11.04.2017 / 23:27

1 resposta

4

o chattr funcionará. Ele diz ao NM para deixar o resolv.conf sozinho. Como alternativa, consulte rc-manager em man NetworkManager.conf .

O NM sempre grava no seu resolv.conf interno em var / run, então você pode fazer isso. Ou você usa nmcli -f all device show ou usa um script de dispatcher ( man NetworkManager ).

Finalmente, você pode escrever seu próprio plugin DNS. Mas isso requer que você reconstrua o NM a partir do código-fonte, e a API do plug-in também não é pública / estável.

    
por 12.04.2017 / 00:47