Documentation for a newer release is available. View Latest

Mengonfigurasi NTP Memakai Keluarga chrony

Menjaga waktu yang akurat penting karena sejumlah alasan dalam TI. Dalam jaringan misalnya, stempel waktu yang akurat dalam paket dan log diperlukan. Dalam sistem Linux, protokol NTP diimplementasikan oleh daemon yang berjalan di ruang pengguna.

Daemon ruang pengguna memperbarui jam sistem yang berjalan di kernel. Jam sistem dapat menjaga waktu dengan menggunakan berbagai sumber jam. Biasanya, Time Stamp Counter (TSC) digunakan. TSC adalah register CPU yang menghitung cacah siklus sejak terakhir kali di-reset. Ini sangat cepat, memiliki resolusi tinggi, dan tidak ada interupsi.

Ada pilihan antara daemon ntpd dan chronyd, yang masing-masing tersedia dari repositori di paket ntp dan chrony. Bagian ini menjelaskan penggunaan rangkaian utilitas chrony untuk memperbarui jam sistem pada sistem yang tidak sesuai dengan kategori server khusus, selalu hidup, dan dengan jaringan permanen konvensional.

Pengantar Keluarga chrony

Chrony terdiri dari chronyd, daemon yang berjalan di ruang pengguna, dan chronyc, program baris perintah untuk membuat penyesuaian pada chronyd. Sistem yang tidak terhubung secara permanen, atau tidak dinyalakan secara permanen, membutuhkan waktu yang relatif lama untuk menyesuaikan jam sistem mereka dengan ntpd. Ini karena banyak koreksi kecil dilakukan berdasarkan pengamatan drift dan ofset jam. Perubahan suhu, yang mungkin signifikan saat menyalakan sistem, memengaruhi stabilitas jam perangkat keras. Meskipun penyesuaian dimulai dalam beberapa milidetik setelah mem-boot sistem, akurasi yang dapat diterima dapat memakan waktu mulai dari sepuluh detik dari restart hangat hingga beberapa jam tergantung pada kebutuhan Anda, lingkungan operasi, dan perangkat keras. chrony adalah implementasi protokol NTP yang berbeda dari ntpd, dapat menyesuaikan jam sistem dengan lebih cepat.

Perbedaan Antara ntpd dan chronyd

Salah satu perbedaan utama antara ntpd dan chronyd adalah pada algoritma yang digunakan untuk mengontrol jam komputer. Hal-hal yang dapat dilakukan chronyd lebih baik daripada ntpd adalah:

  • chronyd dapat bekerja dengan baik ketika referensi waktu eksternal hanya dapat diakses sebentar-sebentar, sedangkan ntpd membutuhkan poll referensi waktu secara teratur agar berfungsi dengan baik.

  • chronyd dapat bekerja dengan baik bahkan ketika jaringan padat untuk jangka waktu yang lebih lama.

  • chronyd biasanya dapat menyinkronkan jam lebih cepat dan dengan akurasi waktu yang lebih baik.

  • chronyd dengan cepat beradaptasi dengan perubahan mendadak dalam laju jam, misalnya, karena perubahan suhu osilator kristal, sedangkan ntpd mungkin perlu waktu lama untuk menetap kembali.

  • Dalam konfigurasi baku, chronyd tidak pernah melompatkan waktu setelah jam disinkronkan pada saat sistem dimulai, agar tidak mengganggu program lain yang sedang berjalan. ntpd dapat dikonfigurasi untuk tidak pernah melompatkan waktu juga, tetapi harus menggunakan cara yang berbeda untuk menyesuaikan jam, yang memiliki beberapa kelemahan.

  • chronyd dapat menyesuaikan laju jam pada sistem Linux dalam kisaran yang lebih besar, yang memungkinkannya beroperasi bahkan pada mesin dengan jam yang rusak atau tidak stabil. Misalnya, pada beberapa mesin virtual.

Hal-hal yang dapat dilakukan chronyd yang tidak dapat dilakukan ntpd:

  • chronyd menyediakan dukungan untuk jaringan terisolasi di mana satu-satunya metode koreksi waktu adalah entri manual. Misalnya, oleh administrator yang melihat jam. chronyd dapat memeriksa kesalahan yang diperbaiki pada pembaruan yang berbeda untuk memperkirakan tingkat di mana jam komputer maju atau mundur, dan menggunakan perkiraan ini untuk memangkas jam komputer selanjutnya.

  • chronyd memberikan dukungan untuk mengetahui tingkat maju atau mundurnya jam real-time, jam perangkat keras, yang mempertahankan waktu ketika komputer dimatikan. Itu dapat menggunakan data ini ketika sistem melakukan boot untuk mengatur waktu sistem menggunakan nilai waktu yang disesuaikan dari jam real-time. Ini, pada saat penulisan, hanya tersedia di Linux.

Hal-hal yang dapat dilakukan ntpd yang tidak dapat dilakukan oleh chronyd:

  • ntpd sepenuhnya mendukung NTP versi 4 (RFC 5905), termasuk klien dan server broadcast, multicast, manycast, dan mode orphan. Ini juga mendukung skema otentikasi tambahan berdasarkan kriptografi kunci publik (RFC 5906). chronyd menggunakan NTP versi 3 (RFC 1305), yang kompatibel dengan versi 4.

  • ntpd mencakup driver untuk banyak jam referensi sedangkan chronyd bergantung pada program lain, misalnya gpsd, untuk mengakses data dari jam referensi.

