본문 바로가기
네트워크/기초 학습

NTP 실습

by CBROJIN 2025. 9. 25.

NTP 기본 개념 정리

네트워크에서 NTP(Network Time Protocol)는 장비들의 시간을 정확하게 동기화하기 위한 프로토콜입니다. 라우터, 스위치, 방화벽 같은 네트워크 장비와 서버는 모두 정확한 시간이 필요합니다. (로그 분석, 인증, 트래픽 제어 등)


1. NTP 동작 방식

  • Server-Client: 보통 외부 공인 NTP 서버(예: time.google.com)와 장비(Dist)가 동기화. → 그 후 내부 장비들이 이 Dist를 NTP 서버로 삼음.
  • Peer-Peer: 비슷한 레벨(stratum)의 장비끼리 서로 시간을 교환하면서 안정성을 높임.
  • Stratum: 시간 계층(1~15까지). 낮을수록 시간 권위가 높음. (Stratum 1 = GPS 같은 원천 장비)
  • Stratum 16 = Unsynchronized (시간 못 맞춤 상태)
 

2. ntp server vs ntp peer

ntp server <IP>

  • 내 장비가 지정한 IP를 서버로 보고 시간 요청 (Client-Server 관계)
  • 가장 일반적으로 쓰는 방식
  • 예: ntp server 192.168.55.5

ntp peer <IP>

  • 서로를 동등한 Peer로 인식하고 시간 교환
  • 장점: 한쪽 서버가 죽어도 peer끼리 시간을 유지
  • 보조적인 안정성 확보용
 

3. ntp access-group

NTP 트래픽을 ACL로 제한하는 보안 기능.

  • ntp access-group query-only <ACL> : NTP 제어/조회만 허용
  • ntp access-group serve-only <ACL> : 시간만 제공, 제어/쿼리는 차단
  • ntp access-group serve <ACL> : 시간 제공 + 제한된 제어 허용
  • ntp access-group peer <ACL> : Peer 관계 허용

실무 권장:

  • 내부 관리망만 허용 (예: 192.168.x.0/24)
  • 외부나 일반 사용자 VLAN은 차단
 

4. ntp master [stratum]

  • 외부 서버가 끊겼을 때 이 장비를 권위자(stratum) 로 지정
  • 보통 랩이나 테스트 환경에서 사용
  • 실무에서는 신중하게 사용 (잘못 쓰면 내부에 잘못된 시간이 퍼질 위험)
  • 예: ntp master 10 → Stratum 10 권위자로 동작
 

5. 기본 포인트

Dist/Core 장비는 반드시 외부 공인 NTP와 동기화

  • 신뢰 가능한 상위 서버 2~3개 지정

내부 장비는 Dist/Core를 서버로 삼음

  • Access 스위치, 서버, 방화벽 등이 Dist의 시간을 참조

ACL(ntp access-group)로 접근 제어

  • 특정 관리망만 허용, 다른 VLAN/사용자 대역은 차단

Peer는 선택사항

  • Dist-1 ↔ Dist-2 같이 이중화 장비끼리 peer로 묶어 안정성 강화

Master는 조심해서 사용

  • 외부가 끊겼을 때도 서비스 유지를 원할 때만

검증 명령어

  • show ntp associations : NTP 서버/peer 상태 확인
  • show ntp status : 현재 장비의 동기화 상태 확인
  • show clock detail : 실제 시스템 시간이 어떻게 잡혔는지 확인
 

6. 헷갈리기 쉬운 부분 정리

  • * 표시 = 내가 현재 동기화한 sys.peer
  • ~ 표시 = 단순히 configured 된 상태 (아직 동기화 아님)
  • Stratum 값이 16이면 아직 unsync

 

