시간 동기화
왜 필요합니까?
단일 및 정확한 시간은 이벤트 구성, 로그/트레일 올바르게 상관 관계, 거래 서명 및보고 재현성의 기초입니다. 현금 흐름이있는 플랫폼의 경우 규정 준수 및 신뢰의 문제입니다. "누가 먼저", "결과가 기록 될 때", "어떤 씨앗이 사용되었는지".
기본 개념
UTC vs TAI: UTC에는 두 번째 도약 인서트가 포함되어 있습니 TAI-그들없이. 대부분의 시스템은 UTC에서 작동합니
두 번째 도약: 두 번째 삽입/삭제. 원활한 작업에는 지원/완화 (번짐) 가 중요합니다.
Stratum (NTP): 표준으로부터의 거리 수준 (0 - 원자/GNSS, 1 - 서버, 2 + - 클라이언트).
PTP ро독점: 그랜드 마스터 (GM) → 경계 시계 (BC )/투명 시계 (TC) → 슬레이브.
PPS: GNSS/생성기의 정확한 정렬을위한 초당 펄스.
Servo: 로컬 시계의 주파수/위상을 수정하는 알고리즘 (chrony/ptp4l/phc2sys).
PTP 일 때 NTP
NTP (Chrony): 밀리 초/100 밀리 초 정확도; WAN/인터넷; 간단하고 신뢰할 수 있습니다
PTP (IEEE 1588): 하드웨어 마크가있는 밀리 초 미만 및 최대 마이크로 초; 네트워크 규율 (L2/multicast/QoS) 이 필요합니다.
하이브리드: NTP/Chrony는 PTP-GM에 대한 참조를 제공합니다. HW 타임 스탬프가있는 데이터 센터-PTP.
시간 소스 및 복원력
GNSS (GPS/GLONASS/Galileo/BeiDou) + PPS 기본 참조.
위성이 손실 될 때 인계를위한 OCXO/TCXO (발전기).
백업 참조: 두 개의 독립적 인 GNSS 수신기, 다른 안테나/케이블, 방해 장벽.
2 차 NTP 풀: VPN을 통한 외부 신뢰할 수있는 공급자 및 개인 서버.
BMC (Best Master Clock) 및 수동 장애 계획이있는 그랜드 마스터 x2.
PTP 네트워크 아키텍처
프로필: 기본, 통신 (G.8275. x), 힘. 데이터 센터의 경우 기본 또는 공급 업체 프로필이 더 일반적입니
스위치가 보정 필드를 추가하는 투명 시계 (TC) 는 정확도를 향상시킵니다.
경계 시계 (BC): 스위치/라우터-클라이언트를 최고로, 하위 세그먼트를 마스터합니다.
QoS: PTP 멀티 캐스트/유니 캐스트 우선 순위, 큐 최소화.
격리: 시간을위한 전용 VLAN/VRF; PTP 경로에 L3-NAT가 없습니다.
보안: NTP를위한 NTS, PTP 보호
NTP: NTS (Network Time Security, RFC 8915) -시간 서버의 TLS 인증 사용. 주변 내부에는 대칭 키 (클래식 지정) 가 허용됩니다. 오토 키는 더 이상 사용되지 않습니다.
PTP: 기본 MAC/인증은 거의 사용되지 않습니다. L2/L3의 네트워크 격리, ACL, MACsec/IPsec으로 보상하십시오.
GNSS: 방해/스푸핑 보호-신호 품질 모니터, DOP 감시, 지리 필터, 이상 감지.
도약 제 2 치료 및 윤활
도약 발표: NTP/Chrony는 다가오는 두 번째 삽입물을 발표합니다.
스미어: 일일 스트레칭은 λ0입니다. 단계를 피하면서 5 초 (또는 다른 창). Google과 같은 도말은 "점프" 를 포기하는 데 편리하지만 모든 서비스는 단일 정책 (또는 윤곽 분리) 을 따라야합니다.
시간 SLO (예)
p95 클라이언트 참조 오프셋 0ms (데이터 센터 NTP 회로), p99 소 5ms.
HW 타임 스탬프가있는 PTP: 도메인 내부에서 p95 λ20 μs, p99 λ100 μs 오프셋.
Jitter (stddev) 2 ms (NTP )/λ5 μs (PTP-HW).
시계 단계 이벤트 = 0; 프로덕션 클래스에서만 죽었습니다 (부드러운 수정).
엔지니어링 관행 (NTP/Chrony)
Chrony: 패킷 손실/비대칭, 유연한 NTS에 강한 "잡음" 네트워크에서 더 잘 수렴합니다.
최소한의 크로니. (PHP 3 = 3.0.6, PHP
conf
Sources (top-level servers)
server ntp1. example iburst nts server ntp2. example iburst nts
Local GNSS with PPS (if any)
refclock SHM 0 poll 4 refid GNSS refclock PPS /dev/pps0 poll 4 refid PPS lock GNSS
Access restrictions allow 10. 0. 0. 0/8 deny all
makestep adjustment policy 0. 1 3 rtcsync log tracking measurements statistics
검증 및 모니터링:
bash chronyc tracking chronyc sources -v chronyc sourcestats -v
고객: 최소 두 개의 서버를 지정합니다. 초기 시작을위한 'makestep' 과 필요에 따라 'maxslewrate' 를 포함합니다.
엔지니어링 관행 (PTP/linuxptp)
하드웨어 타임 스탬프 (HW-TS): PHC (PHC = PTP 하드웨어 시계) 로 NIC/드라이버를 요구합니다.
확인:bash ethtool -T eth0 grep timestamp phc2sys -l
ptp4l (슬레이브/GM/BC) - 설정의 예:
conf
[global]
twoStepFlag 1 time_stamping hardware tx_timestamp_timeout 30 logging_level 6 clock_class 248 clock_accuracy 0x20 priority1 128 priority2 128 delay_mechanism E2E network_transport L2 dsptp_domain 0
[eth0]
delay_filter moving_average delay_filter_length 10 announceReceiptTimeout 3 syncReceiptTimeout 3
PHC 번들 → 시스템 시계:
bash
PHC NIC -> system clock (slew)
phc2sys -s /dev/ptp0 -c CLOCK_REALTIME -O 0 -E ntpshm -w
경계/투명 시계의 경우: BC/TC 지원 스위치의 펌웨어/이미지를 사용하고 프로파일을 활성화하십시오. pmc의 보정 필드 모니터:
bash pmc -u -b 0 "GET TIME_STATUS_NP"
Kubernetes, 가상화 및 컨테이너
노드는 일반 호스트와 동기화 된 K8입니다. 컨테이너는 호스트 시간을 사용합니다
PTP의 경우: HW-TS가있는 전용 노드의 PTP Operator/DaemonSet (예: 'linuxptp-daemonset'); PHC로 NIC를 표시하기위한 'NodeFeatureDiscovery'.
시간 감도에 따른 워크로드 격리 (RNG/게임 이벤트): 더 나은 동기화를 가진 공차/공차 → 노드.
가상화에서 하이퍼 바이저의 공격적인 "가상" 드리프트 교정기를 비활성화하고 하나의 시간 분야 (게스트 NTP/PTP 또는 하이퍼 바이저) 를 사용하십시오.
네트워크 및 QoS
별도의 시간 -VLAN/VRF, 지연 및 지터를 최소화하십시오.
PTP E2E의 경우-경로 비대칭 성을 피하십시오. P2P의 경우-링크 로컬 지연 사용.
모든 곳에서 합의 된 경우에만 점보 MTU 엔드 투 엔드 사용 사용; 그렇지 않으면 표준 MTU이지만 안정적인 대기열입니다.
UDP/123을 통한 경로 NTP는 NTS-SL 포트를 허용합니다. PTP의 경우 올바른 멀티 캐스트 ACL (224. 0. 1. 129/130).
모니터링 및 경고
측정해야 할 사항:- 오프셋, 지터, 주파수 드리프트, 수정/초
- PTP: 'offsetFromMaster', 'meanPathDelay', 'grandmasterIdentity', 'stepsRemoved'.
- GNSS: SNR, DOP, 가시 위성, PPS 지터.
- 'Chrony' Prometheus (chrony-producter) 로 내보내기, 텍스트 로그 → Loki.
- 'linuxptp' 통계 ('ptp4l -m'), 노드 내보내기 텍스트 파일을 통한 메트릭.
- 네트워크 카운터: time-VLAN에서 드롭/재전송/큐-len.
- NTP 오프셋 p95> 5 분 동안 1 ms.
- PTP offsetFromMaster> 25 μs (p95) 5
- GNSS/PPS> 1 분 손실 (인계로 전환).
- 계획된 창 밖에서 그랜드 마스터 변경 (BMC).
- RTC 시스템 클럭> 부팅 임계 값 차이.
운영 및 업데이트
시작/중지-먼저 네트워크/GNSS/PPS → GM → BC/TC → 클라이언트를 복원하십시오.
도약 초: 미리 발표하고 도말 정책 및 호환성을 확인하십시오.
업데이트: 펌웨어 NIC/스위치, 'linuxptp/chrony' -오프셋 제어로 단계적입니다.
런북: GNSS 손실, GM 교체, PTP 도메인 재배치, 클러스터 오정렬, VLAN 충돌.
구현 체크리스트
- 서비스 및 로그에 대한 SLO (오프셋/지터) 가 정의됩니다.
- 2 개의 독립 시간 소스 (GNSS + NTP), 2 개의 GM, IUD/수동 Feilover Plan.
- 전용 시간 -VLAN/VRF, QoS, ACL/MACsec; BC/TC PTP가 활성화되었습니다.
- 단일 도약 정책 (판매시 번짐/단계 금지).
- 연대기 NTS; ptp4l/phc2sys - PHC가있는 노드에서 설정 servv.
- 오프셋/지터/GM/GNSS 손실, 경고 및 대시 보드 모니터링.
- 런북: GNSS, GM 장애 감소, 도약 초, 드리프트 헌트.
- 감사 문서-출처, 구성 요소, SLO 보고서, GM 시프트 로그.
공통 오류
보호되지 않은 시간 서버 하나; 통제없이 공공 수영장과 개인 수영장을 혼합합니다.
"잡음" L3 경로/비대칭을 통한 PTP, BC/TC 없음.
NTS/격리 없음-NTP 스푸핑/PTP 스푸핑 기능.
서브 시스템의 다른 도약 정책 → 서비스 간 시간의 "균열".
드리프트/홀드 오버 모니터링, 갑작스런 단계 수정 무시하십시오.
이중 규율 가상 머신 (호스트 + 게스트) → 불일치.
iGaming/fintech 특정
법적으로 중요한 타임 스탬프: 트랜잭션/이벤트 로그의 상점 오프셋 및 동기화 상태 (유효성을 입증하기 위해).
이벤트 순서: 교차 서비스 상관 관계자는 "벽" 뿐만 아니라 단조 논리 시계 + UTC 레이블을 사용합니다.
토너먼트/일치: 단일 시간 소스 (PTP- 도메인/NTP- 서버), 전면의 TTL 캐시, "휘파람" 전에 점검을 수정하십시오.
RNG/시드 초기화: 암호화 소스에서 초기화하고 SLO 내에서 오프셋을 확인하여 구성 요소로만 시간을 사용하십시오.
보고/규제 기관: 정기 시간 SLO 보고서 및 GM/소스 시프트 로그.
미니 플레이 북
1) 빠른 클러스터 시간 감사
1. 각 노드의 '크로니크 추적' → 오프셋/지터를 수집합니다.
2. PTP 노드의 'ptp4l -m '/' pmc' → GM, 지연, 단계 제거 확인.
3. 도약 정책을 검증하고 균일성을 유지하십시오.
2) GNSS의 상실
1. 홀드 오버 (OCXO) 경고로 이동하십시오.
2. VPN을 통해 외부 NTP를 임시 참조로 연결하십시오.
3. 안테나/케이블/수신기를 확인하십시오 교체 계획.
3) 그랜드 마스터 변경
1. 우선 순위 BMC 확인; 두 번째 GM을 수동으로 올립니다.
2. 항공기/클라이언트의 오프셋 제어; 필요한 경우 phc2sys를 다시 시작하십시오.
3. 시계열 상쇄 사건 보고서.
결과
안정적인 시간 루프는 안정적인 참조 (GNSS + PPS + OCXO), 올바른 PTP 네트워크 아키텍처 (BC/TC/QoS/격리), NTS를 통한 보안 NTP, 일관된 도약 정책, 수정 수정 규칙 및 SLO 관찰 가능성 (오프셋/지터/홀드 오버). 런북에 모든 것을 기록하고 정기적으로 오프셋을 확인하고 운동을 통해 배우십시오. 다른 모든 것이 "트럼블" 하더라도 시간은 정확하게 유지됩니다.