Memilih Antara Daemon NTP

  • Chrony mesti dipertimbangkan untuk semua sistem yang sering disuspensi atau terputus dan terhubung kembali ke jaringan. Sistem seluler dan virtual misalnya.

  • Daemon NTP (ntpd) mesti dipertimbangkan untuk sistem yang biasanya tetap aktif secara permanen. Sistem yang diperlukan untuk menggunakan IP broadcast atau multicast, atau untuk melakukan otentikasi paket dengan protokol Autokey, mesti mempertimbangkan untuk menggunakan ntpd. Chrony hanya mendukung autentikasi kunci simetris menggunakan message authentication code (MAC) dengan fungsi MD5, SHA1, atau hash yang lebih kuat, sedangkan ntpd juga mendukung protokol autentikasi Autokey yang dapat menggunakan sistem PKI. Autokey dijelaskan dalam RFC 5906.

Memahami chrony dan Konfigurasinya

Memahami chronyd

Daemon chrony, chronyd, yang berjalan di ruang pengguna, membuat penyesuaian pada jam sistem yang berjalan di kernel. Ini dilakukan dengan berkonsultasi dengan sumber waktu eksternal, menggunakan protokol NTP, ketika akses jaringan memungkinkannya untuk melakukannya. Ketika referensi eksternal tidak tersedia, chronyd akan menggunakan drift terhitung terakhir yang disimpan dalam berkas drift. Ini juga dapat diperintahkan secara manual untuk melakukan koreksi, dengan chronyc.

Memahami chronyc

Daemon chrony, chronyd, dapat dikontrol oleh utilitas baris perintah chronyc. Utilitas ini menyediakan prompt perintah yang memungkinkan memasukkan sejumlah perintah untuk membuat perubahan pada chronyd. Konfigurasi baku adalah agar chronyd hanya menerima perintah dari instansi lokal chronyc, tetapi chronyc dapat digunakan untuk mengubah konfigurasi sehingga chronyd akan memungkinkan kontrol eksternal. chronyc dapat dijalankan dari jarak jauh setelah terlebih dahulu mengonfigurasi chronyd untuk menerima koneksi jarak jauh. Alamat IP yang diizinkan untuk terhubung ke chronyd harus dikontrol dengan ketat.

Memahami Perintah Konfigurasi chrony

Berkas konfigurasi baku untuk chronyd adalah /etc/chrony.conf. Opsi -f dapat digunakan untuk menentukan path berkas konfigurasi alternatif. Lihat halaman manual chronyd untuk opsi lebih lanjut. Untuk daftar lengkap direktif yang dapat digunakan, lihat https://chrony.tuxfamily.org/manual.html#Configuration-file. Di bawah ini adalah pilihan opsi konfigurasi:

Komentar

Komentar harus didahului oleh #, %, ;, atau !

allow

Secara opsional tentukan host, subnet, atau jaringan untuk memungkinkan koneksi NTP ke mesin yang bertindak sebagai server NTP. Bakunya adalah tidak mengizinkan koneksi. Contoh:

  1. [subs="quotes"]

allow server1.example.com

Gunakan bentuk ini untuk menentukan host tertentu, dengan nama host-nya, agar diizinkan mengakses.

  1. [subs="quotes"]

allow 192.0.2.0/24

Gunakan bentuk ini untuk menentukan jaringan tertentu yang akan diizinkan aksesnya.

  1. [subs="quotes"]

allow 2001:db8::/32

Gunakan bentuk ini untuk menentukan alamat IPv6 yang akan diizinkan akses.

cmdallow

Ini mirip dengan direktif allow (lihat bagian allow), kecuali bahwa ini memungkinkan akses kontrol (bukan akses klien NTP) ke subnet atau host tertentu. (Dengan "akses kontrol" berarti bahwa chronyc dapat dijalankan pada host tersebut dan berhasil terhubung ke chronyd di komputer ini.) Sintaksnya identik. Ada juga direktif cmddeny all dengan perilaku yang mirip dengan direktif cmdallow all.

dumpdir

Path ke direktori untuk menyimpan riwayat pengukuran antar restart chronyd (dengan asumsi tidak ada perubahan yang dilakukan pada perilaku jam sistem saat tidak berjalan). Jika kemampuan ini akan digunakan (melalui perintah dumponexit dalam berkas konfigurasi, atau perintah dump di chronyc), perintah dumpdir harus digunakan untuk menentukan direktori tempat riwayat pengukuran disimpan.

dumponexit

Jika perintah ini ada, ini menunjukkan bahwa chronyd harus menyimpan riwayat pengukuran untuk setiap sumber waktunya yang direkam setiap kali program keluar. (Lihat perintah dumpdir di atas).

local

