Microsoft MVP성태의 닷넷 이야기
글쓴 사람
정성태 (techsharer at outlook.com)
홈페이지
첨부 파일
 
(연관된 글이 1개 있습니다.)

Warning: DsGetDcName returned information for \\[...], when we were trying to reach [...].

기존 DC(testad1)가 있는 Active Directory에 새롭게 DC(testad2)를 추가했는데, dcdiag의 Advertising 단계에서 실패했습니다.

C:\temp> dcdiag /test:advertising

Directory Server Diagnosis

Performing initial setup:
   Trying to find home server...
   Home Server = TESTAD2
   * Identified AD Forest.
   Done gathering initial info.

Doing initial required tests

   Testing server: Default-First-Site-Name\TESTAD2
      Starting test: Connectivity
         ......................... TESTAD2 passed test Connectivity

Doing primary tests

   Testing server: Default-First-Site-Name\TESTAD2
      Starting test: Advertising
         Warning: DsGetDcName returned information for \\testad1.testad.com, when we were trying to reach TESTAD2.
         SERVER IS NOT RESPONDING or IS NOT CONSIDERED SUITABLE.
         ......................... TESTAD2 failed test Advertising


   Running partition tests on : DomainDnsZones

   Running partition tests on : ForestDnsZones

   Running partition tests on : Schema

   Running partition tests on : Configuration

   Running partition tests on : testad

   Running enterprise tests on : testad.com

이와 함께 새로 추가된 DC의 공유 폴더 목록을 보면,

C:\temp> net share

Share name   Resource                        Remark

-------------------------------------------------------------------------------
C$           C:\                             Default share
IPC$                                         Remote IPC
print$       C:\Windows\system32\spool\drivers
                                             Printer Drivers
ADMIN$       C:\WINDOWS                      Remote Admin
The command completed successfully.

SYSVOL과 NETLOGON 공유가 없습니다. 즉, DC 간의 복제가 정상적으로 이뤄지지 않고 있는 것입니다. 실제로 "Group Policy Management"로 들어가 복제 상태를 확인해 보면,

sysvol_not_created_1.png

"Active Directory"의 "SysVol"에 대해 "Inaccessible"이라면서, "GPOs"는 "Data is uncollected"로 출력됩니다.




이에 대해 검색해 보면 다음의 글을 볼 수 있습니다.

How to force an authoritative and non-authoritative synchronization for DFSR-replicated SYSVOL (like "D4/D2" for FRS)
; https://support.microsoft.com/en-us/help/2218556/how-to-force-an-authoritative-and-non-authoritative-synchronization-fo

정리해 보면, 이러한 복제 문제를 복구하는 방법으로 2가지(D2, D4)가 있는데 이 방식은 예전에 FRS(File Replication Service)를 쓰던 시절에 적용하는 방식이고, FRS 서비스를 대체한 DFSR(Distributed File System Replication)을 쓰는 지금은 "D2"에 해당하는 "non-authoritative synchronization" 방식과 "D4"에 해당하는 "authoritative synchronization" 방식이 있습니다.

일단, 제가 겪은 문제에서는 비교적 간단한 방식인 "non-authoritative synchronization"은 해결책이 못 되었습니다. 대신 "authoritative synchronization"으로 해결했으므로 저도 이 글에서는 후자의 방법을 (알고 있으면 전자의 것으로도 써먹을 수 있으므로) 설명하겠습니다.

우선, 기존에 있던 DC(TESTAD1)에 로그인해 "adsiedit.msc"를 실행시켜 다음의 경로에 있는,

CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=TESTAD1,OU=testad,DC=com;

값 2개를 변경합니다.

msDFSR-Enabled=FALSE
msDFSR-options=1

그다음 신규 서버(TESTAD2) 항목에 대해서는,

CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=TESTAD2,OU=testad,DC=com;

msDFSR-Enabled 값만 FALSE로 변경합니다. 이제 변경 사항을 신규 DC(TESTAD2)로 전파하고,

c:\temp> Repadmin /replicate TESTAD2 TESTAD1 DC=testad,DC=com
Sync from testad1 to TESTAD2 completed successfully.

이 상태에서 신규 DC(TESTAD2)의 "DFSR(DFS Replication)" 서비스를 재시작하면 이벤트 로그에 다음과 같은 내용의 4114 항목이 출력되는 것을 볼 수 있습니다.

The replicated folder at local path D:\foldername has been disabled. The replicated folder will not participate in replication until it is enabled. All data in the replicated folder will be treated as pre-existing data when this replicated folder is enabled.


비활성화(disabled) 되었다고 하는데, 의도한 대로 된 것입니다. 다시 처음에 실행해 두었던 "adsiedit.msc"로부터 기존 DC의 항목에 대해 "msDFSR-Enabled" 값을 "TRUE"로 돌려놓습니다.

CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=TESTAD1,OU=testad,DC=com;

msDFSR-Enabled=FALSE

이번에도 신규 DC로 변경 내용을 전파하고,

c:\temp> Repadmin /replicate TESTAD2 TESTAD1 DC=testad,DC=com
Sync from testad1 to TESTAD2 completed successfully.