7. 시간 기준

  • UTC (Coordinated Universal Time): 국제 표준시, 전 세계 공통 기준. Cisco 장비 기본 시간.
  • KST (Korea Standard Time): 한국 표준시(UTC+9).
  • NTP (Network Time Protocol): 네트워크 장비 간 시간 동기화 프로토콜 (UDP 123).
 

8. Cisco 장비 기본 동작

  • 장비 기본 시간은 UTC 기준.
  • clock set으로 수동 설정 시, 로그와 시각이 UTC로 기록됨.
 

9. Timezone 설정 역할

clock timezone KST 9
  • KST: 시간대 이름(라벨)
  • 9: UTC 오프셋(+9)
  • 표시용 시간 변환만 담당 (내부 시간은 여전히 UTC).
 

10. NTP와 Timezone 관계

  • NTP 서버는 항상 UTC 기준 시간 제공.
  • 클라이언트는 UTC를 받아서 자기 timezone 기준으로 보정해 표시.
  • 즉, NTP 동기화는 timezone과 무관.
 

11. 권장 설정

  1. NTP 동기화: 모든 장비가 동일한 NTP 서버 참조 → UTC 기준 일관성 확보.
  2. Timezone 지정: 한국 환경이면 clock timezone KST 9 필수 → syslog/로그 관리 용이.
  3. Summer-time: 해외 환경에서 필요 시 clock summer-time 사용.
 

12. 설정 예시

! Timezone 한국 표준시 적용
clock timezone KST 9

! NTP 서버 지정
ntp server 192.168.55.5 prefer
ntp update-calendar

! 현재 시간 확인
show clock
  • show clock: timezone 반영된 로컬 시간 확인.
  • show ntp status: NTP 동기화 상태(UTC 기준).
 

13. 정리

  • NTP = UTC 기준 시간 제공
  • Timezone = 로컬 표시용
  • 동기화 자체는 timezone 불필요, 하지만 운영 편의상 한국 환경은 KST 9 설정 필수.

: Syslog 서버를 쓴다면 모든 장비 timezone을 통일해야 로그 타임라인이 꼬이지 않음.

 

14. NTP Association 코드/컬럼

A) ref clock 5문자 태그

  • .INIT.: 초기화 상태. 아직 상위 참조원(Reference ID)이 확정되지 않았거나 유효한 시간원을 받지 못한 상태.
  • .STEP.: 큰 시차(보통 수초~수천초)로 인해 step correction(시간을 한 번에 점프 보정)이 필요/수행된 상태. 안정화 전에는 신뢰하지 않는 것이 안전.
  • .LOCL.: Local/undisciplined clock(외부 참조 없음). 외부 시간원 없이 장비 내부 클록만 구동되는 비상용 소스. 실무에서는 사용 지양.
  • .GPS.: GPS 수신기(스트라텀 1) 기반 참조원.
  • .PPS.: 1PPS(Pulse‑Per‑Second) 신호로 미세 보정 중(보통 GPS와 조합). 고정밀 시간원.

B) 주요 수치 컬럼

  • st (stratum): 시간 계층. 1이 원천에 가장 가까움, 2~15는 그보다 멀어짐, 16은 미동기화.
  • when: 마지막 유효 응답 이후 경과 초. -면 아직 없음.
  • poll: 현재 폴링 주기(초). 동기화가 안정되면 64→128→256→…→1024초로 적응 증가.
  • delay: 왕복 지연(ms).
  • offset (full name: time offset): 로컬 시계와 피어 시계의 시간 차(ms). 0에 가까울수록 좋음(근거리/LAN에서는 수 ms~수십 ms 수준이 보통).
  • disp (full name: dispersion): 시간 오차의 추정 상한(ms). 네트워크/클록 불확실성을 포함한 “최대 오차 범위”로, 작을수록 신뢰도가 높음.

C) reach(도달성) — 왜 377인가?

 

