시간 동기화는 내부 네트워크의 로그에 대한 신뢰성과 연속성, 작업 진행의 동기화, 네트워크 모니터링 및 시간에 민감한 프로그램에 대한 신뢰도 향상을 위해 필요합니다.

 

예를 들어 아래 그림과 같은 네트워크 환경에서 외부로부터 Server A와 B를 통해서 DB 서버로 해킹이 발생하였다고 가정할 때, 각 네트워크 디바이스 및 서버에 시간이 동기화 되어 있지 않은 경우에는 네트워크 디바이스 및 서버의 로그를 통한 해킹 경로와 방법 파악이 어렵고 신뢰성이 떨어지게 됩니다.

 

 

 

 

다른 예로 시스템에 장애가 발생하였을 때,시간 동기화가 되어 있지 않은 경우 장애 발생 시간에 대한 로그 분석을 신뢰할 수 없게 됩니다.

그리고 관리자가 서버 및 네트워크 디바이스에 수시로 시간을 맞추어 준다고 해도 오차가 발생할 수 있으며, 비효율적인 반복 작업이 필요하게 됩니다.


이러한 문제들을 NTP 서버를 구성함으로써 전체 시스템에 정확한 시스템 시간을 유지하게 할 수 있습니다.

일반적으로 전산 담당자가 시간 동기화를 중요하게 생각하지 않는 것 같아서, 시간 동기화의 중요성을 알리고 NTP 서버 구축을 통해 추가적인 비용 없이 시간 동기화하는 방법에 대하여 글을 포스팅하게 되었습니다.

 

이 글에서는Windows 서버에 NTP 서버를 구축하여 시간 동기화 하는 방법과, 네트워크 장비에서 시간 동기화가 되지 않는 문제를 해결하는 방법에 대해 기술하도록 하겠습니다.

 

 

 

1. NTP (Network Time Protocol) 란

 

Network Time Protocol (네트워크 시간 프로토콜)의 약자로 네트워크 환경에 연결된 디바이스 (PC, 서버, 방화벽, 스위치 등)의 시스템 시간을 동기화하기 위한 규약입니다.

 

♦ 모든 시간은 기준시를 기반으로 동기화 합니다.

 

♦ 기준시로부터 일반 Host까지의 전달을 위해 계층 구조를 이루고 있습니다.

 

♦ NTP는 UDP 123 Port를 사용하므로 방화벽에서 해당 포트가 열려 있어야 합니다.

 

 

2. Windows Server에서 NTP 설정 방법

 

1) 내부 NTP 서버

 

a. 외부 NTP 서버와 시간 동기화 설정을 합니다.

시작 – CMD - W32tm /config /syncfromflags:manual /manualpeerlist:time.microsoft.com /udate

 

 

 

b. Windows Time 서비스의 설정값을 확인합니다.

시작 – CMD – w32tm /dumpreg /subkey:Parameters

 

 

 

외부 NTP 서버가 설정되어 있는 것을 확인합니다.

 

 

c. Windows Time 서비스를 재시작 합니다.

시작 – CMD – net stop w32time

- Net start w32time

 

 

 

d. 내부 시스템에서 내부 NTP 서버로의 시간 동기화를 위해 Windows 방화벽에서 UDP 123 포트를 열어줍니다.

 

관리자 권한으로 CMD 창을 실행합니다.

Netsh advfirewall firewall add rule name=”NTP Sync Response(IN/UDP)” protocol=UDP dir=in action=allow localport=123

 

 

 

e. Windows Time 서비스의 구동을 확인합니다.

시작 – CMD – sc query w32time

 

 

 

시작 – CMD – netstat –ano | findstr 123

 

 

 

2) 내부 서버 설정

 

시간 동기화 대상을 내부 NTP 서버로 설정하고, 동기화 작업을 수행합니다.

a. 내부 NTP 서버를 기준으로 시간 동기화 설정을 합니다.

시작 – CMD – w32tm /config /syncfromflags:manual /manualpeerlist:192.168.20.10 /update

 

 

 

b. Windows Time 서비스의 설정값을 확인합니다.

시작 – CMD – w32tm /dumpreg /subkey:Parameters

 

 

 

c. Windows Time 서비스를 재시작 합니다.

시작 – CMD – net stop w32time

- Net start w32time

 

 

 

3) 시간 동기화

a. 내부 NTP 서버에서 시간 동기화를 진행합니다.

시작 – CMD – w32tm /resync

 

 

 

b. NTP 서버와의 시간 차이를 확인합니다.

특정 서버에서 NTP 서버와의 시간 차이를 확인합니다.

시작 – CMD – w32tm - /stripchart /dataonly /computer:192.168.20.10

 

 

 

 

3. 네트워크 장비에서 Windows NTP 서버와 시간 동기화 문제 해결 방법

네트워크 장비의 경우 간혹 Windows NTP 서버와 시간 동기화가 되지 않는 경우가 발생합니다. 이러한 경우에는 아래와 같이 NTP 서버에서 Registry를 수정한 후에 NTP 서비스를 재시작 합니다.

 

1) 내부 NTP 서버

 

a. HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config 에서 

    LocalClockDispersion 항목의 값을 10에서 0으로 변경합니다.

 

b. HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

 에서 Type 항목의 값을 NT5DS로 변경합니다.

 

c. NTP 서비스를 재시작 합니다.

 

2) 네트워크 장비

 

네트워크 장비의 NTP 설정 방법은 디바이스에 따라 다르지만 대부분 NTP 서버의 IP를 설정하도록 구성되어 있습니다. 여기서는 Juniper SSG 방화벽에서의 NTP 설정을 보겠습니다.

 

SSG 방화벽의 Web Management에 접속하여 Configuration – Date/Time 페이지에 들어가면 아래 그림과 같이 NTP 서버 설정을 할 수 있습니다.

 

 

 

 

위와 같은 방법으로 기존 운영중인 Windows 서버에 NTP 서버를 구성하여 내부 서버 및 네트워크 장비와 시간 동기화를 간단하게 설정하여 운영할 수 있습니다.

 

일반적으로 컴퓨터의 로컬 clock은 정밀도가 낮으므로, 내부 네트워크 상에서 높은 정밀도를 요구하는 시간 동기화가 필요한 경우, NTP 전용 하드웨어를 별도로 도입해야 합니다.

 

참고로 Juniper Networks에서 외부 GPS와 시간 동기화를 통해 내부 네트워크에 nanosecond 단위의 정밀한 시간 동기를 제공하는 TCA Series 제품이 있습니다. 관심 있으신 분들께서는 아래 링크를 클릭하시어 제품 설명 참고하시면 좋을 듯 합니다.

 

Juniper TCA Series 제품 링크

 

감사합니다.

 

 

Posted by 로버무트