Kata kunci local digunakan untuk memungkinkan chronyd tampak disinkronkan secara real time dari sudut pandang klien yang mem-poll-nya, bahkan jika tidak memiliki sumber sinkronisasi saat ini. Opsi ini biasanya digunakan pada komputer "master" dalam jaringan yang terisolasi, dimana beberapa komputer perlu untuk menyinkronkan satu sama lain, dan "master" tetap sejalan dengan real time dengan masukan manual.

Contoh perintahnya adalah:

local stratum 10

Nilai besar 10 menunjukkan bahwa jam begitu banyak melompat menjauh dari jam referensi sehingga waktunya tidak dapat diandalkan. Jika komputer pernah memiliki akses ke komputer lain yang pada akhirnya disinkronkan ke jam referensi, hampir pasti akan berada pada strata kurang dari 10. Oleh karena itu, pilihan nilai tinggi seperti 10 untuk perintah lokal mencegah waktu mesin sendiri dibingungkan dengan waktu nyata, bilamana pernah bocor ke klien yang memiliki visibilitas atas server nyata.

log

Perintah log menunjukkan bahwa informasi tertentu harus dicatat. Ini menerima opsi berikut:

measurements

Opsi ini mencatat pengukuran NTP mentah dan informasi terkait ke berkas yang disebut measurements.log.

statistics

Opsi ini mencatat informasi tentang pemrosesan regresi ke berkas yang disebut statistics.log.

tracking

Opsi ini mencatat perubahan pada perkiraan laju maju atau mundurnya waktu sistem, dan setiap slew yang dibuat, ke berkas yang disebut tracking.log.

rtc

Opsi ini mencatat informasi tentang jam real-time sistem.

refclocks

Opsi ini mencatat pengukuran jam referensi mentah dan terfilter ke berkas yang disebut refclocks.log.

tempcomp

Opsi ini mencatat pengukuran suhu dan kompensasi laju sistem ke berkas bernama tempcomp.log.

Berkas log ditulis ke direktori yang ditentukan oleh perintah logdir.

Contoh perintahnya adalah:

pelacakan statistik pengukuran log
logdir

Direktif ini memungkinkan direktori tempat berkas log ditulis untuk ditentukan.

Contoh penggunaan direktif ini adalah:

logdir /var/log/chrony
makestep

Biasanya chronyd akan menyebabkan sistem secara bertahap memperbaiki setiap ofset waktu, dengan memperlambat atau mempercepat jam sesuai kebutuhan. Dalam situasi tertentu, jam sistem mungkin sangat jauh sehingga proses slew ini akan memakan waktu yang sangat lama untuk memperbaiki jam sistem. Direktif ini memaksa chronyd untuk melangkahkan jam sistem jika penyesuaian lebih besar dari nilai ambang batas, tetapi hanya jika tidak ada lagi pembaruan jam sejak chronyd dimulai dari batas yang ditentukan (nilai negatif dapat digunakan untuk menonaktifkan batas). Ini sangat berguna saat menggunakan jam referensi, karena direktif initstepslew hanya berfungsi dengan sumber NTP.

Contoh penggunaan direktif ini adalah:

makestep 1000 10

Ini akan melangkahkan jam sistem jika penyesuaian lebih besar dari 1000 detik, tetapi hanya dalam sepuluh pembaruan jam pertama.

maxchange

Direktif ini menetapkan ofset maksimum yang diizinkan yang dikoreksi pada pembaruan jam. Pemeriksaan dilakukan hanya setelah sejumlah pembaruan yang ditentukan untuk memungkinkan penyesuaian awal yang besar dari jam sistem. Ketika ofset yang lebih besar dari maksimum yang ditentukan terjadi, itu akan diabaikan untuk sejumlah waktu yang ditentukan dan kemudian chronyd akan menyerah dan keluar (nilai negatif dapat digunakan untuk tidak pernah keluar). Dalam kedua kasus, pesan dikirim ke syslog.

Contoh penggunaan direktif ini adalah:

maxchange 1000 1 2

Setelah pembaruan jam pertama, chronyd akan memeriksa ofset pada setiap pembaruan jam, itu akan mengabaikan dua penyesuaian yang lebih besar dari 1000 detik dan keluar pada yang lain.

maxupdateskew

Salah satu tugas chronyd adalah mencari tahu seberapa cepat atau lambat jam komputer berjalan relatif terhadap sumber referensinya. Selain itu, ini menghitung perkiraan batas kesalahan di sekitar nilai perkiraan.

Jika rentang kesalahan terlalu besar, ini menunjukkan bahwa pengukuran belum diselesaikan, dan bahwa perkiraan laju maju atau mundur tidak terlalu dapat diandalkan.

Parameter maxupdateskew adalah ambang batas untuk menentukan apakah perkiraan terlalu tidak dapat diandalkan untuk digunakan. Secara baku, ambang batasnya adalah 1000 ppm.

Format sintaksnya adalah:

maxupdateskew skew-in-ppm

Nilai umum untuk skew-in-ppm mungkin 100 untuk koneksi dial-up ke server melalui saluran telepon, dan 5 atau 10 untuk komputer di LAN.