기존 DC에서 "DFSRDIAG POLLAD" 명령어를 실행하면 이제 해당 서버의 이벤트 로그에는 4602 항목이 보이고, 신규 DC에서는 "DFSR" 서비스를 재시작하면 여전히 4114 항목이 나타나게 됩니다. 자, 이제 마지막으로 adsiedit.msc에서 신규 DC(TESTAD2)에 대해 설정했던 "msDFSR-Enabled" 값을 "TRUE"로 돌려놓고,

CN=SYSVOL Subscription,CN=Domain System Volume,CN=DFSR-LocalSettings,CN=TESTAD2,OU=testad,DC=com;

msDFSR-Enabled=FALSE

(혹시나 싶어 Repadmin으로 전파도 한 다음) 신규 DC(TESTAD2)에서 "DFSRDIAG POLLAD" 명령을 실행해 주면 끝입니다.




이후 신규 DC에서는 다음과 같은 이벤트 로그가 남지만,

The DFS Replication service initialized SYSVOL at local path C:\WINDOWS\SYSVOL\domain and is waiting to perform initial replication. The replicated folder will remain in the initial synchronization state until it has replicated with its partner testad1.testad.com. If the server was in the process of being promoted to a domain controller, the domain controller will not advertize and function as a domain controller until this issue is resolved. This can occur if the specified partner is also in the initial synchronization state, or if sharing violations are encountered on this server or the synchronization partner. If this event occurred during the migration of SYSVOL from File Replication service (FRS) to DFS Replication, changes will not replicate out until this issue is resolved. This can cause the SYSVOL folder on this server to become out of sync with other domain controllers.


잠시 시간이 지나고 나면 정상적으로 SYSVOL 폴더가 복제되었다는 로그가 생성되고,

Log Name: DFS Replication
Source: DFSR
Date: 2020-03-08 오후 3:05:44
Event ID: 4604
Task Category: None
Level: Information
Keywords: Classic
User: N/A
Computer: TESTAD2.testad.com
Description:
The DFS Replication service successfully initialized the SYSVOL replicated folder at local path C:\WINDOWS\SYSVOL\domain. This member has completed initial synchronization of SYSVOL with partner testad1.testad.com. To check for the presence of the SYSVOL share, open a command prompt window and then type "net share".

Additional Information:
Replicated Folder Name: SYSVOL Share
Replicated Folder ID: 2C4C1BC4-6213-4639-92F5-88A8BE91F582
Replication Group Name: Domain System Volume
Replication Group ID: 11C62D01-6007-4604-86F2-0956DB5C219D
Member ID: C1CE3843-9225-43E6-B7AB-05EC8E5AA431
Sync partner: testad1.testad.com


다른 명령어로도 정상적으로 SYSVOL 공유가 된 것을 확인할 수 있습니다.

C:\temp> net share

Share name   Resource                        Remark

-------------------------------------------------------------------------------
C$           C:\                             Default share
IPC$                                         Remote IPC
print$       C:\Windows\system32\spool\drivers
                                             Printer Drivers
ADMIN$       C:\WINDOWS                      Remote Admin
NETLOGON     C:\WINDOWS\SYSVOL\sysvol\testad.com\SCRIPTS
                                             Logon server share
SYSVOL       C:\WINDOWS\SYSVOL\sysvol        Logon server share
The command completed successfully.

C:\temp> dcdiag /test:advertising

Directory Server Diagnosis

Performing initial setup:
   Trying to find home server...
   Home Server = TESTAD2
   * Identified AD Forest.
   Done gathering initial info.

Doing initial required tests

   Testing server: Default-First-Site-Name\TESTAD2
      Starting test: Connectivity
         ......................... TESTAD2 passed test Connectivity

Doing primary tests

   Testing server: Default-First-Site-Name\TESTAD2
      Starting test: Advertising
         ......................... TESTAD2 passed test Advertising


   Running partition tests on : DomainDnsZones

   Running partition tests on : ForestDnsZones

   Running partition tests on : Schema

   Running partition tests on : Configuration

   Running partition tests on : testad

   Running enterprise tests on : testad.com

아울러 "Group Policy Management" 화면의 복제 상태는 다음과 같이 "SysVol"에 "ACLs" 링크 항목으로 바뀝니다.

sysvol_not_created_2.png

(그리고 이 문제에 대한 해결 방법은 The SysVol Permissions for one or more GPOs on this domain controller and not in sync with the permissions for the GPOs on the Baseline domain controller. 글에 정리해 두었습니다.)




원래는 이런 문제가 발생하지 않았을 텐데, 신규 DC가 바로 이전에 demote시켰던 서버여서 아마도 새로 promote하는 과정에 충돌이 발생한 듯합니다. 그나저나, 복구 과정이 꽤나 생소한데 사실 저게 맞는 절차인지도 확신할 수 없으니, 이 글을 보시는 분은 꼭 공식 문서를 꼼꼼하게 확인하시고 적용해 보시길 바랍니다.

마지막으로 다음의 글을 보면,

Error Adding a Windows 2012 R2 DC: “Server is not Responding or is not Considered Suitable” (No SYSVOL Or NETLOGON Share)
; https://www.absoluteuc.org/server_is_not_responding_or_is_not_considered_suitable