reach최근 8회 폴링 성공/실패 이력을 보관하는 8비트 시프트 레지스터를 8진수(octal)로 표시한 값입니다.

  1. 폴링할 때마다 왼쪽으로 1비트 시프트
  2. 그 폴링이 성공이면 최하위 비트(LSB)에 1, 실패0을 기록

예시 해석(왼쪽은 8진수, 오른쪽은 2진수):

  • 377(8) = 11111111(2) → 최근 8/8 전부 성공
  • 376(8) = 11111110(2)가장 최근 1회 실패, 7/8 성공
  • 7(8) = 00000111(2)가장 최근 3회 성공, 그 이전 5회 실패
  • 0 = 00000000(2) → 최근 8회 전부 실패

읽는 요령

  • 1의 개수 = 최근 8회 중 성공 횟수
  • 패턴 위치로 언제 실패가 있었는지까지 대략 추정 가능(예: 375(8)=11111101(2)이면 최근 한두 번 중 한 번 실패).

D) 운영 체크리스트

  • st16이면 그 서버는 아직 unsync → 동기원으로 채택 불가.
  • reach0이면 ACL/방화벽/NAT/소스 인터페이스 등을 우선 점검.
  • offset/disp/delay는 상대 지표라서 같은 L2/L3 도메인 내라면 수 ms~수십 ms 수준이어야 정상.
  • show ntp associations detail, show ntp status로 원인 세부 확인.

 

15. NTP access-group 허용

1) 기본 동작 원리

  • Cisco IOS에서 ntp access-group은 들어오는 NTP 패킷을 peer → serve → query 순서로 검사.
  • 따라서 단순 server–client 관계라도 서버가 돌려주는 응답 패킷은 peer 검사에 걸림.
  • 결과적으로 peer ACL에 서버 IP를 허용하지 않으면 동기화 실패 발생.
 

2) ACL 종류별 의미

  • peer : NTP peer 관계 허용 + server 응답 수신에도 필요
  • serve / serve-only : 내 장비가 다른 장비에 시간 제공할 때 허용
  • query-only : 단순 질의만 허용 (시간 제공 불가)
 

3) 설계 시 유의점

  • Upstream 서버: 반드시 peer ACL에 포함 → Dist가 시간을 받을 수 있음.
  • Dist-1 ↔ Dist-2: peer 관계를 맺으므로 서로를 peer ACL에 포함.
  • Access 스위치: Dist에서 시간만 받는 구조 → serve ACL에 대역 허용.

4) 권장 구성

Access 장비 대역 허용 (시간 제공)

ip access-list standard NTP-CLIENTS
 permit 192.168.89.0 0.0.0.255
ntp access-group serve NTP-CLIENTS

 

Upstream 서버 및 Dist 간 peer 허용

ip access-list standard NTP-SOURCES
 permit 192.168.55.5    ! Upstream 서버
 permit 192.168.89.2    ! Dist-1에서 Dist-2 허용
 permit 192.168.89.3    ! Dist-2에서 Dist-1 허용
ntp access-group peer NTP-SOURCES

 

Dist-1 / Dist-2 실제 설정

  • Dist-1 (192.168.89.2)
ntp server 192.168.55.5 source Vlan100
ntp peer 192.168.89.3
  • Dist-2 (192.168.89.3)
ntp server 192.168.55.5 source Vlan100
ntp peer 192.168.89.2
 

5) 결론

  • ntp access-group peer는 peer 세션뿐 아니라 server–client 응답에도 필요하다.
  • 따라서 Upstream 서버 IP도 반드시 peer ACL에 넣어야 한다.
  • Dist ↔ Access는 serve ACL로만 허용하면 충분하다.

'네트워크 > 기초 학습' 카테고리의 다른 글

prefix-list와 route-map  (0) 2025.10.07
DHCPv4 실습  (5) 2025.08.12
ACL 실습  (3) 2025.08.11
NAT 실습  (0) 2025.08.10
Cisco 장비 SSH 원격 접속 실습  (2) 2025.08.10