Perlu dicatat bahwa ini bukan satu-satunya cara perlindungan terhadap penggunaan perkiraan yang tidak dapat diandalkan. Setiap saat, chronyd melacak perkiraan laju maju atau mundurnya waktu, dan kesalahan yang terikat pada perkiraan. Ketika perkiraan baru dihasilkan setelah pengukuran lain dari salah satu sumber, algoritma kombinasi terbobot digunakan untuk memperbarui perkiraan master. Jadi jika chronyd memiliki perkiraan master yang sangat andal dan perkiraan baru dihasilkan yang memiliki batas kesalahan besar, perkiraan master yang ada akan mendominasi dalam perkiraan master baru.

noclientlog

Direktif ini, yang tidak mengambil argumen, menentukan bahwa akses klien tidak akan dicatat. Biasanya mereka dicatat, memungkinkan statistik untuk dilaporkan menggunakan perintah klien di chronyc.

reselectdist

Ketika chronyd memilih sumber sinkronisasi dari sumber yang tersedia, ia akan lebih memilih sumber dengan jarak sinkronisasi minimum. Namun, untuk menghindari seringnya memilih kembali ketika ada sumber dengan jarak yang sama, suatu jarak tetap ditambahkan ke jarak untuk sumber yang saat ini tidak dipilih. Ini dapat diatur dengan opsi reselectdist. Secara baku, jaraknya adalah 100 mikro detik.

Format sintaksnya adalah:

reselectdist dist-in-seconds
stratumweight

Direktif stratumweight menetapkan berapa banyak jarak yang harus ditambahkan per stratum ke jarak sinkronisasi ketika chronyd memilih sumber sinkronisasi dari sumber yang tersedia.

Format sintaksnya adalah:

stratumweight dist-in-seconds

Secara baku, dist-in-seconds adalah 1 detik. Ini berarti bahwa sumber dengan stratum yang lebih rendah biasanya lebih disukai daripada sumber dengan stratum yang lebih tinggi bahkan ketika jaraknya jauh lebih buruk. Mengatur stratumweight ke 0 membuat chronyd mengabaikan stratum saat memilih sumber.

rtcfile

Direktif rtcfile mendefinisikan nama berkas di mana chronyd dapat menyimpan parameter yang terkait dengan pelacakan keakuratan jam real-time (RTC) sistem.

Format sintaksnya adalah:

rtcfile /var/lib/chrony/rtc

chronyd menyimpan informasi dalam berkas ini ketika keluar dan ketika perintah writertc diberikan di chronyc. Informasi yang disimpan adalah kesalahan RTC pada beberapa epos, epos itu (dalam hitungan detik sejak 1 Januari 1970), dan laju di mana waktu RTC maju atau mundur. Tidak semua jam real-time didukung karena kodenya spesifik sistem. Perhatikan bahwa jika direktif ini digunakan maka jam real-time tidak boleh disesuaikan secara manual karena ini akan mengganggu kebutuhan chrony untuk mengukur laju pergeseran jam real-time jika disesuaikan pada interval acak.

rtcsync

Direktif rtcsync ada di berkas /etc/chrony.conf secara baku. Ini akan memberi tahu kernel bahwa jam sistem tetap disinkronkan dan kernel akan memperbarui jam waktu nyata setiap 11 menit.

Keamanan dengan chronyc

Karena akses ke chronyc memungkinkan mengubah chronyd seperti halnya mengedit berkas konfigurasi, akses ke chronyc harus dibatasi. Kata sandi dapat ditentukan dalam berkas kunci, ditulis dalam ASCII atau HEX, untuk membatasi penggunaan chronyc. Salah satu entri digunakan untuk membatasi penggunaan perintah operasional dan disebut sebagai kunci perintah. Dalam konfigurasi baku, kunci perintah acak dihasilkan secara otomatis saat memulai. Seharusnya tidak perlu menentukan atau mengubahnya secara manual.

Entri lain dalam berkas kunci dapat digunakan sebagai kunci NTP untuk mengautentikasi paket yang diterima dari server atau peer NTP jarak jauh. Kedua belah pihak perlu berbagi kunci dengan ID, jenis hash, dan kata sandi yang identik dalam berkas kunci mereka. Ini membutuhkan pembuatan kunci secara manual dan menyalinnya melalui media yang aman, seperti SSH. Jika ID kunci adalah, misalnya, 10 maka sistem yang bertindak sebagai klien harus memiliki baris dalam berkas konfigurasi mereka dalam format berikut:

server w.x.y.z key 10
peer w.x.y.z key 10

Lokasi berkas kunci ditentukan dalam berkas /etc/chrony.conf. Entri baku dalam berkas konfigurasi adalah:

keyfile /etc/chrony.keys

Angka kunci perintah ditentukan dalam /etc/chrony.conf menggunakan direktif commandkey, itu adalah kunci chronyd yang akan digunakan untuk otentikasi perintah pengguna. Direktif dalam berkas konfigurasi mengambil bentuk berikut:

commandkey 1

Contoh format entri baku dalam berkas kunci, /etc/chrony.keys, untuk kunci perintah adalah:

1 SHA1 HEX:A6CFC50C9C93AB6E5A19754C246242FC5471BCDF

Dimana 1 adalah ID kunci, SHA1 adalah fungsi hash yang digunakan, HEX adalah format kunci, dan A6CFC50C9C93AB6E5A19754C246242FC5471BCDF adalah kunci yang dihasilkan secara acak ketika chronyd dimulai untuk pertama kalinya. Kunci dapat diberikan dalam format heksadesimal atau ASCII (baku).

