Computer >> 컴퓨터 >  >> 시스템 >> Windows Server

원격 데스크톱 연결 오류 해결: 'DNS 캐시의 오래된 항목' 메시지의 숨은 원인

문제 상황

Windows Server 2008 R2로 구성된 RDS(원격 데스크톱 서비스) 팜에 표준 RD 클라이언트(mstsc.exe)로 접속하려던 사용자들 사이에서 간헐적으로 다음과 같은 오류가 발생한다는 불만이 제기되기 시작했습니다.

원격 데스크톱 연결 오류 해결:  DNS 캐시의 오래된 항목  메시지의 숨은 원인

"연결을 완료할 수 없습니다. 접속한 원격 컴퓨터가 사용자가 지정한 컴퓨터가 아닙니다. 이 문제는 DNS 캐시에 오래된 항목이 남아 있어 발생할 수 있습니다. 컴퓨터 이름 대신 IP 주소를 사용해 보십시오."

RDS 팜 구성 및 초기 진단

해당 RDS 팜은 Windows Server 2008 R2가 설치된 서버 3대로 구성되어 있으며, RD 연결 브로커(Connection Broker)가 터미널 간 부하 분산과 기존 세션 재접속을 담당합니다. 오류가 간헐적으로만 발생했다는 점에서 팜 내 특정 서버 한 대에 문제가 있다고 판단했고, 순차 점검 끝에 문제 서버를 찾아 IP 주소로 해당 서버의 데스크톱에 원격 접속할 수 있었습니다.

1차 시도: DNS 레코드 재등록 및 캐시 초기화

먼저 문제 서버에서 DNS 레코드를 다시 등록했습니다.

ipconfig /registerdns

이어서 몇 분 후 클라이언트 쪽 로컬 DNS 캐시도 초기화했습니다.

ipconfig /flushdns

하지만 이 조치만으로는 문제가 해결되지 않았습니다. 서버 자체에는 다른 이상 징후가 없었기 때문에 Microsoft 기술 자료 문서(support.microsoft.com/kb/2493594)를 참고하게 되었습니다.

2차 시도: RDP 암호화 수준 변경 검토

해당 문서에서 제시하는 해결책은 RDP 연결 암호화 프로토콜 수준을 SSL(인증에 TLS 1.0 사용)에서 통합형 RDP 암호화 방식인 RDP Security Layer로 낮추는 것이었습니다.

이 설정은 원격 데스크톱 세션 호스트 구성 → Microsoft RDP 7.1 → 속성 → 보안 계층(Security Layer) 경로에서 확인할 수 있습니다.

원격 데스크톱 연결 오류 해결:  DNS 캐시의 오래된 항목  메시지의 숨은 원인

다만 우리 환경에서는 Negotiate 방식을 사용하고 있었습니다. Negotiate는 클라이언트가 TLS를 지원하지 않을 경우 자동으로 RDP Security Layer로 전환하는 방식이므로, 이 설정이 원인일 가능성은 낮았습니다.

진짜 원인: 서버 시간 불일치

그러던 중 우연히 문제 서버의 시간이 도메인 컨트롤러의 시간과 어긋나 있다는 사실을 발견했습니다. 확인 결과, 해당 서버(가상 머신)가 잘못된 시간으로 설정된 VMWare ESXi 호스트 위에서 동작 중이었고, VMWare Tools 설정에서 하이퍼바이저와의 시간 동기화 옵션이 활성화되어 있었던 것입니다.

이에 ESXi 시간 동기화를 비활성화하고, Windows Time 서비스를 재시작해 도메인 컨트롤러와 시간을 맞췄습니다.

net stop w32time
net start w32time
원격 데스크톱 연결 오류 해결:  DNS 캐시의 오래된 항목  메시지의 숨은 원인

조치 이후 사용자들은 RDS 팜의 모든 서버에 오류 없이 정상적으로 접속할 수 있게 되었습니다.

참고: 팜 내 개별 서버 이름으로 접속할 때도 동일한 오류 발생 가능

'DNS 캐시의 오래된 항목 때문일 수 있습니다'라는 오류는 RDS 팜 안의 특정 서버에 이름으로 직접 접속을 시도할 때도 나타날 수 있습니다. 이 경우 연결 브로커가 클라이언트를 다른 RD 호스트(다른 DNS 이름과 IP 주소를 가진 서버)로 리디렉션하기 때문에, 사용자가 지정한 주소와 실제 접속된 서버의 주소가 일치하지 않아 인증 시도 후 오류가 반환됩니다. 따라서 개별 서버가 아닌 RD 팜 이름으로 접속하는 것이 바람직합니다.