Bandingkan NTPD dan ntpdate

23

Apa pro dan kontra di antara kedua cara ini untuk menyinkronkan server Anda?

Sepertinya saya bahwa server Anda mungkin tidak akan melayang lebih dari 1 detik setiap hari, jadi ntpdate pada crontab akan baik-baik saja. Tapi saya dengar Anda bisa menggunakan server NTP yang berlebihan di sini

http://www.pool.ntp.org/en/use.html

untuk menjaga waktu yang disinkronkan jika terjadi kegagalan.

Apakah Anda punya saran?

Tidak dikenal
sumber

Jawaban:

26

Algoritme NTP mencakup informasi yang memungkinkan Anda menghitung dan memperbaiki penyimpangan jam server Anda. NTPD mencakup kemampuan untuk menggunakan ini untuk menjaga jam Anda tetap sinkron dan akan berjalan lebih akurat daripada jam di komputer yang tidak menjalankan NTPD. NTPD juga akan menggunakan beberapa server untuk meningkatkan akurasi.

ntpdate tidak mempertahankan status apa pun untuk melakukan layanan ini untuk Anda sehingga tidak akan memberikan akurasi yang sama. Ini akan memungkinkan Anda untuk memberikan daftar server yang akan digunakan untuk mencoba memberikan Anda hasil yang lebih baik, tetapi ini bukan pengganti untuk algoritma canggih yang disediakan di NTPD yang melacak perpindahan Anda dari masing-masing server dari waktu ke waktu.

NTPDATE mengoreksi waktu sistem secara instan, yang dapat menyebabkan masalah dengan beberapa perangkat lunak (misalnya menghancurkan sesi yang sekarang tampak lama). NTPD sengaja mengoreksi waktu sistem secara perlahan, menghindari masalah itu. Anda dapat menambahkan sakelar -g saat memulai NTPD untuk memungkinkan NTPD membuat pembaruan pertama kali menjadi besar yang kurang lebih sama dengan menjalankan ntpdate sekali sebelum memulai NTPD, yang pada satu waktu disarankan praktik.

Mengenai masalah keamanan, server ntp tidak terhubung kembali pada koneksi yang belum diinisiasi, yang berarti firewall Anda harus dapat memberi tahu bahwa Anda yang memulai permintaan ntp dan mengizinkan lalu lintas balik. Seharusnya tidak perlu membiarkan port terbuka untuk koneksi sewenang-wenang agar NTPD berfungsi.

Dari halaman manual ntpdate (8):

ntpdate dapat dijalankan secara manual jika diperlukan untuk mengatur jam host, atau dapat dijalankan dari skrip startup host untuk mengatur jam pada saat boot. Ini berguna dalam beberapa kasus untuk mengatur jam pada awalnya sebelum memulai daemon NTP ntpd. Dimungkinkan juga untuk menjalankan ntpdate dari skrip cron. Namun, penting untuk dicatat bahwa ntpdate dengan skrip cron yang dibuat bukan pengganti untuk daemon NTP, yang menggunakan algoritma canggih untuk memaksimalkan akurasi dan reliabilitas sambil meminimalkan penggunaan sumber daya. Akhirnya, karena ntpdate tidak mendisiplinkan frekuensi clock host seperti halnya ntpd, akurasi menggunakan ntpdate terbatas.

lambacck
sumber
Lebih baik daripada menggunakan ntpdate sebelum memulai ntpd: cukup gunakan -g!
Alex J
8

ntpd lebih disukai daripada ntpdate karena Anda mendapatkan koreksi waktu yang lancar daripada melompat di jam Anda. Apa arti dari log Anda ketika ada lompatan waktu mundur di dalamnya? ntpdate juga akan berpindah antar server secara transparan.

Sedangkan untuk membutuhkan port terbuka (seperti yang disebutkan oleh Kyle), versi ntpd yang lebih baru (mis. 4.2.4 di server Debian saya) dapat dikonfigurasi untuk disiarkan / multicast ke LAN, dengan otentikasi kriptografi.

Sunting: lihat juga pertanyaan ini .

pgs
sumber
5

Saya biasanya menyarankan Anda menjalankan NTPD, dan menyinkronkan server Anda dengan server waktu yang ditentukan dalam organisasi Anda. Server internal itu biasanya akan disinkronkan dengan salah satu server NTP publik (seperti yang Anda tautkan).

Saya telah menggunakan metode ntpdate tanpa masalah, tetapi sepertinya lebih meretas daripada menjalankan daemon ntpd yang sebenarnya.

Michael Gorsuch
sumber
3

Saya telah mendengar masalah dengan kemiringan jam pada mesin virtual yang menjalankan ntpd. Saya juga pernah mendengar ada orang yang memperbaiki masalah ini dengan menjalankan pekerjaan cron biasa yang memanggil ntpdate terhadap beberapa server kumpulan. Saya tidak punya masalah ini, tetapi saya sudah mendengarnya beberapa kali.

