첫 번째 이름 서버가 도메인 이름을 확인할 수 없는 경우 두 번째 이름 서버를 어떻게 사용합니까?

첫 번째 이름 서버가 도메인 이름을 확인할 수 없는 경우 두 번째 이름 서버를 어떻게 사용합니까?

기본 서버가 도메인의 IP를 찾을 수 없는 경우 두 번째 DNS 서버를 사용하도록 Linux 컴퓨터를 어떻게 구성합니까?

두 가지를 모두 추가하려고 시도했지만 첫 번째 네임서버를 사용할 수 없으면 /etc/resolv.conf두 번째 네임서버만 시도합니다. nameserver첫 번째 네임서버를 사용할 수 있지만 도메인을 확인할 수 없는 경우 두 번째 네임서버를 사용해 보고 싶습니다.

두 네임서버 중 하나를 제어할 수 없으므로 한 네임서버가 다른 네임서버로 재귀되도록 구성할 수 없습니다. 두 가지 솔루션을 모두 반복하기 위해 자체 DNS 서버를 실행하고 있습니까?

답변1

Linux DNS 확인자는 여러 개의 개별 DNS 네임스페이스 개념을 잘 처리하지 못합니다. 특정 DNS 서버에 쿼리를 보내고 신뢰할 수 있는 서버를 반환하는 경우 NXDOMAIN기본적으로 "이 이름이 존재하지 않는다는 절대적 진실을 말하고 있습니다"라고 말하는 것이며 확인자는 검색할 필요가 없다는 것을 "알고 있습니다". 더 나아가. 나는 resolv.conf이 동작을 변경할 수 있는 옵션을 여기나 다른 곳에서 설정할 수 있는지 알지 못합니다 .

이런 일을 해야 할 때마다 제가 찾은 유일한 옵션은 자체 DNS 서버를 실행하여 "분할 DNS" 설정을 제공하고 DNS 서버 집합에 쿼리하여 특정 이름이 확인되도록 구성하는 것이었습니다. , 다른 이름은 다른 컬렉션을 쿼리하여 확인됩니다. 의견에 제안된 대체 솔루션을 사용하는 dnsmasq것도 가능합니다 .

답변2

항상 사용할 수 없는 로컬 DNS 서버(예: 에서 생성 libvirtd) 와 관련된 사용 사례의 경우 netconfig아래에서 정의할 수 있습니다 NETCONFIG_DNS_STATIC_SERVERS.

DNS 병합 순서는 아래에 정의되어 있습니다 NETCONFIG_DNS_POLICY. 첫 번째 항목으로 다른 모든 항목(* - 파일에 정의된 모든 인터페이스를 STATIC나타냄)보다 먼저 병합됩니다 .ifcfg-*ifname*NetworkManager

잠재적으로 응답하지 않는 서버를 쿼리하여 DNS가 정체되지 않도록 하려면 최소 시간 초과 값을 설정하고 차례로 쿼리합니다.rotate timeout:1

TL;DR 마지막 내용은 다음과 같습니다 /etc/sysconfig/network/config.

NETCONFIG_DNS_POLICY="STATIC * NetworkManager"
NETCONFIG_DNS_STATIC_SERVERS="192.168.100.1"
NETCONFIG_DNS_RESOLVER_OPTIONS="rotate timeout:1"

그리고 /etc/resolv.conf의 결과 항목은 다음과 같습니다.

options options rotate timeout:1
search lan
nameserver 192.168.100.1
nameserver 192.168.1.1

192.168.1.1은 DHCP를 통해 NetworkManager에 제공됩니다. 192.168.100.1은 정적으로 정의된 서버이며 항상 사용 가능한 것은 아닙니다(예: libvirtd가 종료된 경우).

dns-priorityNetworkManager가 모든 DNS 레코드를 제공하는 경우 각 프로필에 대해 정적으로 정의된 DNS 항목을 설정할 수도 있습니다 . DHCP의 기본 DNS 서버 앞에 정적으로 정의된 DNS 서버를 설정할 수 없습니다. DHCP와 관련된 구성 파일의 다른 모든 DNS 서버는 보조 서버입니다.

관련 정보