네트워크 시간 프로토콜

IT 위키

네트워크 시간 프로토콜(Network Time Protocol, NTP)은 패킷 교환 네트워크에서 컴퓨터와 네트워크 장비의 시계를 공통 기준 시각에 맞추기 위한 인터넷 표준 시간 동기화 프로토콜이다.

NTP는 인터넷과 사설망에서 서버, 클라이언트, 네트워크 장비, 가상화 호스트 등의 시스템 시각을 동기화하는 데 사용된다. 현재 널리 기준이 되는 규격은 NTP version 4(NTPv4)로, RFC 5905에서 정의되며 NTPv3 및 이전 버전과의 하위 호환성을 고려한다.[1]

NTP 패킷은 UDP 데이터그램으로 전송되며, 표준 포트 번호는 123이다. RFC 5905는 NTP 포트 번호 123을 전역 매개변수로 정의하고, 해당 포트가 IANA에 의해 할당된 번호임을 명시한다.[2]

NTP의 목적은 시스템 간 시각 차이를 줄여 다음과 같은 작업의 일관성을 확보하는 것이다.

  • 서버 로그의 시간 순서 정렬
  • 분산 시스템의 이벤트 분석
  • 인증, 인증서 검증, 세션 만료 등 시간 의존 기능의 정상 동작
  • 데이터베이스, 파일 시스템, 백업 시스템의 변경 시각 관리
  • 네트워크 장비의 장애 분석 및 보안 감사

NTP는 현지 시간대나 일광 절약 시간제 정보를 배포하는 프로토콜이 아니라, 시스템 시각을 기준 시각에 맞추는 시간 동기화 프로토콜이다. 시간대 표시는 운영체제나 응용 프로그램의 시간대 설정에서 처리한다.

동작 방식

[편집 | 원본 편집]

계층 구조

[편집 | 원본 편집]

NTP는 시간원을 계층적으로 표현한다. 이 계층을 스트라텀(stratum)이라고 한다.

구분 설명
Stratum 0 원자시계, GPS 수신기, 전파 시계와 같은 기준 시간원. 일반적으로 네트워크에 직접 NTP 응답을 제공하는 서버가 아니라, 상위 시간 기준 장치로 취급된다.
Stratum 1 Stratum 0 시간원에 직접 연결된 NTP 서버.
Stratum 2 이상 상위 Stratum 서버에서 시각을 받아 다시 하위 클라이언트나 서버에 제공하는 시스템.
Stratum 16 RFC 5905의 전역 매개변수에서 최대 stratum 값으로 정의되며, 일반적으로 동기화되지 않은 상태를 나타내는 데 사용된다.[3]

Stratum 값이 낮다고 항상 실제 정확도가 높다는 뜻은 아니다. 네트워크 지연, 서버 품질, 기준 시간원의 상태, 클라이언트의 필터링 알고리즘 등이 함께 영향을 준다.

시각 교환

[편집 | 원본 편집]

일반적인 클라이언트-서버 모드에서 클라이언트는 서버에 요청을 보내고, 서버는 자신의 수신 및 송신 시각을 포함해 응답한다. NTP는 네 개의 타임스탬프를 이용해 왕복 지연과 시계 오프셋을 계산한다.

기호 의미
T1 클라이언트가 요청을 보낸 시각
T2 서버가 요청을 받은 시각
T3 서버가 응답을 보낸 시각
T4 클라이언트가 응답을 받은 시각

RFC 5905는 이 네 값을 이용하여 상대 오프셋과 왕복 지연을 다음과 같이 계산한다.[4]

오프셋 θ = 1/2 × [(T2 - T1) + (T3 - T4)]
왕복 지연 δ = (T4 - T1) - (T3 - T2)

계산된 값은 즉시 시스템 시각에 단순 반영되는 것이 아니라, 구현체의 필터링, 선택, 클러스터링, 시계 조정 알고리즘을 거쳐 적용된다. 이를 통해 일시적 네트워크 지연, 손실, 비정상 서버의 영향을 줄인다.

패킷과 포트

[편집 | 원본 편집]

