Wo finde ich die von DHCP erhaltenen Nameserver (über NetworkManager)?

Wo finde ich die von DHCP erhaltenen Nameserver (über NetworkManager)?

Um zu lernen, schreibe ich meinen eigenen DNS-Caching-Server (à la dnsmasq, aber stattdessen in Python). Von DHCP erhält NetworkManager Upstream-Nameserver und platziert sie in /etc/resolv.conf. Mein System sucht auch in /etc/resolv.confnach Nameservern, die abgefragt werden können.

Ich muss meinen eigenen DNS-Server ( 127.0.0.1) einfügen /etc/resolv.conf, damit mein System ihn abfragt, aber NetworkManager die Datei überschreibt. Wenn ich NetworkManager nicht zulasse/so konfiguriere, dass er nicht überschreibt /etc/resolv.conf, kann mein DNS-Server keine zwischengespeicherten Nameserver finden, weil NetworkManager sie dort nicht einträgt.

Es scheint, dass /etc/resolv.confsymbolische Links zu vorhanden sind /var/run/NetworkManager/resolv.conf, also könnte ich meinen DNS-Server vermutlich dort nach Upstream-Servern suchen lassen? Ich würde chattr -i /etc/resolv.confes nur tun, um zu verhindern, dass NetworkManager es überschreibt. Soll ich das so machen oder gibt es einen besseren Weg?

Antwort1

chattr funktioniert. Es weist NM an, resolv.conf unverändert zu lassen. Alternativ siehe rc-managerin man NetworkManager.conf.

NM schreibt immer in seine interne resolv.conf in var/run, also könnten Sie das scrapen. Oder Sie verwenden nmcli -f all device showoder ein Dispatcher-Skript ( man NetworkManager).

Schließlich könnten Sie Ihr eigenes DNS-Plugin schreiben. Dazu müssen Sie NM jedoch aus dem Quellcode neu erstellen, und die API des Plugins ist auch nicht öffentlich/stabil.

verwandte Informationen