NetworkManager를 통해 DHCP에서 얻은 네임서버를 어디에서 찾을 수 있습니까?

NetworkManager를 통해 DHCP에서 얻은 네임서버를 어디에서 찾을 수 있습니까?

배우기 위해 나는 내 자신의 캐싱 DNS 서버를 작성하고 있습니다(dnsmasq와 같지만 대신 Python으로). NetworkManager는 DHCP에서 업스트림 네임서버를 획득하여 /etc/resolv.conf. 내 시스템은 또한 /etc/resolv.conf쿼리할 네임서버를 찾기 위해 조사합니다 .

127.0.0.1내 시스템이 쿼리할 수 있도록 자체 DNS 서버( )를 배치해야 /etc/resolv.conf하지만 NetworkManager가 파일을 덮어씁니다. NetworkManager를 덮어쓰지 않도록 허용/구성하면 /etc/resolv.confNetworkManager가 캐싱 네임서버를 쓰지 않기 때문에 내 DNS 서버가 캐싱 네임서버를 찾을 수 없습니다.

/etc/resolv.conf에 대한 심볼릭 링크 인 것 같으니 /var/run/NetworkManager/resolv.conf내 DNS 서버가 거기에서 업스트림 서버를 찾도록 할 수 있을까요? chattr -i /etc/resolv.confNetworkManager가 덮어쓰는 것을 방지하고 싶습니다 . 이렇게 해야 할까요, 아니면 더 좋은 방법이 있을까요?

답변1

chattr이 작동합니다. 이는 NM에게 resolv.conf를 그대로 두도록 지시합니다. 또는 를 참조 rc-manager하십시오 man NetworkManager.conf.

NM은 항상 var/run의 내부 resolv.conf에 기록하므로 스크랩할 수 있습니다. 또는 nmcli -f all device show디스패처 스크립트( man NetworkManager)를 사용합니다.

마지막으로 자신만의 DNS 플러그인을 작성할 수 있습니다. 하지만 이를 위해서는 소스에서 NM을 다시 빌드해야 하며 플러그인 API도 공개/안정적이지 않습니다.

관련 정보