Entri manual dalam berkas kunci, yang digunakan untuk mengotentikasi paket dari server atau peer NTP tertentu, bisa sesederhana berikut ini:

20 foobar

Dimana 20 adalah ID kunci dan foobar adalah kunci otentikasi rahasia. Hash baku adalah MD5, dan ASCII adalah format baku untuk kunci.

Secara baku, chronyd dikonfigurasi untuk mendengarkan perintah hanya dari localhost (127.0.0.1 dan ::1) pada port 323. Untuk mengakses chronyd dari jarak jauh dengan chronyc, setiap direktif bindcmdaddress dalam berkas /etc/chrony.conf harus dihapus untuk memungkinkan mendengarkan pada semua antarmuka dan direktif cmdallow harus digunakan untuk mengizinkan perintah dari alamat, jaringan, atau subnet IP jarak jauh. Selain itu, port 323 harus dibuka di firewall untuk terhubung dari sistem jarak jauh. Perhatikan bahwa direktif allow adalah untuk akses NTP sedangkan direktif cmdallow adalah untuk mengaktifkan penerimaan perintah jarak jauh. Dimungkinkan untuk membuat perubahan ini sementara menggunakan chronyc yang berjalan secara lokal. Edit berkas konfigurasi untuk membuat perubahan menetap.

Komunikasi antara chronyc dan chronyd dilakukan melalui UDP, sehingga perlu diotorisasi sebelum mengeluarkan perintah operasional. Untuk mengotorisasi, gunakan perintah authhash dan password sebagai berikut:

chronyc> authhash SHA1
chronyc> password HEX:A6CFC50C9C93AB6E5A19754C246242FC5471BCDF
200 OK

Jika chronyc digunakan untuk mengonfigurasi chronyd lokal, opsi -a akan menjalankan perintah authhash dan password secara otomatis.

Hanya perintah berikut yang dapat digunakan tanpa memberikan kata sandi:

  • activity

  • authhash

  • dns

  • exit

  • help

  • password

  • quit

  • rtcdata

  • sources

  • sourcestats

  • tracking

  • waitsync

.

Menggunakan chrony

Memasang chrony

Keluarga chrony dipasang secara baku pada beberapa versi Fedora. Jika diperlukan, untuk memastikannya, jalankan perintah berikut sebagai root:

~]# dnf install chrony

Lokasi baku untuk daemon chrony adalah /usr/sbin/chronyd. Utilitas baris perintah akan dipasang ke /usr/bin/chronyc.

Memeriksa Status chronyd

Untuk memeriksa status chronyd, jalankan perintah berikut:

~]$ 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

Memulai chronyd

Untuk memulai chronyd, berikan perintah berikut sebagai root:

~]# systemctl start chronyd

Untuk memastikan chronyd dimulai secara otomatis saat sistem dimulai, berikan perintah berikut sebagai root:

~]# systemctl enable chronyd

Menghentikan chronyd

Untuk menghentikan chronyd, berikan perintah berikut sebagai root:

~]# systemctl stop chronyd

Untuk mencegah chronyd dimulai secara otomatis saat sistem dimulai, berikan perintah berikut sebagai root:

~]# systemctl disable chronyd

Memeriksa apakah chrony Tersinkronisasi

Untuk memeriksa apakah chrony disinkronkan, manfaatkan perintah tracking, sources, dan sourcestats.

Memeriksa Pelacakan chrony

Untuk memeriksa pelacakan chrony, berikan perintah berikut:

~]$ chronyc tracking
Reference ID    : 1.2.3.4 (a.b.c)
Stratum         : 3
Ref time (UTC)  : Fri Feb  3 15:00:29 2012
System time     : 0.000001501 seconds slow of NTP time
Last offset     : -0.000001632 seconds
RMS offset      : 0.000002360 seconds
Frequency       : 331.898 ppm fast
Residual freq   : 0.004 ppm
Skew            : 0.154 ppm
Root delay      : 0.373169 seconds
Root dispersion : 0.024780 seconds
Update interval : 64.2 seconds
Leap status     : Normal

Bidang-bidangnya adalah sebagai berikut:

Reference ID

Ini adalah ID referensi dan nama (atau alamat IP) jika tersedia, dari server tempat komputer saat ini disinkronkan. Jika ini adalah 127.127.1.1 itu berarti komputer tidak disinkronkan ke sumber eksternal apa pun dan Anda memiliki mode "lokal" yang beroperasi (melalui perintah lokal di chronyc, atau direktif local dalam berkas /etc/chrony.conf (lihat bagian local)).

Stratum

Strata menunjukkan berapa banyak hop kita dari komputer dengan jam referensi yang tercantol. Komputer semacam itu adalah komputer stratum-1, jadi komputer dalam contoh berjarak dua lompatan (artinya, a.b.c adalah stratum-2 dan disinkronkan dari stratum-1).

Ref time

Ini adalah waktu (UTC) dimana pengukuran terakhir dari sumber referensi diproses.

System time

