PowerEdge: 내부 및 외부 도메인 이름이 동일한 Windows 환경에서 웹 사이트에 연결할 수 없음
摘要: 이 문서에서는 Active Directory와 인터넷 도메인 이름이 동일한 환경에서 발생할 수 있는 세 가지 문제에 대해 설명합니다.
症状
다음 예제에서는 모든 경우에 AD 도메인과 등록 도메인은 모두 domain.com으로 이름이 같으며 www.domain.com이라는 회사 웹 사이트가 있습니다. 동일한 도메인 이름은 스플릿(또는 스플릿 브레인) DNS 환경을 만듭니다. 이 경우 내부 DNS 네임스페이스와 외부 DNS 네임스페이스의 이름은 동일하지만 별개입니다.
문제 1: 사무실 내부에서 외부에서 호스팅되는 회사 웹 사이트에 액세스할 수 없습니다.
이는 스플릿 DNS 환경에서의 가장 일반적인 문제입니다. 도메인에 가입한 클라이언트는 사무실 내부에서 회사 웹 사이트 또는 회사 소유의 다른 인터넷 연결 리소스에 연결할 수 없습니다. 사무실 외부의 기계는 웹 사이트에 도달하는 데 문제가 없습니다.
문제 2: 사무실 내부에서 내부적으로 호스팅되는 공용 웹 사이트에 액세스할 수 없습니다.
이는 위에 언급된 문제 1의 변형입니다. 차이점은 웹사이트가 회사 내부 네트워크의 방화벽으로 보호된 상태나 DMZ에서 내부적으로 호스팅된다는 것입니다. 내부 사용자와 외부 사용자 모두 액세스할 수 있어야 하지만 내부 사용자는 액세스할 수 없습니다. 외부 사용자가 문제를 보고하지 않습니다.
문제 3: 문제 1 또는 2가 해결된 후 웹 사이트가 불완전하게 로드되거나 로드되지 않습니다.
사이트는 내부 사용자에게는 전혀 로드되지 않을 수도 있고, 부분적으로 로드될 수도 있습니다. 사이트의 일부가 표시되지 않을 수 있으며 사이트 내의 링크가 작동하지 않을 수 있습니다. 외부 사용자는 문제 없이 웹사이트에 액세스할 수 있습니다.
原因
문제 1: 외부에서 호스팅되는 회사 웹 사이트는 사무실 내부에서 액세스할 수 없습니다.
이 문제가 발생하는 이유는 내부 사용자가 회사의 웹 사이트를 탐색하려고 할 때 어떤 일이 발생하는지 조사하여 확인할 수 있습니다.
- 사용자의 컴퓨터는 도메인의 DNS 서버(일반적으로 DC(Domain Controller))에 IP 주소(
www.domain.com)를 쿼리합니다. - DC는
domain.com이라는 이름의 정방향 조회 영역을 호스팅하므로, 해당 영역에서www라는 이름의 호스트 레코드를 검색합니다. - DC는
www라는 이름의 호스트 레코드를 찾을 수 없습니다.domain.com영역에 대해 신뢰할 수 있으므로 쿼리를 전달하지 않습니다. - DC는 사용자의 컴퓨터에 응답하여
www.domain.com에 대해 주소를 찾을 수 없다는 메시지를 전송합니다. - 사용자 컴퓨터의 브라우저에 "페이지를 표시할 수 없음" 또는 유사한 오류가 표시됩니다.
이 문제는 사용할 수 있는 DNS 서버가 해당 영역의 이름에 대한 쿼리를 다른 DNS 서버로 보내지 않기 때문에 발생합니다. 지정된 쿼리와 일치하는 레코드가 없는 경우 "찾을 수 없음" 응답을 반환합니다. 이 경우에는 올바른 레코드를 갖고 있는 다른 DNS 서버들이 있습니다. 즉, 공용 domain.com 영역을 호스트하는 DNS 서버가 있습니다. 이것은 사무실 외부의 기계가 웹 사이트에 도달할 수 있다는 사실에서 분명히 알 수 있습니다. 그러나 내부 컴퓨터의 쿼리는 해당 서버로 전송되지 않습니다.
문제 2: 사무실 내부에서 내부적으로 호스팅되는 공용 웹 사이트에 액세스할 수 없습니다.
문제의 원인은 문제 1의 원인과 유사합니다. 이 경우 내부 사용자는 웹 사이트의 이름을 공용 IP 주소로 올바르게 확인할 수 있습니다. 그러나 방화벽이 구성된 방식 때문에 여전히 웹 사이트에 연결할 수 없습니다. 내부 네트워크의 사용자가 공용 주소가 아닌 개인 주소를 사용하여 웹 사이트에 액세스하기를 기대합니다.
문제 3: 문제 1 또는 2가 해결된 후 웹사이트가 불완전하게 로드되거나 로드되지 않습니다.
이는 웹 사이트 코드가 브라우저를 www.domain.com 에서 domain.com으로 리디렉션할 경우 발생할 수 있습니다. 내부 링크는 사이트를 domain.com 으로(www.domain.com대신) 참조할 수 있습니다. 내부 머신에서는 사이트가 호스팅되는 위치가 내부이든 외부이든 관계없이 같은 증상을 보입니다.
이 경우의 문제는 조금 더 복잡합니다. 머신이 IP 주소에 대해 domain.com 을 확인하려면 DNS 내의 domain.com 영역에 빈 호스트 레코드가 있어야 합니다. 이 레코드의 이름은 Windows DNS 콘솔에서 상위 폴더와 같은 이름으로 표시됩니다. 그러나 AD는 domain.com 영역의 빈 호스트 레코드를 사용하여 domain.com 도메인에 대한 DC를 나타냅니다. 여분의 빈 호스트 레코드가 domain.com 영역에 있는 경우 지연 또는 인증 문제가 발생할 수 있습니다.
위의 이유로 이 문제는 DNS만 사용하여 해결할 수 없습니다. 웹 사이트의 IP 주소로 빈 호스트 레코드를 생성하면 내부 사용자의 웹 사이트 액세스 문제가 간헐적으로 해결됩니다. DC를 참조하는 기존의 빈 호스트 레코드는 라운드 로빈 DNS 기능으로 인해 이 문제를 방해합니다. 이러한 레코드는 DC에 의해 자동으로 등록되므로 DNS 영역에서 제거되면 정기적으로 다시 나타납니다.
解决方案
문제 1: 사무실 내부에서 외부에서 호스팅되는 회사 웹 사이트에 액세스할 수 없습니다.
이 문제에 대한 해결책은 간단합니다. DC의 domain.com 영역에서 www라는 호스트(A) 레코드를 생성하고 해당 레코드에 웹 사이트의 IP 주소를 제공합니다. 그런 다음 해당 DNS 서버를 쿼리하는 머신은 올바른 응답을 받고 웹사이트를 탐색할 수 있습니다.
문제 2: 사무실 내부에서 내부적으로 호스팅되는 공용 웹 사이트에 액세스할 수 없습니다.
이에 대한 간단한 해결책도 있습니다. DC에서 domain.com 영역에 www라는 호스트 레코드를 생성하여 웹 사이트의 사설 IP 주소를 할당합니다. 내부 머신은 웹 사이트의 이름을 해당 개인 주소로 확인하지만 외부 머신은 계속해서 웹 사이트의 공용 주소로 이름을 확인합니다.
문제 3: 문제 1 또는 2가 해결된 후 웹사이트가 불완전하게 로드되거나 로드되지 않습니다.
이 문제를 해결하는 가장 간단한 방법은 웹 사이트의 코드를 수정하여 리디렉션을 제거하는 것입니다. 또한 내부 링크는 domain.com이 아닌 www.domain.com으로 참조되어야 합니다. 코드를 수정할 수 없는 경우 문제를 해결하기 위한 유일한 다른 옵션은 AD 도메인의 이름을 바꾸는 것입니다. 이는 환경의 규모와 복잡성에 따라 복잡한 작업일 수 있습니다.
참고: 이 모든 예제에서 웹 사이트에 액세스할 때 www.domain.com 이라는 이름을 사용해야 합니다. 이름으로 domain.com 을 사용하면 사이트에 액세스할 수 없거나 간헐적으로만 액세스할 수 있습니다.
其他信息
AD(Active Directory) 도메인 설계에 대한 모범 사례에서는 등록된 도메인 이름을 AD 도메인의 이름으로 사용하지 않을 것을 권장합니다. 이에 대한 두 가지 권장 대안이 있습니다.
- AD 도메인 이름에 비공개 DNS 접미사(예:
.local또는.lan)를 사용합니다. - 등록된 도메인의 하위 도메인으로 AD 도메인을 설정합니다(예:
corp.domain.com).
이는 AD 도메인이 아직 생성되지 않았거나 이름 바꾸기 작업이 진행 중인 경우에만 가능합니다.