웹 브라우저에서 DNS 확인에 실패했지만 nslookup이 성공 함


9

BYOD와 Active Directory 환경 (Windows Server 2012 Standard, Windows 7 Enterprise)이 혼합 된 소규모 300 석 규모의 조직으로, 도메인에서 조직의 도메인 이름을 확인하지 못하는 특정 범위의 실패와 관련하여 매우 이상한 문제가 있습니다. -회사가 통제하는 기계들. 이 토론을 위해 도메인 이름 대신 company.com을 사용하겠습니다.

배경:

  • Active Directory 도메인 컨트롤러는 172.16.1.3에 있습니다.
  • AD / DC 시스템에서도 DHCP, DNS 및 HTTP (IIS)를 실행하고 있습니다.
  • company.comsubdomain.company.com 의 조직 웹 사이트는 IIS에서 AD / DC 시스템에 호스팅됩니다.
  • AD / DC 서버가 내부 DNS 확인에 사용되지만 다른 오프 사이트 서버가 공개 쿼리에 대한 DNS 확인을 제공하는 분할 DNS 시나리오가 있습니다.
  • company.comsubdomain.company.com에 해당하는 IP 주소 는 네트워크 가장자리 (AD / DC DNS 서버 및 사이트 외부 DNS 서버 모두)의 방화벽에서 사용하는 공용 IP 주소입니다.
  • 방화벽은 공용 IP 주소에서 수신 한 HTTP 및 HTTPS 요청을 AD / DC 서버의 내부 IP로 전달하도록 NAT에 올바르게 구성되어 있습니다.

시나리오 1 :

  • 도메인에 가입 한 Windows 7 Enterprise 컴퓨터의 사용자는 DHCP 서버에서 발급 한 로컬 주소 172.16.6.100 / 16을 사용하여 로컬 네트워크에 직접 연결됩니다.
  • DNS 서버 항목은 DHCP (172.16.1.3)에서 제공합니다.
  • 이 사용자는 company.com 및 subdomain.company.com에서 호스팅되는 웹 사이트에 액세스 할 수 있습니다
  • 편집 : 이 시나리오에서 nslookup이 실행되었으며 내부 DNS 서버 (172.16.1.3)에서 올바른 DNS 레코드를 올바르게 반환합니다.

시나리오 2 :

  • 도메인에 가입 된 동일한 Windows 7 Enterprise 컴퓨터에서 동일한 사용자가 집에 가서 가정용 ISP를 사용하여 인터넷에 연결
  • 클라이언트 시스템의 IP 및 DNS 서버 항목은 DHCP에서 제공합니다.
  • 이 사용자는 google.com과 같은 모든 인터넷 리소스에 액세스 할 수 있습니다
  • 이 사용자는 company.com 또는 subdomain.company.com 의 웹 사이트에 액세스 할 수 없습니다 ( "호스트가 해결되지 않았습니다"오류가 반환 됨)
  • 이 사용자가 실행이에가 nslookup 때 company.com 그들은 마십시오 DNS에서 제공하는 올바른 공용 IP 주소를 수신
  • IP 주소에 대한 HTTP / HTTPS 요청이 성공하고 서버가 웹 페이지를 올바르게 리턴 함
  • 이 문제는 모든 웹 브라우저에서 우선합니다
  • tracert company.com을 사용하면 "대상 시스템 이름을 확인할 수 없습니다"가 반환됩니다 .
  • ping company.com을 사용하면 "호스트 company.com을 찾을 수 없습니다"가 반환됩니다.
  • 요청이 실패하기 전에 / 클라이언트에서 Wireshark를 실행할 때 클라이언트 시스템에서 패킷을 보내지 않습니다 (DNS 확인 또는 초기 HTTP / ping / tracert 요청).
  • DNS 클라이언트 서비스를 다시 시작해도 문제가 해결되지 않습니다
  • DNS 클라이언트 서비스를 중지해도 문제가 해결되지 않습니다
  • ipconfig / flushdns를 사용하면 이 문제가 해결되지 않습니다
  • route / f를 사용 해도이 문제가 해결되지 않습니다
  • netsh int ip reset을 사용하여 네트워크 연결을 재설정 해도이 문제가 해결되지 않습니다
  • 편집 : 이 시나리오에서 nslookup이 실행되었으며 사용자가 사용하는 네트워크의 DHCP 설정으로 지정된 DNS 서버에서 올바른 DNS 레코드를 올바르게 반환합니다.

시나리오 3 :

  • 개인 (도메인에 가입되지 않은) Windows 7 Professional 컴퓨터에서 동일한 사용자가 로컬 네트워크에 연결되면 company.comsubdomain.company.com 의 웹 사이트에 액세스 할 수 있습니다
  • 편집 : 이 시나리오에서 nslookup이 실행되었으며 내부 DNS 서버 (172.16.1.3)에서 올바른 DNS 레코드를 올바르게 반환합니다.

시나리오 4 :

  • 개인 (도메인에 가입되지 않은) Windows 7 Professional 컴퓨터에서 동일한 사용자가 홈 네트워크에 연결되면 company.comsubdomain.company.com 의 웹 사이트에 액세스 할 수 있습니다.
  • 편집 : 이 시나리오에서 nslookup이 실행되었으며 사용자가 사용하는 네트워크의 DHCP 설정으로 지정된 DNS 서버에서 올바른 DNS 레코드를 올바르게 반환합니다.

