15.2. Chrony 사용
다음 섹션에서는 chronyd
를 설치, 시작 및 중지하는 방법과 chrony
가 동기화되었는지 확인하는 방법을 설명합니다. 섹션에서는 시스템 클락을 수동으로 조정하는 방법도 설명합니다.
15.2.1. Chrony 관리
다음 절차에서는 chronyd
의 설치, 시작, 중지 및 상태를 확인하는 방법을 설명합니다.
절차
chrony 제품군은 기본적으로 Red Hat Enterprise Linux에 설치됩니다. 이를 확인하려면
root
로 다음 명령을 실행하십시오.# yum install chrony
chrony 데몬의 기본 위치는
/usr/sbin/chronyd
입니다. 명령행 유틸리티는/usr/bin/chronyc
에 설치됩니다.chronyd
의 상태를 확인하려면 다음 명령을 실행합니다.$ systemctl status chronyd chronyd.service - NTP client/server Loaded: loaded (/usr/lib/systemd/system/chronyd.service; enabled) Active: active (running) since Wed 2013-06-12 22:23:16 CEST; 11h ago
chronyd
를 시작하려면root
로 다음 명령을 실행합니다.# systemctl start chronyd
시스템 시작 시
chronyd
가 자동으로 시작되도록 하려면root
로 다음 명령을 실행하십시오.# systemctl enable chronyd
chronyd
를 중지하려면root
로 다음 명령을 실행하십시오.# systemctl stop chronyd
시스템 시작 시
chronyd
가 자동으로 시작되지 않도록 하려면root
로 다음 명령을 실행하십시오.# systemctl disable chronyd
15.2.2. chrony가 동기화되었는지 확인
다음 절차에서는 chrony 가 추적
, 소스
명령을 사용하여 동기화되었는지 확인하는 방법을 설명합니다.
및
sourcestats
절차
Chrony 추적 을 확인하려면 다음 명령을 실행합니다.
$ chronyc tracking Reference ID : CB00710F (ntp-server.example.net) Stratum : 3 Ref time (UTC) : Fri Jan 27 09:49:17 2017 System time : 0.000006523 seconds slow of NTP time Last offset : -0.000006747 seconds RMS offset : 0.000035822 seconds Frequency : 3.225 ppm slow Residual freq : 0.000 ppm Skew : 0.129 ppm Root delay : 0.013639022 seconds Root dispersion : 0.001100737 seconds Update interval : 64.2 seconds Leap status : Normal
source 명령은
chronyd
가 액세스 중인 현재 시간 소스에 대한 정보를 표시합니다. chrony 소스를 확인하려면 다음 명령을 실행합니다.$ chronyc sources 210 Number of sources = 3 MS Name/IP address Stratum Poll Reach LastRx Last sample =============================================================================== #* GPS0 0 4 377 11 -479ns[ -621ns] /- 134ns ^? a.b.c 2 6 377 23 -923us[ -924us] +/- 43ms ^ d.e.f 1 6 377 21 -2629us[-2619us] +/- 86ms
선택 사항
-v
인수를 지정하여 자세한 정보를 출력할 수 있습니다. 이 경우 열의 의미를 알리는 추가 캡션 행이 표시됩니다.sourcestats
명령은chronyd
에서 현재 검사하는 각 소스에 대한 드리프트 속도 및 오프셋 추정 프로세스에 대한 정보를 표시합니다. chrony 소스 통계를 확인하려면 다음 명령을 실행합니다.$ chronyc sourcestats 210 Number of sources = 1 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev =============================================================================== abc.def.ghi 11 5 46m -0.001 0.045 1us 25us
자세한 정보를 포함하여 선택적 인수
-v
를 지정할 수 있습니다. 이 경우 열의 의미를 알리는 추가 캡션 행이 표시됩니다.
추가 리소스
-
시스템의
chronyc(1)
도움말 페이지
15.2.3. 시스템 시계 수동 조정
다음 절차에서는 시스템 클락을 수동으로 조정하는 방법을 설명합니다.
절차
시스템 시계를 즉시 전환하려면 줄 바꿈으로 진행 중인 조정을 무시하고
root
로 다음 명령을 실행합니다.# chronyc makestep
rtcfile
지시문을 사용하는 경우 실시간 클록을 수동으로 조정해서는 안 됩니다. 임의 조정으로 인해실시간 클록 드리프트의 속도를 측정해야 하는 Chrony의 필요성에 방해가 됩니다.
15.2.4. chrony 디스패치 스크립트 비활성화
chrony
디스패치 스크립트는 NTP 서버의 온라인 및 오프라인 상태를 관리합니다. 시스템 관리자는 디스패치 스크립트를 비활성화하여 chronyd
가 서버를 지속적으로 폴링하는 상태를 유지할 수 있습니다.
시스템에서 NetworkManager를 활성화하여 네트워킹 구성을 관리하는 경우 NetworkManager는 인터페이스 재구성, 중지 또는 시작 작업 중에 chrony
디스패처 스크립트를 실행합니다. 그러나 NetworkManager 이외의 특정 인터페이스 또는 경로를 구성하는 경우 다음과 같은 상황이 발생할 수 있습니다.
- NTP 서버에 대한 경로가 없는 경우 디스패치 스크립트가 실행되어 NTP 서버가 오프라인 상태로 전환될 수 있습니다.
- 나중에 경로를 설정하면 스크립트는 기본적으로 다시 실행되지 않으며 NTP 서버는 오프라인 상태로 유지됩니다.
chronyd
가 별도의 관리 인터페이스가 있는 NTP 서버와 동기화할 수 있도록 하려면 디스패치 스크립트를 비활성화합니다.
사전 요구 사항
- 시스템에 NetworkManager를 설치하고 활성화합니다.
- 루트 액세스
절차
chrony
디스패치 스크립트를 비활성화하려면 다음과 같이/etc/NetworkManager/dispatcher.d/20-chrony-
online 파일을 편집합니다.#!/bin/sh exit 0
참고chrony
패키지를 업그레이드하거나 다시 설치할 때 패키지된 디스패치 스크립트가 수정된 디스패치 스크립트가 교체됩니다.
15.2.5. 격리된 네트워크에서 시스템의 chrony 설정
인터넷에 연결되지 않은 네트워크의 경우 하나의 컴퓨터가 기본 타이머로 선택됩니다. 다른 컴퓨터는 서버 또는 클라이언트의 직접 클라이언트입니다. 서버에서 드리프트 파일을 시스템 클럭의 평균 드리프트 비율로 수동으로 설정해야 합니다. 서버가 재부팅되면 주변 시스템에서 시간을 확보하고 평균을 계산하여 시스템 시계를 설정합니다. 그 후 드리프트 파일을 기반으로 조정 적용을 재개합니다. settime
명령을 사용하면 드리프트 파일이 자동으로 업데이트됩니다.
다음 절차에서는 격리된 네트워크에서 시스템의 chrony 를 설정하는 방법을 설명합니다.
절차
시스템에서
root
로 실행되는 텍스트 편집기를 사용하여/etc/chrony.conf
를 다음과 같이 편집합니다.driftfile /var/lib/chrony/drift commandkey 1 keyfile /etc/chrony.keys initstepslew 10 client1 client3 client6 local stratum 8 manual allow 192.0.2.0/24
여기서
192.0.2.0/24
는 클라이언트가 연결할 수 있는 네트워크 또는 서브넷 주소입니다. 자세한 내용은 시스템의chrony.conf(7)
매뉴얼 페이지를 참조하십시오.root
로 실행되는 텍스트 편집기를 사용하여 서버의 직접 클라이언트가 되도록 선택된 시스템에서 다음과 같이/etc/chrony.conf
를 편집합니다.server ntp1.example.net driftfile /var/lib/chrony/drift logdir /var/log/chrony log measurements statistics tracking keyfile /etc/chrony.keys commandkey 24 local stratum 10 initstepslew 20 ntp1.example.net allow 192.0.2.123
여기서
192.0.2.123
은 서버의 주소이며ntp1.example.net
은 서버의 호스트 이름입니다. 이 구성을 사용하는 클라이언트는 재시작 시 서버와 다시 동기화됩니다.
서버의 직접 클라이언트가 아니어야 하는 클라이언트 시스템에서 /etc/chrony.conf
파일은 local
및 allow
지시문을 생략해야 한다는 점을 제외하고 동일해야 합니다.
격리된 네트워크에서 로컬 참조 모드를 활성화하는 로컬
지시문을 사용할 수도 있습니다. 이를 통해 chronyd
가 NTP
서버로 작동하면 동기화되지 않았거나 클록의 마지막 업데이트가 오래 전에 발생한 경우에도 chronyd가 실시간으로 동기화될 수 있습니다.
네트워크에 있는 여러 서버가 동일한 로컬 구성을 사용하도록 허용하고 둘 이상의 서버를 폴링하는 클라이언트를 혼동하지 않고 서로 동기화할 수 있도록 하려면 로컬
지시문의 고립 옵션을
사용하여 고립 모드를 활성화합니다. 각 서버는 로컬로 다른 모든 서버를 폴링하도록 구성해야 합니다 .
이렇게 하면 최소 참조 ID가 있는 서버만 로컬 참조가 활성 상태이며 다른 서버가 동기화됩니다. 서버가 실패하면 다른 서버가 인계됩니다.
15.2.6. 원격 모니터링 액세스 구성
Chronyc 는 다음 두 가지 방법으로 chronyd
에 액세스할 수 있습니다.
- 인터넷 프로토콜, IPv4 또는 IPv6.
-
Unix 도메인 소켓 -
root
또는chrony
사용자가 로컬로 액세스할 수 있습니다.
기본적으로 chronyc 는 Unix 도메인 소켓에 연결됩니다. 기본 경로는 /var/run/chrony/chronyd.sock
입니다. 이 연결이 실패하고 예를 들어 루트가 아닌 사용자가 chronyc 를 실행 중인 경우 chronyc 는 127.0.0.1에 연결을 시도한 다음 ::1에 연결을 시도합니다.
네트워크에서 chronyd
동작에 영향을 미치지 않는 다음 모니터링 명령만 허용합니다.
- 활동
- 수동 목록
- rtcdata
- 완화 중
- 소스
- Sourcestats
- 추적
- waitsync
chronyd가 이러한 명령을 허용하는 호스트 집합은 chronyd
의 구성 파일에서 cmdallow
지시문 또는
chronyc 의 cmdallow
명령으로 구성할 수 있습니다. 기본적으로 명령은 localhost(127.0.0.1 또는 ::1)에서만 허용됩니다.
기타 모든 명령은 Unix 도메인 소켓을 통해서만 허용됩니다. 네트워크를 통해 보내면 chronyd
는 localhost에서 온 경우에도 Not authorized 오류로
응답합니다.
다음 절차에서는 chronyc 를 사용하여 원격으로 chronyd에 액세스하는 방법을 설명합니다.
절차
다음을
/etc/chrony.conf 파일에 추가하여 IPv4 및 IPv6 주소 모두에서 액세스를 허용합니다.
bindcmdaddress 0.0.0.0
또는
bindcmdaddress ::
cmdallow
지시문을 사용하여 원격 IP 주소, 네트워크 또는 서브넷의 명령을 허용합니다./etc/chrony.conf 파일에 다음 내용을 추가합니다.
cmdallow 192.168.1.0/24
방화벽에서 포트 323을 열어 원격 시스템에서 연결합니다.
# firewall-cmd --zone=public --add-port=323/udp
선택적으로
--permanent
옵션을 사용하여 포트 323을 영구적으로 열 수 있습니다.# firewall-cmd --permanent --zone=public --add-port=323/udp
323 포트를 영구적으로 여는 경우 방화벽 구성을 다시 로드합니다.
# firewall-cmd --reload
추가 리소스
-
시스템의
chrony.conf(5)
도움말 페이지
15.2.7. RHEL 시스템 역할을 사용하여 시간 동기화 관리
time sync 역할을 사용하여 여러 대상 시스템에서 시간
동기화를 관리할 수 있습니다. timesync
역할은 시스템 클럭을 동기화하도록 NTP 또는 PTP 클라이언트로 작동하도록 NTP 또는 PTP 구현을 설치하고 구성합니다.
또한 timesync
역할을 사용하면 ntp 또는 chrony를 사용하여 NTP 프로토콜을 구현하는지 여부에 관계없이 RHEL 6에서 시작하는 모든 Red Hat Enterprise Linux 버전에서 동일한 플레이북을 사용할 수 있기 때문에 쉽게 chrony 로 마이그레이션 할 수 있습니다.
timesync
역할은 관리 호스트에서 제공된 또는 탐지된 공급자 서비스의 구성을 대체합니다. 이전 설정은 역할 변수에 지정되지 않았더라도 손실됩니다. timesync_ntp_provider
변수가 정의되지 않은 경우 유일한 보존 설정은 프로바이더 선택 사항입니다.
다음 예제에서는 하나의 서버 풀만 있는 상황에서 timesync
역할을 적용하는 방법을 보여줍니다.
예 15.1. 단일 서버 풀에 대한 timesync 역할을 적용하는 예제 플레이북
--- - hosts: timesync-test vars: timesync_ntp_servers: - hostname: 2.rhel.pool.ntp.org pool: yes iburst: yes roles: - rhel-system-roles.timesync
timesync
역할 변수에 대한 자세한 참조는 rhel-system-roles
패키지를 설치하고 /usr/share/doc/rhel-system-roles/timesync
디렉터리의
파일을 참조하십시오.
README.md
또는 README.html
15.2.8. 추가 리소스
-
시스템의
chronyc(1)
및chronyd(8)
도움말 페이지 - 자주하는 질문