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)
그러나 두 번째 nameserver
주소를 nslookup의 네임서버로 명시적으로 설정하면 작동합니다.
» 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 서버로 전달하고 싶다면 다음을 시도해 보세요.데이터 센터. 로컬로 실행되는 캐싱 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
사용 하도록 서버를 구성하고 다른 모든 쿼리를 외부 DNS 및 그런 다음 내부 이름 서버를10.219.x.x
authoritative
오직내부 컴퓨터의 이름 서버.