Dalam operasi normal, chronyd tidak pernah melangkahkan jam sistem, karena setiap lompatan dalam skala waktu dapat memiliki konsekuensi buruk untuk program aplikasi tertentu. Sebaliknya, setiap kesalahan dalam jam sistem diperbaiki dengan sedikit mempercepat atau memperlambat jam sistem sampai kesalahan telah dihapus, dan kemudian kembali ke kecepatan normal jam sistem. Konsekuensi dari ini adalah bahwa akan ada periode ketika jam sistem (seperti yang dibaca oleh program lain menggunakan panggilan sistem gettimeofday(), atau dengan perintah tanggal di shell) akan berbeda dari perkiraan chronyd tentang waktu sebenarnya saat ini (yang dilaporkan ke klien NTP ketika beroperasi dalam mode server). Nilai yang dilaporkan pada baris ini adalah perbedaan karena efek ini.

Last offset

Ini adalah perkiraan ofset lokal pada pembaruan jam terakhir.

RMS offset

Ini adalah rata-rata jangka panjang dari nilai ofset.

Frequency

The "frequency" is the rate by which the system’s clock would be wrong if chronyd was not correcting it. It is expressed in ppm (parts per million). For example, a value of 1ppm would mean that when the system’s clock thinks it has advanced 1 second, it has actually advanced by 1.000001 seconds relative to true time.

Residual freq

This shows the "residual frequency" for the currently selected reference source. This reflects any difference between what the measurements from the reference source indicate the frequency should be and the frequency currently being used.

Alasan ini tidak selalu nol adalah bahwa prosedur penghalusan diterapkan pada frekuensi. Setiap kali pengukuran dari sumber referensi diperoleh dan frekuensi residu baru dihitung, perkiraan akurasi residu ini dibandingkan dengan perkiraan akurasi (lihat skew setelahnya) dari nilai frekuensi yang ada. Rata-rata terbobot dihitung untuk frekuensi baru, dengan bobot tergantung pada akurasi ini. Jika pengukuran dari sumber referensi mengikuti tren yang konsisten, residu akan didorong ke nol dari waktu ke waktu.

Skew

Ini adalah perkiraan kesalahan yang terikat pada frekuensi.

Root delay

Ini adalah total penundaan path jaringan ke komputer stratum-1 dari mana komputer akhirnya disinkronkan.

Dalam situasi ekstrem tertentu, nilai ini bisa negatif. (Ini dapat muncul dalam pengaturan peer simetris di mana frekuensi komputer tidak melacak satu sama lain dan penundaan jaringan sangat singkat relatif terhadap waktu pulang balik di setiap komputer.)

Root dispersion

Ini adalah dispersi total yang terakumulasi melalui semua komputer kembali ke komputer stratum-1 dari mana komputer akhirnya disinkronkan. Dispersi disebabkan oleh resolusi jam sistem, variasi pengukuran statistik, dll.

Leap status

Ini adalah status leap, yang bisa Normal, Sisipkan detik, Hapus detik, atau Tidak disinkronkan.

Memeriksa Sumber chrony

Perintah sumber menampilkan informasi tentang sumber waktu saat ini yang diakses chronyd.

Argumen opsional -v dapat ditentukan, yang berarti verbose. Dalam hal ini, baris teks tambahan ditampilkan sebagai pengingat makna kolom.

~]$ 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

Kolom-kolom tersebut adalah sebagai berikut:

M

Ini menunjukkan mode sumber. ^ berarti server, = berarti peer dan # menunjukkan jam referensi yang terhubung secara lokal.

S

This column indicates the state of the sources. "*" indicates the source to which chronyd is currently synchronized. "+" indicates acceptable sources which are combined with the selected source. "-" indicates acceptable sources which are excluded by the combining algorithm. "?" indicates sources to which connectivity has been lost or whose packets do not pass all tests. "x" indicates a clock which chronyd thinks is a falseticker (its time is inconsistent with a majority of other sources). "~" indicates a source whose time appears to have too much variability. The "?" condition is also shown at start-up, until at least 3 samples have been gathered from it.

Name/IP address

Ini menunjukkan nama atau alamat IP sumber, atau ID referensi untuk jam referensi.

Stratum

Ini menunjukkan strata sumber, seperti yang dilaporkan dalam sampel yang terakhir diterima. Stratum 1 menunjukkan komputer dengan jam referensi yang terpasang secara lokal. Komputer yang disinkronkan ke komputer stratum 1 berada di stratum 2. Komputer yang disinkronkan ke komputer stratum 2 berada di stratum 3, dan seterusnya.

Poll

Ini menunjukkan laju dimana sumber sedang di-poll, sebagai logaritma basis-2 dari interval dalam hitungan detik. Dengan demikian, nilai 6 akan menunjukkan bahwa pengukuran sedang dilakukan setiap 64 detik.

chronyd secara otomatis memvariasikan laju poll sebagai respons terhadap kondisi yang berlaku.

Reach

Ini menunjukkan register reach sumber yang dicetak sebagai angka oktal. Register memiliki 8 bit dan diperbarui pada setiap paket yang diterima atau terlewat dari sumbernya. Nilai 377 menunjukkan bahwa balasan yang valid diterima untuk semua dari delapan transmisi terakhir.

LastRx