"msDFSR-Options = 1" 옵션을 다시 "msDFSR-Options = 0"으로 돌려놓을 것을 권장합니다.




[이 글에 대해서 여러분들과 의견을 공유하고 싶습니다. 틀리거나 미흡한 부분 또는 의문 사항이 있으시면 언제든 댓글 남겨주십시오.]

[연관 글]






[최초 등록일: ]
[최종 수정일: 3/12/2020]

Creative Commons License
이 저작물은 크리에이티브 커먼즈 코리아 저작자표시-비영리-변경금지 2.0 대한민국 라이센스에 따라 이용하실 수 있습니다.
by SeongTae Jeong, mailto:techsharer at outlook.com

비밀번호

댓글 작성자
 




... 106  [107]  108  109  110  111  112  113  114  115  116  117  118  119  120  ...
NoWriterDateCnt.TitleFile(s)
11249정성태7/12/201718485오류 유형: 410. LoadLibrary("[...].dll") failed - The specified procedure could not be found.
11248정성태7/12/201724995오류 유형: 409. pip install pefile - 'cp949' codec can't decode byte 0xe2 in position 208687: illegal multibyte sequence
11247정성태7/12/201719315오류 유형: 408. SqlConnection 객체 생성 시 무한 대기 문제파일 다운로드1
11246정성태7/11/201718091VS.NET IDE: 118. Visual Studio - 다중 폴더에 포함된 파일들에 대한 "Copy to Output Directory"를 한 번에 설정하는 방법
11245정성태7/10/201723687개발 환경 구성: 321. Visual Studio Emulator for Android 소개 [2]
11244정성태7/10/201723254오류 유형: 407. Visual Studio에서 ASP.NET Core 실행할 때 dotnet.exe 프로세스의 -532462766 오류 발생 [1]
11243정성태7/10/201719935.NET Framework: 666. dotnet.exe - 윈도우 운영체제에서의 .NET Core 버전 찾기 규칙
11242정성태7/8/201720244제니퍼 .NET: 27. 제니퍼 닷넷 적용 사례 (7) - 노후된 스토리지 장비로 인한 웹 서비스 Hang (멈춤) 현상
11241정성태7/8/201718984오류 유형: 406. Xamarin 빌드 에러 XA5209, APT0000
11240정성태7/7/201721895.NET Framework: 665. ClickOnce를 웹 브라우저를 이용하지 않고 쿼리 문자열을 전달하면서 실행하는 방법 [3]파일 다운로드1
11239정성태7/6/201723392.NET Framework: 664. Protocol Handler - 웹 브라우저에서 데스크톱 응용 프로그램을 실행하는 방법 [5]파일 다운로드1
11238정성태7/6/201720897오류 유형: 405. NT 서비스 시작 시 "Error 1067: The process terminated unexpectedly." 오류 발생 [2]
11237정성태7/5/201722540.NET Framework: 663. C# - PDB 파일 경로를 PE 파일로부터 얻는 방법파일 다운로드1
11236정성태7/4/201725787.NET Framework: 662. C# - VHD/VHDX 가상 디스크를 마운트하지 않고 파일을 복사하는 방법파일 다운로드1
11235정성태6/29/201719945Math: 20. Matlab/Octave로 Gram-Schmidt 정규 직교 집합 구하는 방법
11234정성태6/29/201717297오류 유형: 404. SharePoint 2013 설치 과정에서 "The username is invalid The account must be a valid domain account" 오류 발생
11233정성태6/28/201717182오류 유형: 403. SharePoint Server 2013을 Windows Server 2016에 설치할 때 .NET 4.5 설치 오류 발생
11232정성태6/28/201718175Windows: 144. Windows Server 2016에 Windows Identity Extensions을 설치하는 방법
11231정성태6/28/201718813디버깅 기술: 86. windbg의 mscordacwks DLL 로드 문제 - 세 번째 이야기 [1]
11230정성태6/28/201717968제니퍼 .NET: 26. 제니퍼 닷넷 적용 사례 (6) - 잦은 Recycle 문제
11229정성태6/27/201719190오류 유형: 402. Windows Server Backup 관리 콘솔이 없어진 경우
11228정성태6/26/201716711개발 환경 구성: 320. Visual Basic .NET 프로젝트에서 내장 Manifest 자원을 EXE 파일로부터 제거하는 방법파일 다운로드1
11227정성태6/19/201724444개발 환경 구성: 319. windbg에서 python 스크립트 실행하는 방법 - pykd [6]
11226정성태6/19/201716325오류 유형: 401. Microsoft Edge를 실행했는데 입력 반응이 없는 경우
11225정성태6/19/201715618오류 유형: 400. Outlook - The required file ExSec32.dll cannot be found in your path. Install Microsoft Outlook again.
11224정성태6/13/201718102.NET Framework: 661. Json.NET의 DeserializeObject 수행 시 속성 이름을 동적으로 바꾸는 방법파일 다운로드1
... 106  [107]  108  109  110  111  112  113  114  115  116  117  118  119  120  ...