Virtualbox에서 게스트로 Debian을 간단하게 설치했습니다. 패키지 를 설치했습니다 resolvconf
. resolv.conf 파일은 다음과 같습니다.
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
# DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 8.8.8.8
nameserver 10.3.x.x
nameserver 10.219.x.x
GUI(응용프로그램/시스템 도구/네트워크 도구)를 통해 네임서버를 추가했습니다.
8.8.8.8은 Google의 DNS이며 이를 사용하여 인터넷 주소를 확인하고 싶습니다. teleportal.company.intra와 같은 내부 도메인을 확인하려면 10.3.xx 및 10.219.xx가 필요합니다.
resolv.conf에 이러한 네임서버가 있고(8.8.8.8이 첫 번째임) 내부 주소를 쿼리할 때 오류가 발생합니다.
> host teleportal.company.intra
Host teleportal.company.intra not found: 3(NXDOMAIN)
그러나 두 번째 주소를 nslookup의 네임서버로 명시적으로 설정하면 nameserver
작동합니다.
» nslookup teleportal.company.intra 10.3.x.x
Server: 10.3.x.x
Address: 10.3.x.x#53
teleportal.company.intra canonical name = proxy.dummy1.dummy2.private.
Name: proxy.dummy1.dummy2.private
Address: 172.27.x.x
Name: proxy.dummy1.dummy2.private
Address: 172.27.x.x
resolv.conf 문서에는 nameserver
항목 중 하나가 쿼리를 해결할 수 없는 경우 항목을 순서대로 시도한다고 명시되어 있습니다. 그러나 사용할 때 디버그를 켜면 다른 항목도 시도하지 않고 첫 번째 항목만 시도하는 nslookup
것을 볼 수 있습니다 .nslookup
의 순서를 변경하면 nameservers
내부 주소가 제대로 확인됩니다(nslookup은 여전히 첫 번째 항목만 사용합니다).
유틸리티가 모두 순서대로 사용하도록 3개의 네임서버를 설정하려면 어떻게 해야 합니까?
답변1
네임서버 목록 resolv.conf
은 시간 초과가 발생한 경우에만 차례로 연결됩니다. 하나의 네임서버가 "해당 도메인이 없습니다"( NXDOMAIN
)라고 정식으로 말할 때는 그렇지 않습니다. 귀하 의 경우 DNS는 8.8.8.8
분명히 알지 못하며 .teleportal.company.intra
NXDOMAIN
가능하다면 하나의 DNS 서버를 구성하고 이를 모든 확인에 사용하고 DNS 서버가 이름 확인 방법을 결정하도록 해야 합니다. 인트라넷 DNS 서버인 경우 10.3.x.x
인터넷 호스트 이름도 확인할 수 있습니다.
그렇긴 하지만, 이름을 기반으로 요청을 다른 DNS 서버로 릴레이하고 싶다면 시도해 볼 수 있습니다.pdnsd. 로컬로 실행되는 캐싱 DNS 프록시 프로그램입니다. 이를 설치 apt-get install pdnsd
하고( ) resolv.conf에 로컬 호스트( 127.0.0.1
)를 추가합니다. 구성 파일 에서 pdnsd.conf
이름 일치를 기반으로 연결할 DNS 서버를 지정할 수 있습니다. 귀하의 예시 단락은 다음과 같습니다 /etc/pdnsd.conf
.
server {
label= "google";
exclude = ".company.intra";
ip = 8.8.8.8;
}
server {
label= "intra";
include = ".company.intra";
ip = 10.3.x.x;
}
위 파일에서 다른 많은 매개변수를 잘라냈습니다. .pdnsd.conf
답변2
나생각하다확인자가 2차(또는 3차 또는 ...) DNS로 대체됩니다.첫 번째(또는 두 번째 또는 ...)가 실패한 경우에만.
이 경우 쿼리는실패하지 않는다, 올바르게 반환됩니다 NXDOMAIN
. 즉, 도메인 이름이 존재하지 않습니다.
Google의 DNS(또는 해당 문제에 대한 다른 DNS)를 사용하여 (내부 이름 서버 대신) 외부 도메인을 확인하려면 서버를 구성 10.3.x.x
하고 내부 이름 전용 10.219.x.x
으로 사용 authoritative
하고 다른 모든 쿼리를 다음으로 전달하면 됩니다. 외부 DNS를 선택한 다음 내부 네임서버를오직내부 컴퓨터의 네임서버.