본문 바로가기
기타 IT 정보

NTP 서버를 이용한 시간 동기화

by minimax95 2020. 11. 12.

NTP 서버/클라이언트 시간 동기화

개발 시 중요한 요소 가운데 하나가 서버/클라이언트 간의 시간 동기화 문제입니다.

시간이 서로 다르면 통신상에 오류가 나올 수 있으며 특히 WCF에서는 Communication Fault가 발생하는 등 서버 운용에 제한이 발생하기도 합니다. 보통 외부 네트워크에 연동되어 인터넷 시간 적용이 허용된다면 크게 신경 쓸 필요가 없긴 하지만 인터넷 연결이 제한되는 내부 네트워크 망에서 개별 시스템 간의 시간 동기화는 간과할 수 없을 것입니다.

 

오늘은 Windows에서 제공하는 내부망 시간 동기화 NTP 서버를 만들고 활용하는 방법에 대해서 정리해 보겠습니다.

NTP는 Network Time Protocol의 약자로 Network 상에 연결된 장비와 장비 간에 시간 정보를 동기화하기 위한 프로토콜을 말하며 NTP 서버와 클라이언트 세팅을 통해 시간을 동기화할 수 있습니다.

 

먼저 NTP 서버를 설정해 보겠습니다.

윈도우 제어판에서 시스템 및 보안 > Windows Defender 방화벽 > 고급 설정으로 진입합니다.

여기서 로컬 컴퓨터의 인바운드 규칙을 세팅해 주도록 하겠습니다.

인바운드 규칙에서 우클릭하여 컨텍스트 메뉴를 열고 "새 규칙"을 클릭해 줍니다.

새 인바운드 규칙 위저드가 뜨면 아래와 같이 포트를 선택하고 다음을 클릭해 줍니다.

다음과 같이 프로토콜 및 포트를 지정하고 다음을 클릭해 줍니다.

작업 단계에서는 아래와 같이 "연결 허용"을 선택하고 다음 버튼을 클릭해 줍니다.

프로필 단계에서는 규칙 적용 시기를 체크하도록 되어 있는데 디폴트 상태(전체 체크)에서 다음으로 넘어갑니다.

마지막으로 이름에 "NTP_Server", 설명에는 "NTP_Server UDP 123 포트" 정도로 기술해 주고 마침 버튼을 클릭해 줍니다.

새 인바운드 규칙이 등록되면 아래와 같이 상단에 우리가 등록한 NTP_Server가 보이고 여기서 우클릭을 하여 속성을 확인해 보면 아래 그림과 같이 우리가 설정한 내용을 확인할 수도 있습니다.

이제 gpedit.msc를 실행하여 윈도우 NTP 서버 설정을 사용으로 등록해 줄 차례입니다.

윈도우키 + "R"키를 누르고 아래 그림처럼 "gpedit.msc"를 실행해 줍니다.

참고로 그룹 정책 편집기는 Windows pro 이상, Windows Server 등에서 자동 설치되어 있으며 편집기가 없을 경우에는 별도로 설치가 필요합니다.

 

로컬 그룹 정책 편집기에서

컴퓨터 구성 > 관리 템플릿 > 시스템 > Windows 시간 서비스 > 시간공급자 하위의 "Windows NTP 서버 사용"을 더블클릭 해 줍니다.

 

아래 화면이 나오면 사용을 선택하고 확인을 클릭해 줍니다.

다음은 다시 상위로 올라가서

컴퓨터 구성 > 관리 템플릿 > 시스템 > windows 시간 서비스 하위의 "글로벌 시간 구성"을 더블클릭 해 줍니다.

아래와 같은 화면이 나오면 구성 설정을 "사용"으로 선택해 주고

옵션의 "AnnounceFlags의 값에 5를 입력해 줍니다.

끝으로 실행창에서 services.msc를 실행해 줍니다.

서비스에서 "Windows Time"을 찾아 더블클릭해 주면 아래와 같이 속성 창이 나오고 여기서 시작 유형을 "자동"으로 변경해 준 다음 시작 버튼을 클릭해 줍니다.

이제 NTP 서버에서 시간 동기화를 위한 준비를 마쳤습니다.

 

다음은 NTP 클라이언트 설정을 해 보도록 하겠습니다.

같은 내부 네트워크 망으로 연결되어 있는 PC에서 아래와 같이 레지스트리 편집기에 들어갑니다.

 

레지스트리 편집기에서는 경로를 잘 찾아 들어가야 합니다.

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient 에서

아래 그림과 같이 SpecialPollInterval을 더블클릭하고 값을 10진수 604800 으로 설정해 줍니다.

다음은 서비스를 실행해 줍니다.

Windows Time을 찾아서 더블클릭해주면 아래와 같이 속성 창이 나오고 여기서 시작 유형을

"자동(지연된 시작)"으로 변경하고 시작 버튼을 클릭해 줍니다.

 

끝으로 클라이언트의 날짜 및 시간을 NTP 서버에 동기화할 수 있도록 시간 편집기를 열어줍니다.

작업표시줄 우측의 시간 부분을 우클릭하여 "날짜/시간 조정"을 클릭해 줍니다.

날짜 및 시간에서 우측의 "다른 시간대에 대한 시계 추가"를 클릭해 줍니다.

아래와 같이 날짜 및 시간 설정 창이 뜨면 "인터넷 시간" 탭을 선택하고 

"설정 변경" 버튼을 클릭하면 아래 그림과 같이 인터넷 시간 설정 구성 대화 상자가 나옵니다.

서버란에 NTP 서버 컴퓨터의 IP 주소를 입력해 주고 "지금 업데이트" 버튼을 클릭해 줍니다.

 

서버와 클라이언트 설정에 대한 정리라서 다소 길었지만 여기까지 진행하셨다면

내부 네트워크 망에서 NTP 서비스를 이용할 수 있습니다.

 

감사합니다.

댓글