chrony
크로니
는 등을 이용해 시스템 시각을 동기화하는 프로그램 모음이다. 가 시계 조정을 수행하고 는 제어·관찰 인터페이스를 제공하므로 실행 와 조회 출력의 역할을 구분한다.
밑줄 용어에 마우스를 올리거나, 키보드로 선택하거나, 터치하면 설명을 볼 수 있습니다.
01무엇이고, 어떤 일을 하나
- 시간 원천에서 얻은 표본으로 시계 오차와 속도를 추정한다.
- 설정된 정책에 따라 시계를 점진 조정하거나 시각을 변경한다.
- ·sources 등으로 동기화 상태와 원천 선택을 보여 준다.
02어떤 순서로 동작하나
- 시간 원천 준비
서버·pool·참조 시계 등 구성된 원천의 접속 조건과 신뢰 범위를 준비한다.
- 표본 수집
교환으로 지연·offset 등의 자료를 모아 원천의 유효성과 품질을 평가한다.
- 시계 조정
선택된 원천과 추정치에 따라 또는 설정에 허용된 을 수행한다.
- 상태 관찰
의 ·sources에서 선택 원천과 오차·분산 등을 읽고 네트워크·서버·로컬 시계 문제를 구분한다.
03먼저 알아둘 용어와 구성요소
- 는 시간 소스의 측정값을 이용하여 시계를 관리하는 데몬이고, 는 상태를 조회하거나 관리하는 클라이언트다.
- 에 상태 조회와 제어 요청을 보내는 도구다. 조회 명령이 실행됐다는 사실과 실제 동기화 완료는 구별한다.
- 시계를 조금씩 빠르게 또는 느리게 보정하는 는 시간을 갑자기 뛰게 하는 과 다르다.
- 시계의 시각 값을 한 번에 앞으로 또는 뒤로 옮기는 보정이다. 처럼 속도를 점진적으로 조절하는 것과 다르며 로그 순서·시간에 민감한 앱에 영향을 줄 수 있다.
- 에서는 기준 소스와 최근 기준 시각, 시스템 시각 차이, 동기화 상태를 읽고 sources -v에서는 선택된 소스와 도달성을 읽는다.
- ^는 서버, *는 현재 선택된 소스, ?는 아직 선택할 수 없는 상태를 나타낼 수 있다.
시간 서버 설정과 클라이언트의 동기화 상태 대조하기
상위 시간원, 내부 제공 범위, 클라이언트의 stratum·offset·지연 지표를 연결해 시간 동기화의 상태를 읽는다.
실습 구성과 전제
- 서버·클라이언트 설정과 Cisco 장비 상태 화면을 비교한다. 정지 화면의 시각이 서로 같다는 가정은 하지 않는다.
- 서버와 클라이언트가 연결된 허용 실습망을 가정한다. 실제 시계를 변경하는 명령은 실행하지 않고 상태 조회로 해석한다.
상위 동기화와 내부 서비스 제공을 구분한다
- 첫 설정의 pool은 상위 시간원을 선택하고 iburst는 초기 측정 자료를 빠르게 얻도록 요청을 묶어 보낸다. allow는 지정한 네트워크에서 오는 클라이언트 요청을 허용하는 설정이다.
- makestep 1.0 3은 초기 세 번의 시계 갱신 동안 오차가 1초보다 크면 을 허용하는 조건이다. 3초마다 시계를 강제로 바꾸라는 뜻이 아니다.
원본 크기로 보기 ↗- pool 뒤 iburst가 붙고 driftfile, makestep 1.0 3, rtcsync 행이 보인다.
- 별도의 allow 대역 설정이 있어 상위 시간 동기화와 내부 제공 범위를 나누어 읽을 수 있다.
확인 기준allow만으로 네트워크 방화벽이나 서버의 상위 시간원이 정상이라고 결론내리지 않는다. 시계 은 예약 작업·로그 시각에 영향을 줄 수 있다.
클라이언트가 선택한 시간원을 확인한다
- 두 번째 설정은 pool 대신 특정 내부 서버를 server 지시어로 지정한다. 서버의 주소를 설정한 사실과 실제 응답을 받아 선택한 상태는 별개다.
- 클라이언트에서는 sources와 으로 현재 선택된 원천과 동기화 정보를 본다. 는 동작하는 데몬이고 는 그 상태를 조회·관리하는 클라이언트다.
bashchronyc sources -v chronyc tracking가 동작하는 클라이언트에서 시간원과 추정 상태를 조회한다.
원본 크기로 보기 ↗- 기존 pool 행이 주석 처리되어 있다.
- 내부 NTP 서버 하나를 server ... iburst로 지정한 행이 보인다.
확인 기준출력에서 선택된 원천 표시와 도달 상태를 확인한다. 설정 파일만으로 동기화 성공을 말하지 않는다.
동기화 표시와 시간 품질 지표를 함께 읽는다
- Cisco 화면은 clock is synchronized와 stratum 11을 표시한다. stratum은 기준 시계로부터의 시간 계층이며 IP 라우터 홉 수나 오차 밀리초 값이 아니다.
- offset 약 0.5635ms, root delay 약 23.93ms, root dispersion 약 3941.70ms를 구별한다. 작은 offset 하나만으로 절대 시각 정확도를 보장할 수 없고 상위 시간원의 품질과 불확실성도 함께 봐야 한다.
textshow clock show ntp status show ntp associations지원되는 계열 실습 장비의 상태 조회 명령이다.
원본 크기로 보기 ↗- show ntp status는 synchronized와 stratum 11 및 참조 서버를 표시한다.
- offset, root delay, root dispersion이 서로 다른 밀리초 값으로 나열되고 poll interval도 별도로 보인다.
확인 기준동기화됨은 현재 선택한 시간원과 동기화 관계가 있다는 상태다. 조직의 허용 오차나 믿을 수 있는 기준 시각을 만족하는지는 별도 기준으로 판단한다.
실습에서 확인한 동작 원리
- 상위 시간원 선택, 내부 제공 허용, 클라이언트의 실제 동기화는 별도 단계다.
- 동기화 상태·stratum·offset·delay·dispersion을 함께 읽어야 로그와 예약 작업의 시간 신뢰도를 설명할 수 있다.
04예제로 따라가기
- sources 출력에서 선택 원천과 후보·배제 상태가 다르면 접속 가능한 서버 목록과 실제 동기화에 쓰는 원천을 나누어 읽는다.
- 으로 벽시계가 뛰면 로그의 시각 순서와 예약 조건이 영향을 받을 수 있으므로 경과 시간 측정에는 단조 시계 관점을 구분한다.
- stratum 숫자 하나가 작다는 이유만으로 언제나 더 정확하거나 신뢰할 수 있는 원천이라고 단정하지 않는다.
05혼동하기 쉬운 점과 확인 기준
- 왕로 지연을 d1, 복로 지연을 d2, 실제 서버 시계 차이를 θ0라 하면 단순 추정 θ에는 (d1−d2)/2가 섞인다. 두 방향 지연이 같다는 가정이 깨지면 왕복 측정만으로 이를 모두 제거할 수 없다.
- 의 offset·frequency·root delay·root dispersion은 서로 다른 관찰값이다. stratum이 낮다는 이유만으로 네트워크 지연이나 시계 오차가 항상 더 작다고 판정하지 않는다.
- 가 실행 중인데도 소스가 선택되지 않으면 sources와 의 선택 상태·도달성·최근 측정 정보를 함께 읽는다. 예약 누락을 하나의 탓으로 결론내리기 전에 timer/의 실제 기동 기록도 대조한다.
06상세 노트 · 실습 자료
헤더 구조, 설정 예시, 수치 계산과 수업 캡처는 아래 노트에서 이어집니다.
공식 문서 · 표준
기초 개념과 동작 설명을 대조한 자료입니다. 제품 버전과 실제 설정에 따른 차이는 본문 및 원문에서 확인하세요.