13.2. Chrony 사용
다음 섹션에서는 chronyd
를 설치, 시작 및 중지하고 chrony
가 동기화되었는지 확인하는 방법에 대해 설명합니다. 섹션은 시스템 Clock을 수동으로 조정하는 방법도 설명합니다.
13.2.1. chrony 관리
다음 절차에서는 chronyd
의 상태를 설치, 시작, 중지 및 확인하는 방법을 설명합니다.
절차
chrony 제품군은 기본적으로 Red Hat Enterprise Linux에 설치됩니다. 이 파일을 확인하려면
root
로 다음 명령을 실행하십시오.# dnf 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
13.2.2. chrony가 동기화되었는지 확인
다음 절차에서는 chrony 가 tracking
,sources
및 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)
도움말 페이지
13.2.3. 시스템 시계 수동 조정
다음 절차에서는 시스템 Clock을 수동으로 조정하는 방법을 설명합니다.
절차
시스템 클럭을 즉시 단계적으로 조정하려면 슬래핑하여 진행 중인 조정을 바이패스하고
root
로 다음 명령을 실행합니다.# chronyc makestep
rtcfile
지시문을 사용하는 경우 실시간 클럭을 수동으로 조정할 수 없습니다. 임의의 조정으로 chrony의 실시간 클럭 드리프트가 발생하는 비율을 측정해야 합니다.
13.2.4. chrony 디스패치 스크립트 비활성화
chrony
디스패치 스크립트는 NTP 서버의 온라인 및 오프라인 상태를 관리합니다. 시스템 관리자는 디스패치 스크립트를 비활성화하여 chronyd
가 서버를 지속적으로 폴링하는 상태를 유지할 수 있습니다.
시스템에서 NetworkManager를 활성화하여 네트워킹 구성을 관리하는 경우 NetworkManager는 인터페이스 재구성, 중지 또는 시작 작업 중에 chrony
디스패처 스크립트를 실행합니다. 그러나 NetworkManager 이외의 특정 인터페이스 또는 경로를 구성하는 경우 다음과 같은 상황이 발생할 수 있습니다.
- NTP 서버에 대한 경로가 없는 경우 디스패치 스크립트가 실행되어 NTP 서버가 오프라인 상태로 전환될 수 있습니다.
- 나중에 경로를 설정하면 스크립트는 기본적으로 다시 실행되지 않으며 NTP 서버는 오프라인 상태로 유지됩니다.
chronyd
가 별도의 관리 인터페이스가 있는 NTP 서버와 동기화할 수 있도록 하려면 디스패치 스크립트를 비활성화합니다.
사전 요구 사항
- 시스템에 NetworkManager를 설치하고 활성화합니다.
- 루트 액세스
절차
chrony
디스패치 스크립트를 비활성화하려면/dev/null
에 대한 심볼릭 링크를 만듭니다.# ln -s /dev/null /etc/NetworkManager/dispatcher.d/20-chrony-onoffline
참고이 변경 후 NetworkManager는 디스패치 스크립트를 실행할 수 없으며 NTP 서버는 항상 온라인 상태로 유지됩니다.
13.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
지시문을 생략해야 한다는 점을 제외하고 동일해야 합니다.
격리된 네트워크에서 로컬 참조 모드를 활성화하는 local
지시문을 사용하면 로컬 참조 모드를 활성화하여 NTP
서버로 작동하는 chronyd
가 동기화되지 않았거나 시계의 마지막 업데이트가 오래 전에 발생했습니다.
네트워크에 있는 여러 서버가 동일한 로컬 구성을 사용하고 두 서버를 폴링하는 클라이언트의 혼동 없이 서로 동기화되도록 하려면 고립 모드를 활성화하는 로컬
지시문의 분리 옵션을 사용합니다. 다른 모든 서버를 로컬로 폴링하도록 각 서버를 구성해야 합니다.
이렇게 하면 참조 ID가 가장 작은 서버만 로컬 참조가 활성 상태이고 다른 서버가 동기화됩니다. 서버가 실패하면 다른 서버가 대신합니다.
13.2.6. 원격 모니터링 액세스 구성
Chronyc 는 다음 두 가지 방법으로 chronyd
에 액세스할 수 있습니다.
- 인터넷 프로토콜, IPv4 또는 IPv6.
-
UNIX 도메인 소켓 -
루트
또는chrony
사용자가 로컬로 액세스할 수 있습니다.
기본적으로 chronyc 는 Unix 도메인 소켓에 연결됩니다. 기본 경로는 /var/run/chrony/chronyd.sock
입니다. 이 연결에 실패하면 예를 들어 chronyc 가 루트가 아닌 사용자에서 실행되는 경우 chronyc 는 127.0.0.1에 연결을 시도한 다음 ::1을 시도합니다.
chronyd
의 동작에 영향을 미치지 않는 다음 모니터링 명령만 네트워크에서 허용됩니다.
- activity
- 수동 목록
- rtcdata
- smoothing
- 소스
- sourcestats
- tracking
- waitsync
chronyd
가 이러한 명령을 허용하는 호스트 세트는 chronyd
의 설정 파일에서 cmdallow
지시문 또는 chronyc 의 cmdallow
명령을 사용하여 구성할 수 있습니다. 기본적으로 이 명령은 localhost(127.0.0.1 또는 ::1)에서만 사용할 수 있습니다.
다른 모든 명령은 Unix 도메인 소켓을 통해서만 허용됩니다. 네트워크를 통해 전송되면 chronyd
는 localhost에서 가져온 경우에도 Not authorized
error로 응답합니다.
다음 절차에서는 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)
도움말 페이지
13.2.7. RHEL 시스템 역할을 사용하여 시간 동기화 관리
timesync
역할을 사용하여 여러 대상 시스템에서 시간 동기화를 관리할 수 있습니다. timesync
역할은 시스템 클럭을 동기화하도록 NTP 또는 PTP 클라이언트로 작동하도록 NTP 또는 PTP 구현을 설치하고 구성합니다.
timesync
역할은 관리 호스트에서 지정된 또는 감지된 공급자 서비스의 구성을 대체합니다. 이전 설정은 역할 변수에 지정되지 않은 경우에도 손실됩니다. timesync_ntp_provider
변수가 정의되지 않은 경우 유일한 보존 설정은 공급자를 선택하는 것입니다.
다음 예제에서는 서버 풀 하나만 있는 상황에서 timesync
역할을 적용하는 방법을 보여줍니다.
예 13.1. 예제 Playbook은 단일 서버 풀에 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
파일을 참조하십시오.
13.2.8. 추가 리소스
-
시스템의
chronyc(1)
및chronyd(8)
도움말 페이지 - 자주하는 질문