NTPv4 기본 헤더는 48바이트이며, 뒤에 확장 필드와 메시지 인증 코드(MAC)가 붙을 수 있다. RFC 5905는 NTP 패킷을 UDP 데이터그램으로 설명하고, 패킷 헤더 뒤에 선택적 확장 필드와 선택적 MAC이 올 수 있음을 정의한다.[5]

항목 값 또는 설명
전송 계층 UDP
기본 포트 123
대표 버전 NTPv4
주요 RFC RFC 5905
주요 동작 형태 클라이언트-서버, 대칭 모드, 브로드캐스트/멀티캐스트

NTPv4의 확장 필드는 기본 헤더 형식을 바꾸지 않고 추가 기능을 넣기 위한 구조이다. RFC 7822는 RFC 5905의 확장 필드와 MAC 처리 관계를 명확히 하며, 확장 필드가 MAC 앞에 올 수 있고 MAC이 항상 필수는 아니라는 점을 정리한다.[6]

NTP는 잘못된 시간 서버, 중간자 공격, 재전송 공격, 지연 공격, 반사형 DDoS 악용 등에 노출될 수 있다. 특히 인증되지 않은 공용 NTP 서버에만 의존하면 공격자나 오동작 서버가 클라이언트 시간을 왜곡할 수 있다.

Network Time Security

[편집 | 원본 편집]

Network Time Security(NTS)는 NTP의 클라이언트-서버 모드에 암호학적 보호를 제공하기 위한 표준이다. RFC 8915는 NTS가 TLS와 AEAD를 사용하여 NTP 시간 동기화에 인증, 무결성, 재전송 방지, 요청-응답 일관성, 비증폭 특성을 제공하도록 설계되었다고 설명한다.[7]

NTS는 크게 두 부분으로 구성된다.

  • NTS-KE(Network Time Security Key Establishment): TLS 기반으로 초기 인증과 키 수립을 수행한다.
  • NTPv4 확장 필드 기반 보호: 시간 동기화 패킷에는 NTPv4 확장 필드를 사용하여 암호학적 인증 정보를 포함한다.[8]

운영상 권장 사항

[편집 | 원본 편집]
  • 신뢰할 수 있는 복수의 시간원을 사용한다.
  • 외부에 공개된 NTP 서버는 접근 제어와 응답 제한을 설정한다.
  • 내부망에서는 계층적 시간 서버를 두어 외부 의존도를 줄인다.
  • 가능한 경우 NTS를 지원하는 클라이언트와 서버를 사용한다.
  • 방화벽에서는 필요한 NTP 트래픽만 허용한다.
  • 시간 동기화 상태, 오프셋, 지터, 사용 중인 상위 서버를 모니터링한다.

NTP Pool

[편집 | 원본 편집]

NTP Pool Project는 전 세계의 자원봉사 NTP 서버를 묶어 공용 시간 서비스를 제공하는 프로젝트이다. 공식 사이트는 pool.ntp.org 프로젝트를 “수백만 클라이언트를 위한 대규모 가상 시간 서버 클러스터”로 설명하며, 2026년 6월 8일 기준 전체 풀 서버 수를 6,043대로 표시하고 있다.[9]

일반 클라이언트에서는 다음과 같이 지역 또는 전역 풀 이름을 지정해 사용할 수 있다.

pool.ntp.org
0.pool.ntp.org
1.pool.ntp.org
2.pool.ntp.org
3.pool.ntp.org

대규모 제품이나 다수의 장비에 NTP Pool을 기본값으로 넣는 경우에는 프로젝트의 벤더 가이드라인을 확인하고, 부하 분산과 트래픽 정책을 준수해야 한다.

SNTP와의 차이

[편집 | 원본 편집]

SNTP(Simple Network Time Protocol)는 NTP 패킷 형식을 이용하지만, 전체 NTP 구현에서 사용하는 복잡한 필터링, 서버 선택, 클러스터링, 주파수 보정 알고리즘을 단순화한 방식이다. IBM 문서는 SNTP와 NTP가 장치 시계의 동기화 상태를 유지하는 데 사용되며, IBM i의 SNTP가 RFC 2030을 기반으로 한다고 설명한다.[10]