Matt Simmons
sumber
1
Mereka akan ingin menjalankan kernel tickless pada VM
goo
1
Perangkat lunak VMware di ESX VM menangani sinkronisasi waktu, jadi jangan gunakan ntpd pada VM dengan alat VMware. Setup NTPD pada host sebagai gantinya dan biarkan alat VMware melakukan sisanya.
dunxd
3

Seperti disebutkan di tempat lain, NTP memberikan koreksi waktu yang lancar. Jika aplikasi di server Anda tidak keberatan memiliki seluruh detik hilang, atau melakukan detik yang sama berulang lagi, maka ntpd tidak banyak membuat Anda mendapatkan lebih dari ntpdate.

Jika di sisi lain Anda memiliki aplikasi sensitif waktu yang sensitif terhadap detik, atau lebih buruk lagi sensitif terhadap sebagian detik, maka ntpd sejauh ini merupakan pilihan yang lebih baik. Pembaruan stempel waktu Novell eDirectory untuk penanganan pembaruan-tabrakan, yang menjadi sangat penting jika pembaruan datang sangat cepat (seperti saat terburu-buru masuk pagi). Server syslog perlu memiliki waktu yang akurat hingga setidaknya setengah detik untuk menjaga log waras.

Untuk kotak MythTV saya di rumah, saya perhatikan ketika waktu beberapa detik dari apa yang dipertimbangkan penyedia kabel saya, jadi saya menggunakan NTP untuk itu. Untuk server monitor UPS di tempat kerja saya menggunakan ntpdate crontabbed untuk alasan yang sama Kyle Hodgson tunjukkan, karena itu adalah bastion host saya tidak ingin port terbuka meskipun saya telah mengunci aplikasi; untuk aplikasi yang menjadi detik benar tidak buruk.

Adapun redundansi, kami mempertahankan setidaknya dua host-waktu di jaringan kami, dan mengarahkan semua host internal kami ke keduanya. Keduanya kemudian melacak host NTP internet yang berbeda. Terlebih lagi, mereka dikonfigurasi dalam pengaturan Peer sehingga mereka dapat menjaga waktu di antara mereka sendiri dalam mode konsensus jika tautan internet kita turun. NTP yang kuat jelas memungkinkan untuk direkayasa.

sysadmin1138
sumber
1

Pada server di mana akses dan pengerasan sangat penting, saya menggunakan alasan bahwa xntpd, versi ntpd yang saya andalkan, membutuhkan port UDP terbuka 123. Karena saya lebih suka hanya memiliki tcp 22 dan 80 yang terbuka, saya menggunakan ntpdate di crontab sebagai gantinya. Saya tidak pernah mendengar alasan yang bagus mengapa itu membutuhkan itu, atau tidak yang saya ingat.

Salah satu kelemahan dari menggunakan panggilan ntpdate crontab adalah bahwa ia tidak dapat menangani koreksi drift secara elegan. ntpdate, iirc, memperbarui jam segera setelah itu dapat memberitahu bahwa Anda ketinggalan zaman - ntp daemon biasanya mengoreksi melayang dengan lembut. Ini memiliki manfaat bahwa log Anda tetap waras - Anda dapat membayangkan, pada server web yang sibuk misalnya, bahwa jika RTC melayang beberapa menit, bahwa membaca log web pada hari berikutnya mungkin menyimpulkan bahwa orang dapat menekan dengan aman URL sebelum mereka masuk, karena klik web akan rusak.

Kyle Hodgson
sumber
1

ntpdate dimaksudkan untuk pembaruan satu kali, jika Anda ingin waktu disinkronkan secara teratur, kemudian gunakan layanan untuk tujuan itu, ntpd.

Tidak ada alasan kuat untuk tidak menggunakan ntpd sejauh yang saya tahu

Rog
sumber
0

Anda tidak perlu menggunakan crontab, untuk itulah ntpd.

Awalnya ketika waktu Anda jauh, satu cara adalah dengan hanya menghentikan ntpd, kemudian jalankan ntpdate ntp.server.comuntuk mendapatkannya kembali dalam sinkronisasi, kemudian mulai ntp lagi.

Jika Anda memiliki jaringan besar, saya mungkin akan menyiapkan beberapa server ntp lokal, dan meminta semua host untuk menggunakannya.

Xerxes
sumber
0

Lihat diskusi ini untuk memahami mengapa "ntpdate" masih diinginkan dan digunakan.

Singkatnya: ntpd lebih lambat dibandingkan ketika melakukan penyesuaian waktu yang sangat besar, bahkan dengan opsi -g.

James
sumber
-3

Untuk penggunaan di rumah, ntpdate bukan masalah besar sebenarnya .. Ada alasannya "lebih lambat". Siapa pun yang menggunakan cron dengan ntpdate di lingkungan PRODUCTION ENTERPRISE hanyalah orang bodoh.

StateGov1
sumber
2
Ada kegunaannya. Seperti server dengan kebutuhan untuk memiliki port terbuka minimal dalam bentuk apa pun dan persyaratan resolusi waktu +/- 1000ms atau lebih, cron + ntpdate adalah cara yang benar-benar valid untuk menjaga sinkronisasi waktu.
sysadmin1138