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.conf
servidores de nomes para consultar.
Preciso colocar meu próprio servidor DNS ( 127.0.0.1
) para /etc/resolv.conf
que 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.conf
links 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.conf
de 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-manager
em 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.