DHCP가 있는 네트워크 카드가 여러 개 있을 때 데비안은 어떻게 DNS 서버를 선택합니까?

DHCP가 있는 네트워크 카드가 여러 개 있을 때 데비안은 어떻게 DNS 서버를 선택합니까?

최근에 가상 머신 중 하나에 다른 네트워크 카드를 추가해야 했고 몇 가지 문제를 발견했습니다. NIC2는 NIC1의 dhcp 서버에서 얻은 DNS 설정을 재정의하는 것으로 나타났습니다. 분명히 정적으로 만들 수도 있지만 그렇게 하는 것은 정말 피하고 싶습니다. 한 네트워크 카드를 다른 네트워크 카드보다 우선시할 수 있는 방법이 있습니까? 데비안은 DNS 설정을 가져올 DHCP 서버를 어떻게 결정합니까?

미리 감사드립니다

답변1

DHCP 클라이언트가 파일을 직접 덮어쓰도록 구성된 경우 /etc/resolv.conf마지막으로 작성된 DNS 주소 세트가 우선하며, 인터페이스가 실패하면 설정이 적용됩니다.특정 인터페이스를 구성하기 전에인터페이스 종료 순서가 인터페이스 시작 순서와 정확히 반대가 아닌 경우 예기치 않은 결과가 발생할 수 있습니다.

(내 생각엔 DHCP는 원래 구성할 NIC가 하나만 있는 "단순" 클라이언트용으로 설계된 것 같습니다. 그리고 아무도 동일한 호스트에서 여러 DHCP 구성 인터페이스를 처리하는 방법에 대해 생각하지 않았습니다. 전통적으로 멀티 홈 호스트가 있는 경우 = 서로 다른 네트워크에 있는 여러 NIC의 경우 일반적으로 고정 IP 주소를 할당하는 데 충분합니다.

resolvconf패키지를 사용하여 DNS 설정을 중앙에서 관리하는 경우 어떤 인터페이스가 어떤 DNS 설정을 제공하는지 기억하고 모두 병합하며, 인터페이스가 비활성화되면 비활성화된 설정 인터페이스를 포함하지 않고 다시 병합됩니다. 아마도 대부분의 경우 옳은 일일 것입니다.

그러나 를 사용하면 해당 명령을 통해서만 실제 DNS 서버 설정을 보고 관리할 systemd-resolvedresolv.conf있습니다 . 글로벌 및 링크별 DNS 설정을 이해하고 기존 DNS 설정보다 더 일반적입니다.nameserver 127.0.0.53resolvectlsystemd-resolved

예를 들어 네트워크 구성 관리 시스템을 사용하는 경우 NetworkManager이 모든 것 위에 또 다른 레이어가 추가됩니다.


resolv.conf클래식 기반 DNS 구성(패키지 포함 또는 제외 )을 사용하는 경우 DNS 확인자 라이브러리는 나열된 모든 이름 서버가 상호 교환 가능하고 이를 통해 동일한 정보를 사용할 수 있다고 resolvconf가정합니다 . /etc/resolv.conf따라서 확인자가 처음으로 구성된 DNS 서버로부터 "이 이름은 존재하지 않습니다."라는 응답을 받으면~하지 않을 것이다다른 구성의 서버에 두 번째 의견을 요청하세요. DNS에서 "해당 이름/정보가 없습니다."는 오류 조건이 아니라 쿼리에 대해 가능한 유효한 응답입니다.

resolv.conf특정 도메인에 속한 이름에 대한 쿼리를 한 DNS 서버 세트로 보내고 다른 쿼리를 다른 서버 세트로 전달하는 구성이 필요한 경우 이는 클래식 DNS 구성을 기반으로 수행할 수 있는 작업이 아니라는 점을 알아야 합니다. 것들. systemd-resolved이는 "라우팅 도메인" 구성을 사용하여 수행할 수 있으며, 클래식을 원할 경우 적절한 전달 규칙으로 구성할 수 있는 다른 로컬 DNS 프록시가 resolv.conf필요합니다 .dnsmasq

관련 정보