Kolom ini menunjukkan berapa lama sampel terakhir diterima dari sumbernya. Ini biasanya dalam hitungan detik. Huruf m, h, d atau y menunjukkan menit, jam, hari, atau tahun. Nilai 10 tahun menunjukkan belum ada sampel yang diterima dari sumber ini.

Last sample

Kolom ini menunjukkan ofset antara jam lokal dan sumber pada pengukuran terakhir. Angka dalam tanda kurung siku menunjukkan ofset terukur yang sebenarnya. Ini dapat diakhiri dengan ns (menunjukkan nano detik), us (menunjukkan mikro detik), ms (menunjukkan mili detik), atau s (menunjukkan detik). Angka di sebelah kiri tanda kurung siku menunjukkan pengukuran asli, disesuaikan untuk memungkinkan setiap slew diterapkan pada jam lokal. Angka yang mengikuti indikator +/- menunjukkan margin kesalahan dalam pengukuran. Ofset positif menunjukkan bahwa jam lokal mendahului sumber.

Memeriksa Statistik Sumber chrony

Perintah sourcestats menampilkan informasi tentang laju drift dan proses estimasi ofset untuk setiap sumber yang saat ini sedang diperiksa oleh chronyd.

Argumen opsional -v dapat ditentukan, yang berarti verbose. Dalam hal ini, baris teks tambahan ditampilkan sebagai pengingat makna kolom.

~]$ 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

Kolom-kolom tersebut adalah sebagai berikut:

Name/IP address

Ini adalah nama atau alamat IP dari server NTP (atau peer) atau ID referensi dari jam referensi yang terkait dengan sisa baris.

NP

Ini adalah jumlah titik sampel yang saat ini dipertahankan untuk server. Laju drift dan ofset saat ini diperkirakan dengan melakukan regresi linier melalui titik-titik ini.

NR

Ini adalah jumlah eksekusi residu yang memiliki tanda yang sama setelah regresi terakhir. Jika angka ini mulai menjadi terlalu kecil relatif terhadap jumlah sampel, ini menunjukkan bahwa garis lurus tidak lagi cocok dengan data. Jika jumlah eksekusi terlalu rendah, chronyd membuang sampel yang lebih lama dan menjalankan kembali regresi sampai jumlah eksekusi menjadi dapat diterima.

Rentang

Ini adalah interval antara sampel terlama dan terbaru. Jika tidak ada unit yang ditampilkan, nilainya dalam hitungan detik. Dalam contoh, intervalnya adalah 46 menit.

Frequency

Ini adalah perkiraan frekuensi residu untuk server, dalam bagian per juta. Dalam hal ini, jam komputer diperkirakan berjalan lebih lambat 1 bagian per 109 relatif terhadap server.

Freq Skew

Ini adalah perkiraan batas kesalahan pada Freq (sekali lagi dalam bagian per juta).

Ofset

Ini adalah perkiraan ofset dari sumbernya.

Dev Std

Ini adalah perkiraan simpangan baku sampel.

Menyesuaikan Jam Sistem Secara Manual

Untuk memperbarui, atau melangkahkan jam sistem seketika, melewati penyesuaian yang sedang berlangsung dengan men-slew jam, berikan perintah berikut sebagai root:

~]# chronyc
      chrony> password commandkey-password
      200 OK
      chrony> makestep
      200 OK

Dimana commandkey-password adalah kunci perintah atau kata sandi yang disimpan dalam berkas kunci.

Jika direktif rtcfile digunakan, jam real-time tidak boleh disesuaikan secara manual. Penyesuaian acak akan mengganggu kebutuhan chrony untuk mengukur laju pergeseran jam real-time.

Jika chronyc digunakan untuk mengonfigurasi chronyd lokal, -a akan menjalankan perintah authhash dan password secara otomatis. Ini berarti bahwa sesi interaktif yang diilustrasikan di atas dapat diganti dengan:

chronyc -a makestep

Menyiapkan chrony untuk Lingkungan yang Berbeda

Menyiapkan chrony untuk Sistem yang Jarang Terhubung

Contoh ini ditujukan untuk sistem yang menggunakan koneksi dial-on-demand. Konfigurasi normal harus cukup untuk perangkat seluler dan virtual yang terhubung secara intermittent. Pertama, tinjau dan konfirmasikan bahwa pengaturan baku di /etc/chrony.conf mirip dengan yang berikut:

driftfile /var/lib/chrony/drift
commandkey 1
keyfile /etc/chrony.keys

ID kunci perintah dihasilkan pada waktu instalasi dan harus sesuai dengan nilai commandkey dalam berkas kunci, /etc/chrony.keys.

Menggunakan editor Anda yang berjalan sebagai root, tambahkan alamat empat server NTP sebagai berikut:

server 0.pool.ntp.org offline
server 1.pool.ntp.org offline
server 2.pool.ntp.org offline
server 3.pool.ntp.org offline

Opsi offline dapat berguna dalam mencegah sistem mencoba mengaktifkan koneksi. Daemon chrony akan menunggu chronyc untuk menginformasikan bahwa sistem terhubung ke jaringan atau Internet.

Menyiapkan chrony untuk Sistem dalam Jaringan Terisolasi