최종 노트 :

이 문제는 회사 소유의 모든 컴퓨터에 영향을주기 위해 일반화 된 것 같습니다. 8 월에 방금로드 된 회사 소유의 모든 컴퓨터에 공통 시스템 이미지를 사용하고 있습니다. 가능한 해결책을 찾기 위해 인터넷을 and이 뒤져 왔으며 지금까지 공허한 상태로 나타났습니다.


2
도메인 컨트롤러에서 웹 사이트를 운영하고 있습니까? 부에노가 아닙니다.
Ryan Ries

1
네, 동의합니다. 예산이 빡빡합니다. 아마 미래에 ...
Dan

1. 그룹 정책을 사용하여 도메인 가입 컴퓨터에서 DNS 설정을 구성하고 있습니까? 2. 각 시나리오마다 디버그 모드에서 nslookup을 실행하면 실마리가 생길 수 있습니다.
joeqwerty

제안 해 주셔서 감사합니다. DNS는 그룹 정책이 아닌 DHCP 서버에 의해 제공되므로 사용자가 실제 건물을 떠나면 연결된 네트워크의 DNS 서버를받습니다. 모든 경우에 nslookup을 실행했으며 모든 경우 (시나리오 2의 실패 사례 포함)에 올바른 DNS 설정을 반환합니다. 문제는 어떤 이유로 든 웹 브라우저가 nslookup까지는 귀찮게하지 않는 것 같습니다. 위에서 설명한 것처럼, 시나리오 2에서 네트워크 트랜잭션을 시작하지 않고 단순히 실패합니다.
Dan

그들이 그렇게 할 수는 www.company.com있지만 company.com둘 다 실패하지 않는다고 가정 할 수 있습니까?
TheCleaner

답변:


1

도메인 가입 컴퓨터는 단순히 DNS 기반 조회를 수행하는 것이 아니라 DC를 찾고 있습니다. 도메인은 공개 웹 사이트와 동일하므로 DC에 도착하고 도메인 정보를 얻는 방법을 알려주는 SRV 레코드를 검색 할 것입니다. 원격 네트워크에는 DC가 없으므로 일반적인 AD 인식 창 부분을 사용하여이 이름을 확인할 수 없습니다.

Ping 또는 거의 모든 Windows 응용 프로그램을 사용하면 AD와 통신하는 부분을 포함하여 전체 Windows IP 스택을 사용합니다. NSLookup은 실제로 DNS 쿼리 만 수행합니다. Wireshark 추적으로이를 확인했으며 company.com에 접속하려고 할 때 Windows에서 조회를 수행하지 않지만 nslookup은 올바른 DNS 조회를 표시합니다. 핑이나 웹 브라우저를 통해 도메인을 확인할 수 없지만 nslookup은 괜찮습니다.

첫 번째 부분에 대한 해결책은 www.company.com을 사용하여 내부 및 외부 웹 사이트를 방문하여 클라이언트가 DC를 찾는 것을 완전히 무시하도록하는 것입니다.

subdomain.company.com이 내부 및 외부를 참조하는 내용에 따라 두 번째 부분에 대한 솔루션이 까다로워집니다. DC에 하위 도메인에 대한 DNS 레코드가 있습니까? 아니면 해당 요청이 외부 DNS 서버로 방금 전송 되었습니까? DNS 레코드가있는 경우 해당 레코드는 어디에 있습니까?


0

컴퓨터 의 HOSTS 파일 ( http://en.wikipedia.org/wiki/Hosts_%28file%29#Location_in_the_file_system )에 확인하려는 호스트에 대한 항목이 포함되어 있지 않은지 확인합니다. NSLOOKUP 도구는 hosts 파일을 무시하지만 웹 브라우저는 그렇지 않습니다.

또한 일부 유형의 프록시도 DNS를 해결하므로 웹 브라우저에 프록시가 구성되어 있지 않은지 확인하십시오.

또한 IE ( "iexplore -extoff") 또는 Firefox (시작하거나 "firefox -safe-mode"일 때 Shift 키를 누르고 있음)를 사용하여 브라우저를 "안전 모드"(예 : 모든 애드온 및 플러그인이 비활성화 된 상태)에서 실행 해보십시오.

가능한 경우 다른 웹 브라우저를 사용하여 웹 브라우저인지 OS인지 좁히십시오.

그런 다음 여전히 아무데도받지 못하면 어떤 서비스가 네트워크 어댑터에 바인딩되어 있는지 확인합니다 (특정 규칙이있는 미친 방화벽?)

마지막으로, 이것은 점점 더 어려워 지지만 NSLOOKUP은 컴퓨터 또는 연결 특정 도메인 이름을 쿼리에 자동으로 추가합니다. 예를 들어 내 라우터는 도메인 이름을 "router"로 설정하므로 "matthew"와 같은 nslookup은 실제로 DNS에서 "matthew.router"를 검색합니다. 웹 브라우저에서이 작업을 수행하지 않을 수 있습니다. 캡처는 이것이 문제인 것처럼 들리지 않습니다. 그러나 패킷 캡처에서 누락되었거나 캡처 환경이 올바르지 않은 경우를 대비하여 :-).

이것들은 내가 시도하고 희망하는 것이 당신에게도 도움이 될 것입니다 :-).

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.