Ubuntu 18.04에서 로컬 DNS가 사용되지 않는 이유

Ubuntu 18.04에서 로컬 DNS가 사용되지 않는 이유

내 문제는 본질적으로systemd-resolved가 로컬 DNS 서버를 사용하지 않는 이유는 무엇입니까?, 하지만 다른 답변을 찾고 있습니다. 이 기본적인 질문은 여러 번 질문을 받았지만 지금까지 제가 찾은 대답은 항상 "이것은 systemd가 해당 작업을 수행하는 것을 중지하고 수동으로 수행하도록 허용하여 예상대로 작동하도록 하는 방법입니다."입니다.

systemd가 실제로 로컬(기본) DNS를 사용하고 기본 DNS가 실패하는 경우 보조, 3차 등의 DNS로만 이동할 수 있는지 더 궁금합니다.

모든 DNS가 동일하다고 가정하는 것처럼 동작하므로 dhcp에서 제공하는 첫 번째 DNS를 사용하는 대신 마음에 드는 다른 DNS를 선택하고 그 DNS를 고수합니다.

이로 인해 개인 LAN 이름에 로컬 DNS를 사용하는 조직의 일반적인 구성이 중단됩니다. systemd의 확인자가 이러한 일반적인 구성을 처리할 수 없다는 것은 매우 이상해 보입니다. 너무 이상해서 이것이 사실이라고 믿지 않습니다.

그냥 비활성화하는 대신 dhcp 응답에 제공된 첫 번째 DNS를 사용해야 함을 이해하게 하는 방법이 있습니까?

답변1

아니요. 기본적으로 로컬 DNS를 사용하게 될 가능성이 높습니다. Systemd는 구성된 DNS 순서로 쿼리합니다. DHCP를 통해 네트워크에서 구성한 경우 해당 구성을 사용합니다. 그러나 Systemd는 모든 DNS 서버를 동일하게 간주하므로 실패한 서버와 재시도 횟수를 순서대로 기억하지 못하는 resolv.conf 동작과 달리 문제가 발생하면 목록의 다음 서버에 실패하고 위에서부터 재시도하지 않습니다.

대부분의 경우 내가 본 바로는 사람들이 자신의 로컬 도메인만 제공하기 위해 서버를 맨 위에 놓았는데 google.com에서는 실패하고 로컬 서버는 더 이상 시도되지 않기 때문에 이것이 문제입니다. 귀하가 링크한 질문의 경우인 것 같습니다.

넌 할 수있어:

resolvectl query -i ethX  <domain>

이 인터페이스의 DNS 서버가 올바르게 응답하는지 확인하십시오. -i는 이 인터페이스에 구성된 DNS 서버를 사용하며 이는 상태에서 볼 수 있습니다.

특정 문제가 발생하는 경우 특정 resolvctl 설정을 포함하는 출력이 도움이 될 것입니다. 제가 이 글을 쓰고 있는 노트북은 수정 없이 확인을 사용하고 있으며 내 라우터의 DNS 서버에서 확인 중입니다.

관련 정보