13.2. Chrony 사용


다음 섹션에서는 chronyd 를 설치, 시작 및 중지하고 chrony 가 동기화되었는지 확인하는 방법에 대해 설명합니다. 섹션은 시스템 Clock을 수동으로 조정하는 방법도 설명합니다.

13.2.1. chrony 관리

다음 절차에서는 chronyd 의 상태를 설치, 시작, 중지 및 확인하는 방법을 설명합니다.

절차

  1. chrony 제품군은 기본적으로 Red Hat Enterprise Linux에 설치됩니다. 이 파일을 확인하려면 root 로 다음 명령을 실행하십시오.

    # dnf install chrony

    chrony 데몬의 기본 위치는 /usr/sbin/chronyd 입니다. 명령행 유틸리티는 /usr/bin/chronyc 에 설치됩니다.

  2. 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
  3. chronyd 를 시작하려면 root 로 다음 명령을 실행합니다.

    # systemctl start chronyd

    시스템을 시작할 때 chronyd 가 자동으로 시작되도록 하려면 root 로 다음 명령을 실행합니다.

    # systemctl enable chronyd
  4. chronyd 를 중지하려면 root 로 다음 명령을 실행합니다.

    # systemctl stop chronyd

    시스템 시작 시 chronyd 가 자동으로 시작되지 않도록 하려면 root 로 다음 명령을 실행합니다.

    # systemctl disable chronyd

13.2.2. chrony가 동기화되었는지 확인

다음 절차에서는 chronytracking,sourcessourcestats 명령을 사용하는 것과 동기화되었는지 확인하는 방법을 설명합니다.

절차

  1. 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
  2. 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 인수를 지정하여 자세한 정보를 출력할 수 있습니다. 이 경우 추가 주석 줄은 열의 의미를 상기시키는 것으로 표시됩니다.

  3. 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을 수동으로 조정하는 방법을 설명합니다.

절차

  1. 시스템 클럭을 즉시 단계적으로 조정하려면 슬래핑하여 진행 중인 조정을 바이패스하고 root 로 다음 명령을 실행합니다.

    # chronyc makestep

rtcfile 지시문을 사용하는 경우 실시간 클럭을 수동으로 조정할 수 없습니다. 임의의 조정으로 chrony의 실시간 클럭 드리프트가 발생하는 비율을 측정해야 합니다.

13.2.4. chrony 디스패치 스크립트 비활성화

chrony 디스패치 스크립트는 NTP 서버의 온라인 및 오프라인 상태를 관리합니다. 시스템 관리자는 디스패치 스크립트를 비활성화하여 chronyd 가 서버를 지속적으로 폴링하는 상태를 유지할 수 있습니다.

시스템에서 NetworkManager를 활성화하여 네트워킹 구성을 관리하는 경우 NetworkManager는 인터페이스 재구성, 중지 또는 시작 작업 중에 chrony 디스패처 스크립트를 실행합니다. 그러나 NetworkManager 이외의 특정 인터페이스 또는 경로를 구성하는 경우 다음과 같은 상황이 발생할 수 있습니다.

  1. NTP 서버에 대한 경로가 없는 경우 디스패치 스크립트가 실행되어 NTP 서버가 오프라인 상태로 전환될 수 있습니다.
  2. 나중에 경로를 설정하면 스크립트는 기본적으로 다시 실행되지 않으며 NTP 서버는 오프라인 상태로 유지됩니다.

chronyd 가 별도의 관리 인터페이스가 있는 NTP 서버와 동기화할 수 있도록 하려면 디스패치 스크립트를 비활성화합니다.

사전 요구 사항

  • 시스템에 NetworkManager를 설치하고 활성화합니다.
  • 루트 액세스

절차

  1. chrony 디스패치 스크립트를 비활성화하려면 /dev/null 에 대한 심볼릭 링크를 만듭니다.

    # ln -s /dev/null /etc/NetworkManager/dispatcher.d/20-chrony-onoffline
    참고

    이 변경 후 NetworkManager는 디스패치 스크립트를 실행할 수 없으며 NTP 서버는 항상 온라인 상태로 유지됩니다.

13.2.5. 격리된 네트워크에서 시스템의 chrony 설정

인터넷에 연결되지 않은 네트워크의 경우 하나의 컴퓨터가 기본 타이머로 선택됩니다. 다른 컴퓨터는 서버 또는 클라이언트의 직접 클라이언트입니다. 서버에서 드리프트 파일을 시스템 클럭의 평균 드리프트 비율로 수동으로 설정해야 합니다. 서버가 재부팅되면 주변 시스템에서 시간을 확보하고 평균을 계산하여 시스템 시계를 설정합니다. 그런 다음 드리프트 파일에 따라 조정을 다시 시작합니다. settime 명령을 사용하면 드리프트 파일이 자동으로 업데이트됩니다.

다음 절차에서는 격리된 네트워크에서 시스템의 chrony 를 설정하는 방법을 설명합니다.

절차

  1. 시스템에서 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) 매뉴얼 페이지를 참조하십시오.

  2. 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 파일은 localallow 지시문을 생략해야 한다는 점을 제외하고 동일해야 합니다.

격리된 네트워크에서 로컬 참조 모드를 활성화하는 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 지시문 또는 chronyccmdallow 명령을 사용하여 구성할 수 있습니다. 기본적으로 이 명령은 localhost(127.0.0.1 또는 ::1)에서만 사용할 수 있습니다.

다른 모든 명령은 Unix 도메인 소켓을 통해서만 허용됩니다. 네트워크를 통해 전송되면 chronyd 는 localhost에서 가져온 경우에도 Not authorized error로 응답합니다.

다음 절차에서는 chronyc 를 사용하여 chronyd에 원격으로 액세스하는 방법을 설명합니다.

절차

  1. /etc/chrony.conf 파일에 다음을 추가하여 IPv4 및 IPv6 주소 모두에서 액세스를 허용합니다.

    bindcmdaddress 0.0.0.0

    또는

    bindcmdaddress ::
  2. cmdallow 지시문을 사용하여 원격 IP 주소, 네트워크 또는 서브넷의 명령을 허용합니다.

    /etc/chrony.conf 파일에 다음 내용을 추가합니다.

    cmdallow 192.168.1.0/24
  3. 방화벽에서 포트 323을 열어 원격 시스템에서 연결합니다.

    # firewall-cmd --zone=public --add-port=323/udp

    선택적으로 --permanent 옵션을 사용하여 포트 323을 영구적으로 열 수 있습니다.

    # firewall-cmd --permanent --zone=public --add-port=323/udp
  4. 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. 추가 리소스

Red Hat logoGithubRedditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

© 2024 Red Hat, Inc.