Linux의 역방향 조회 - NXDomain에서 다음 서버 시도

Linux의 역방향 조회 - NXDomain에서 다음 서버 시도

호스트 이름을 확인하기 위해 역방향 조회를 사용하는 Linux 상자에 응용 프로그램이 있습니다. 문제는 내 resolve.conf에 두 세트의 DNS 서버(총 4개 서버)가 있고 각 세트는 서로 다른 IP 범위에 해당한다는 것입니다. 나열된 첫 번째 서버에 있는 IP 범위 중 하나에 대해 제대로 작동하지만 다른 범위를 nslookup하려고 하면 찾을 수 없음: 3(NXDOMAIN)이 보고됩니다. 목록의 다음 서버를 시도하면 성공할 것입니다....이렇게 할 수 있는 방법이 있습니까? DNS 서버는 해당 범위에 대해서만 권한을 갖습니다.

답변1

저는 dnsmasq를 설치하고, 이 서버(127.0.0.1)를 유일한 네임서버로 만들고, "server" dnsmasq.conf 지시문을 사용하여 이 도메인 또는 해당 도메인에 대해 이 서버 또는 저 서버를 쿼리하도록 구성합니다.

DNS 서버에서 NXDOMAIN에 다른 서버를 시도하는 방법이 있다면 해당 기능을 갖춘 로컬 DNS 서버를 사용하는 것입니다. Linux 확인자는 이를 허용하지 않습니다. PowerDNS는 모든 쿼리에 대해 명령을 실행하도록 구성할 수 있으므로 최후의 수단으로 항상 그렇게 할 수 있습니다.

답변2

dnsmasq의 VPN 문제를 해결하는 방법을 명확히 하기 위해 @cstamas에 대한 응답입니다.

귀하의 컴퓨터가 IP 주소가 10.1.0.0/16이고 DNS 서버가 10.1.0.1인 homenetwork.test 도메인에 있다고 가정해 보겠습니다. 해당 DNS 서버는 worknetwork.test 도메인의 "외부" 도메인 이름만 쿼리할 수 있습니다. homenetwork.test 및 1.10.in-addr.arp에 대해 (내부적으로) 신뢰할 수 있습니다.

이제 VPN을 연결하여 작업 네트워크에 연결하면 해당 인터페이스를 통해 10.2.0.0/16에 대한 새 경로와 worknetwork.test 및 2.10.in-addr.arpa에 대해 권한이 있는 새 DNS 서버 10.2.0.1이 있습니다. . 해당 이름 서버 중 하나를 사용하는 경우 worknetwork.test 및 homenetwork.test 도메인 중 하나만 확인할 수 있습니다.

두 DNS 서버(및 RES_ROTATE)를 모두 사용하는 경우 때로는 둘 중 하나를 해결할 수 있으므로 더 좋지 않습니다.

이제 사용하면

dnsmasq --no-resolv --no-negcache --no-host --conf-file= \
   --server=/worknetwork.test/10.2.0.1 \
   --server=/2.10.in-addr.arpa/10.2.0.1 \
   --server=10.1.0.1

그리고 resolv.conf에 "nameserver 127.0.0.1"이 있으면 10.2.0.1을 사용하여 worknetwork.test와 10.2.xx IP 주소를 확인하고 나머지는 홈 ​​DNS 서버를 사용합니다.

답변3

정보가 부족해서 시작하기 어렵지만 시도해보겠습니다...

우선 당신이 말하는 모든 서버는 권한 있는 DNS 서버(설정한 영역에 대한 정보를 제공)입니다. 그렇죠? 그렇다면 resolv.conf에서 재귀적인 서버를 설정해야 합니다(정보를 제공하지 않고 DNS 이름만 확인). localhost에서 청취하기 위해 설치할 수 있습니다.sch말했다.

반면에 서버가 nxdomain을 반환하는 경우 이는 "나는 이 이름을 알고 있습니다. 나는 이 이름에 대한 권한 있는 서버이며 이 이름은 존재하지 않습니다."를 의미합니다. 표준 DNS 확인 알고리즘은 여기서 중지됩니다. 그렇다면 이 문제를 해결할 방법이 없습니다. 해당 이름에 대해 권한이 없는 DNS 서버를 설정해야 합니다.

관련 정보