DNS는 호스트 이름을 확인할 수 없습니다. nslookup 수 2 대 있습니다. DHCP 서버는 사용자에게

Windows 7에 DNS 이름이 windows.cs 인 로컬 서버에 액세스하려고하는 사용자가 있습니다. 내부 DNS 서버가 2 대 있습니다. DHCP 서버는 사용자에게 2 개의 내부 DNS 서버를 기본 및 보조로 지정한 다음 ISP의 DNS를 3 차 DNS 서버로 할당합니다.

때때로 사용자는 windows.cs에서 웹 사이트에 액세스 할 수 없습니다. Ping하면 호스트 이름을 확인할 수 없습니다. DNS 캐시를 플러시 한 다음 dns 캐시를 표시하면 다음과 같은 결과가 나타납니다.

windows.cs-이름이 존재하지 않습니다

그러나 기본 DNS 서버 (내부 서버)를 쿼리하고 windows.cs를 쿼리하는 nslookup을 사용하면 올바른 IP 주소를 반환합니다.

그렇다면 Windows는 ping을 사용하여 호스트 이름을 확인할 수 없지만 nslookup 도구를 사용할 때 가능합니다. 이 문제를 어떻게 해결합니까?



답변

windows.cs에 대한 요청이 ISP의 DNS 서버로 계속 가고 있다는 말에서 나타납니다. 그런 다음 nxdomain 결과는 Windows의 DNS 클라이언트에 의해 캐시되므로 웹 브라우저, 핑 등을 사용하여 재 시도하는 데 사용됩니다. 캐시를 지우면 (ipconfig / flushdns) Windows DNS 클라이언트가 쿼리를 다시 시도해야하지만 보장 할 수는 없습니다. ISP DNS 서버로 다시 이동하지 않습니다.

ping이 호스트 이름을 확인할 수 없지만 nslookup이 할 수있는 이유는 nslookup이 Windows DNS 클라이언트를 우회하는 하위 수준 도구이기 때문입니다. 그것은 당신이 말한 모든 DNS 서버를 사용하고 (기본적으로 첫 번째 서버) 쿼리를 즉시 수행합니다. server <host>nslookup 프롬프트에서 입력하여 쿼리하는 DNS 서버를 변경할 수 있습니다 . 여기서 host는 IP 또는 FQDN입니다.

그러나 Windows DNS 클라이언트는 캐시에 없거나 만료 된 항목에 대해서만 쿼리를 수행합니다. 그렇지 않으면 캐시 된 결과를 반환합니다.

Windows 클라이언트가 ISP DNS 서버를 사용하는 이유는 분명하지 않습니다. 아마도 아마도 다른 네트워크에 있기 때문에 최근에 로컬 서버를 해결할 수 없었을 것입니다. 아마도 로컬 서버가 오류를 반환했을 것입니다. 또는 고급 TCP / IP 설정> DNS에서 올바르게 주문되지 않았을 수 있습니다.

개인적으로 워크 스테이션 (DHCP에서 전파)에서 로컬 DNS 서버 주소 만 사용하여 구성을 단순화하고 이와 같은 문제를 피하는 것을 선호합니다. 데스크톱에서 ISPs DNS 서버를 설정 한 이유를 알고 싶습니다. 유효한 성능상의 이유가 있다고 상상할 수 없으며, 중복성이있는 한 대부분의 네트워크에서 충분합니다 (3 분의 1을 추가하지 않는 경우).


답변

특이성과 버그 nslookupping인해 결과가 다릅니다nslookup . 그러나 실제로는 주요 문제와 관련이 없습니다. 즉 , 대체 프록시 DNS 서버가 기본 네임 스페이스와 동일한 DNS 네임 스페이스보기를 제공해야 한다는 규칙을 위반 한 것 입니다. ISP의 프록시 DNS 서버는 LAN의 자체 프록시 DNS 서버와 동일한 DNS 네임 스페이스보기를 제공하지 않습니다.

그 또 다른 시스템 관리자가 파울의 떨어진 것 같다 나는 그래서 내 ISP가 제공 및 문서 해야한다 그것을 사용할 수 있습니다. 그릇된 생각. ☺


답변

TL; DR 버전 : IPv6으로 인해 DNS 쿼리 문제가 발생하여 비활성화하면 DNS 쿼리 문제가 해결되었습니다.

개발 시스템에서 같은 문제가 발생했습니다. 회사 네트워크에 로그인 할 때마다 내부 호스트 이름을 확인할 수 없었으며 모든 외부 호스트 이름 / URI를 확인할 수있었습니다. VPN 연결에 할당 된 DNS 서버를 확인했으며 회사 DNS 서버가 기본 및 보조로 구성되었음을 보여줍니다. 또한 사용할 수는 nslookup있지만 server X.X.X.XDNS 확인을 위해 서버를 통해 수동으로 변경해야했습니다 .

결국 IPv6가 이름 확인에 문제를 일으키는 것으로 나타났습니다. 각 DNS 쿼리에서 IPv4 회사 DNS 서버가 아닌 IPv6 DNS가 쿼리되었습니다. IPv6를 비활성화 한 후에는 ipconfig /flushdns이전에 쿼리 한 주소가 여전히 해결되지 않을 수 있습니다.


답변

DNS 레코드를 삭제하고 flushdns 및 registerdns 명령을 실행하여 문제를 간단하게 해결할 수 있었고 문제를 해결했습니다. 그 이유는 DNS 자체의 노화입니다. 임대가 만료 된 후 DNS가 레코드를 삭제하지 않았으며 갱신되지 않아 이름을 판매했기 때문에 이름을 확인할 수 없었습니다. 문제 해결에 도움이되기를 바랍니다.