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, sedangkanntpd
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, sedangkanntpd
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 mendukungNTP
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
menggunakanNTP
versi 3 (RFC 1305), yang kompatibel dengan versi 4. -
ntpd
mencakup driver untuk banyak jam referensi sedangkanchronyd
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 menggunakanIP
broadcast atau multicast, atau untuk melakukan otentikasi paket dengan protokolAutokey
, mesti mempertimbangkan untuk menggunakanntpd
. Chrony hanya mendukung autentikasi kunci simetris menggunakan message authentication code (MAC) dengan fungsi MD5, SHA1, atau hash yang lebih kuat, sedangkanntpd
juga mendukung protokol autentikasiAutokey
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
The default configuration file for chronyd
is /etc/chrony.conf
. The -f
option can be used to specify an alternate configuration file path. See the chronyd
man page for further options. For a complete list of the directives that can be used see http://chrony.tuxfamily.org/manual.html#Configuration-file. Below is a selection of configuration options:
- Komentar
-
Komentar harus didahului oleh #, %, ;, atau !
- allow
-
Secara opsional tentukan host, subnet, atau jaringan untuk memungkinkan koneksi
NTP
ke mesin yang bertindak sebagai serverNTP
. Bakunya adalah tidak mengizinkan koneksi. Contoh:-
[subs="quotes"]
-
allow server1.example.com
Gunakan bentuk ini untuk menentukan host tertentu, dengan nama host-nya, agar diizinkan mengakses.
-
[subs="quotes"]
allow 192.0.2.0/24
Gunakan bentuk ini untuk menentukan jaringan tertentu yang akan diizinkan aksesnya.
-
[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 kechronyd
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 disebutmeasurements.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 memaksachronyd
untuk melangkahkan jam sistem jika penyesuaian lebih besar dari nilai ambang batas, tetapi hanya jika tidak ada lagi pembaruan jam sejakchronyd
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 sumberNTP
.
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 opsireselectdist
. 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 adalah127.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 sistemgettimeofday()
, atau dengan perintah tanggal di shell) akan berbeda dari perkiraanchronyd
tentang waktu sebenarnya saat ini (yang dilaporkan ke klienNTP
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 whichchronyd
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
atauy
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), ataus
(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 serverNTP
(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 |
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
- http://chrony.tuxfamily.org/manual.html
-
Panduan pengguna daring untuk chrony.
Want to help? Learn how to contribute to Fedora Docs ›