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

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

Para aprender, estou escrevendo meu próprio servidor DNS de cache (à la dnsmasq, mas em Python). Do DHCP, o NetworkManager obtém servidores de nomes upstream e os coloca em arquivos /etc/resolv.conf. Meu sistema também procura /etc/resolv.confservidores de nomes para consultar.

Preciso colocar meu próprio servidor DNS ( 127.0.0.1) para /etc/resolv.confque meu sistema o consulte, mas o NetworkManager sobrescreva o arquivo. Se eu proibir/configurar o NetworkManager para não sobrescrever /etc/resolv.conf, meu servidor DNS não será capaz de encontrar servidores de nomes em cache porque o NetworkManager não os grava lá.

Parece que há /etc/resolv.conflinks simbólicos para /var/run/NetworkManager/resolv.conf, então acho que meu servidor DNS poderia encontrar servidores upstream lá? Gostaria apenas chattr -i /etc/resolv.confde evitar que o NetworkManager o substituísse. É assim que devo fazer ou existe uma maneira melhor?

Responder1

chattr funcionará. Diz ao NM para deixar o resolv.conf em paz. Alternativamente, veja rc-managerem man NetworkManager.conf.

O NM sempre escreverá em seu resolv.conf interno em var/run, para que você possa raspar isso. Ou você usa nmcli -f all device show, ou usa um script de despachante ( man NetworkManager).

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

informação relacionada