Untuk jaringan yang tidak pernah terhubung ke Internet, satu komputer dipilih untuk menjadi server waktu master. Komputer lain adalah klien langsung dari master, atau klien dari klien. Pada master, berkas drift harus diatur secara manual dengan laju rata-rata drift jam sistem. Jika master di-reboot, itu akan mendapatkan waktu dari sistem di sekitarnya dan membutuhkan rata-rata untuk mengatur jam sistemnya. Setelah itu dilanjutkan menerapkan penyesuaian berdasarkan berkas drift. Berkas drift akan diperbarui secara otomatis ketika perintah settime digunakan.

Pada sistem yang dipilih untuk menjadi master, menggunakan editor teks yang berjalan sebagai root, edit /etc/chrony.conf sebagai berikut:

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

Dimana 192.0.2.0 adalah jaringan atau alamat subnet dari mana klien diizinkan untuk terhubung.

Pada sistem yang dipilih untuk menjadi klien langsung dari master, menggunakan editor teks yang berjalan sebagai root, edit /etc/chrony.conf sebagai berikut:

server master
driftfile /var/lib/chrony/drift
logdir /var/log/chrony
log measurements statistics tracking
keyfile /etc/chrony.keys
commandkey 24
local stratum 10
initstepslew 20 master
allow 192.0.2.123

Dimana 192.0.2.123 adalah alamat master, dan master adalah nama host master. Klien dengan konfigurasi ini akan menyinkronkan ulang master jika dimulai ulang.

Pada sistem klien yang tidak menjadi klien langsung dari master, berkas /etc/chrony.conf harus sama kecuali bahwa arahan local dan allow harus dihilangkan.

Menggunakan chronyc

Menggunakan chronyc untuk Mengontrol chronyd

Untuk membuat perubahan pada instansi lokal chronyd menggunakan utilitas baris perintah chronyc dalam mode interaktif, masukkan perintah berikut sebagai root:

~]# chronyc -a

chronyc harus dijalankan sebagai root jika beberapa perintah terbatas akan digunakan. Opsi -a adalah untuk otentikasi otomatis menggunakan kunci lokal saat mengonfigurasi chronyd pada sistem lokal. Lihat Keamanan dengan chronyc untuk informasi lebih lanjut.

Prompt perintah chronyc akan ditampilkan sebagai berikut:

chronyc>

Anda dapat mengetik help untuk mencantumkan semua perintah.

Utilitas juga dapat dipanggil dalam mode perintah non-interaktif jika dipanggil bersama dengan perintah sebagai berikut:

chronyc command

Perubahan yang dibuat menggunakan chronyc tidak permanen, perubahan tersebut akan hilang setelah menjalankan ulang chronyd. Untuk perubahan permanen, ubah /etc/chrony.conf.

Menggunakan chronyc untuk Administrasi Jarak Jauh

Untuk mengonfigurasi chrony agar menyambungkan ke instansi chronyd jarak jauh, berikan perintah dalam format berikut:

~]$ chronyc -h hostname

Di mana hostname adalah nama host untuk disambungkan. Bakunya adalah terhubung ke daemon lokal.

Untuk mengonfigurasi chrony agar menyambungkan ke instansi jarak jauh chronyd pada port non-baku, berikan perintah dalam format berikut:

~]$ chronyc -h hostname -p port

Di mana port adalah port yang digunakan untuk mengontrol dan memantau instansi jarak jauh chronyd.

Perhatikan bahwa perintah yang dikeluarkan pada prompt perintah chronyc tidak persisten. Hanya perintah dalam berkas konfigurasi yang persisten.

Perintah pertama harus berupa perintah password pada prompt perintah chronyc sebagai berikut:

chronyc> password password
200 OK

Kata sandi tidak boleh mengandung spasi.

Jika kata sandi bukan hash MD5, kata sandi yang di-hash harus didahului dengan perintah authhash sebagai berikut:

chronyc> authhash SHA1
chronyc> password HEX:A6CFC50C9C93AB6E5A19754C246242FC5471BCDF
200 OK

Kata sandi atau hash yang terkait dengan kunci perintah untuk sistem jarak jauh paling baik diperoleh dengan SSH. Koneksi SSH harus dibuat ke mesin jarak jauh dan ID kunci perintah dari /etc/chrony.conf dan kunci perintah di /etc/chrony.keys dihafal atau disimpan dengan aman selama sesi berlangsung.

Sumber Daya Tambahan

Sumber informasi berikut menyediakan sumber daya tambahan mengenai chrony.

Dokumentasi Terpasang

  • Halaman man chrony(1) — Memperkenalkan daemon chrony dan alat antarmuka baris perintah.

  • Halaman man chronyc(1) — Menjelaskan alat antarmuka baris perintah chronyc termasuk perintah dan opsi perintah.

  • Halaman man chronyd(1) — Menjelaskan daemon chronyd termasuk perintah dan opsi perintah.

  • Halaman man chrony.conf(5) — Menjelaskan berkas konfigurasi chrony.

  • /usr/share/doc/chrony/chrony.txt — Panduan pengguna untuk keluarga chrony.

Dokumentasi Daring

https://chrony.tuxfamily.org/manual.html

Panduan pengguna daring untuk chrony.