SNTP는 단순한 장비나 높은 정밀도가 필요하지 않은 환경에 적합하지만, 서버 품질 평가와 장기적인 클럭 보정이 중요한 서버 환경에서는 일반적으로 완전한 NTP 구현을 사용하는 편이 바람직하다.

구현체

[편집 | 원본 편집]

NTP 기능은 운영체제 기본 서비스나 별도 데몬으로 구현된다. 대표적인 구현체와 관련 소프트웨어는 다음과 같다.

구현체 설명
ntpd 전통적인 NTP 참조 구현 계열에서 사용되어 온 데몬.
chrony 리눅스 환경에서 널리 사용되는 시간 동기화 구현체. 간헐적 네트워크 연결이나 가상화 환경에서도 자주 사용된다.
systemd-timesyncd systemd 기반 리눅스 배포판에서 제공되는 단순 시간 동기화 서비스.
NTPsec 기존 NTP 구현을 보안성과 유지보수성 관점에서 정리한 구현체. NTPsec 문서는 주요 기준 표준으로 RFC 5905를 제시한다.[11]

운영체제별 기본 구현체와 설정 방법은 배포판, 버전, 보안 정책에 따라 다르므로 실제 운영 환경에서는 해당 운영체제의 공식 문서를 기준으로 설정해야 한다.

활용 사례

[편집 | 원본 편집]
  • 서버와 네트워크 장비의 로그 시간 통일
  • 데이터센터 및 클라우드 인프라의 시간 기준 유지
  • 인증 시스템의 티켓 만료 및 유효 시간 검증
  • 데이터베이스 복제, 백업, 장애 복구 시점 추적
  • 보안 관제와 침해 사고 분석
  • IoT 및 임베디드 장비의 기본 시간 보정

NTP는 인터넷 환경에서도 실용적인 시간 동기화를 제공하지만, 네트워크 경로 비대칭, 패킷 지연 변동, 서버 혼잡, 가상화 환경의 타이머 품질, 잘못된 상위 시간원에 영향을 받을 수 있다. 매우 높은 정밀도가 필요한 산업 제어, 통신망, 금융 거래, 계측 환경에서는 PTP(Precision Time Protocol)나 전용 하드웨어 타임스탬프 장치를 함께 검토한다.

같이 보기

[편집 | 원본 편집]
  1. 《RFC 5905: Network Time Protocol Version 4: Protocol and Algorithms Specification》, https://datatracker.ietf.org/doc/html/rfc5905, 확인일: 2026-06-08.
  2. 《RFC 5905: Network Time Protocol Version 4: Protocol and Algorithms Specification》, https://datatracker.ietf.org/doc/html/rfc5905, 확인일: 2026-06-08.
  3. 《RFC 5905: Network Time Protocol Version 4: Protocol and Algorithms Specification》, https://datatracker.ietf.org/doc/html/rfc5905, 확인일: 2026-06-08.
  4. 《RFC 5905: Network Time Protocol Version 4: Protocol and Algorithms Specification》, https://datatracker.ietf.org/doc/html/rfc5905, 확인일: 2026-06-08.
  5. 《RFC 5905: Network Time Protocol Version 4: Protocol and Algorithms Specification》, https://datatracker.ietf.org/doc/html/rfc5905, 확인일: 2026-06-08.
  6. 《RFC 7822: Network Time Protocol Version 4 (NTPv4) Extension Fields》, https://datatracker.ietf.org/doc/rfc7822/, 확인일: 2026-06-08.
  7. 《RFC 8915: Network Time Security for the Network Time Protocol》, https://datatracker.ietf.org/doc/rfc8915/, 확인일: 2026-06-08.
  8. 《RFC 8915: Network Time Security for the Network Time Protocol》, https://datatracker.ietf.org/doc/rfc8915/, 확인일: 2026-06-08.
  9. 《pool.ntp.org: public ntp time server for everyone》, https://www.ntppool.org/en/, 확인일: 2026-06-08.
  10. 《SNTP 및 NTP 개념》, https://www.ibm.com/docs/ko/i/7.6.0?topic=protocol-sntp-ntp-concepts, 확인일: 2026-06-08.
  11. 《NTPsec Documentation: Standards Conformance》, https://docs.ntpsec.org/latest/standards.html, 확인일: 2026-06-08.