Jadi, saya mencoba untuk men-debug pengaturan NTP saya saat ini, dan menemukan bahwa ia mengimbangi dari server saya yang dikonfigurasi lebih dari 3 detik, dan tidak menyesuaikan. Tanda bintang pada LOCAL (0) dalam output ntpq tampaknya menunjukkan bahwa sistem dengan senang hati menyinkronkan dirinya sendiri daripada server 10.130.33.201 (yang merupakan kotak linux lain di sistem kami yang ingin kami sinkronkan semuanya).
ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
10.130.33.201 LOCAL(0) 9 u 49 64 377 0.242 -3742.2 1.049
*LOCAL(0) .LOCL. 10 l 2 64 377 0.000 0.000 0.001
Dan ini adalah file ntp.conf saya. Ditulis oleh orang lain, jadi saya tidak 100% yakin bahwa semuanya benar.
server 10.130.33.201 burst iburst minpoll 4 maxpoll 11
driftfile /mnt/active/etc/ntp.drift
restrict -4 default nomodify nopeer notrap
restrict -6 default ignore
# Undisciplined Local Clock. This is a fake driver intended for backup
# and when no outside source of synchronized time is available.
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
Saya sudah membaca tentang burst dan iburst dan minpoll / maxpoll, jadi saya menyadari bahwa itu mungkin tidak diperlukan, tetapi saya pikir itu tidak ada hubungannya dengan masalah saya saat ini.
Juga, karena cara penggunaannya, file konfigurasi itu akan membutuhkan banyak pekerjaan untuk diubah, jadi saya harap tidak ada yang benar-benar harus diubah. Saya berharap ini adalah kasus saya yang tidak memahami cara kerja NTP.
EDIT -
Jadi, sepertinya ini adalah duplikat dari pertanyaan ini , tetapi saya tidak merasa bahwa poster mendapat jawaban yang cukup, jadi saya masih ingin tahu mengapa waktu lokal lebih disukai daripada server. Juga, sesuai dengan salah satu jawaban di bawah ini, saya mencoba menggunakan prefer
kata kunci pada baris server dari konfigurasi dan restart, tetapi tampaknya tidak berpengaruh.
Jika saya menghapus semua baris "lokal" di konfigurasi seperti yang disarankan oleh pertanyaan lain, apa yang akan terjadi jika server tidak dapat dijangkau? Apakah NTP mati atau terus mencoba?
EDIT PENTING -
Oke, biasanya, 10.130.33.201 ("server") tidak memiliki akses ke internet, dan tidak memiliki sumber waktu GPS untuk digunakan. Bagian penting adalah bahwa semua perangkat pada sistem memiliki waktu yang sama dengan server, terlepas dari seberapa benar waktu itu sebenarnya.
Jadi, hanya untuk melihat apa yang akan terjadi, saya menambahkan salah satu server NTP pool ke file konfigurasi server sehingga akan mendapatkan waktu dari sana daripada mendapatkan waktu dari lokal. Sekarang benar mendapatkan waktu dari server waktu NTP.
Setelah saya melakukan itu, klien sekarang menyinkronkan dengan server daripada memilih LOCAL (0)
ntpq -p
remote refid st t when poll reach delay offset jitter
==============================================================================
*10.130.33.201 38.229.71.1 3 u 58 64 377 0.216 715621. 1.001
LOCAL(0) .LOCL. 10 l 18 64 377 0.000 0.000 0.001
PERTANYAAN BARU - Ketika server saya menggunakan lokal (contoh asli yang diberikan), sepertinya klien mengatakan, "Oh, 10.130.33.201 menggunakan LOCAL (0). Hmm, saya juga memiliki server LOCAL (0) - - Saya hanya akan menggunakannya secara langsung daripada mendapatkan informasi yang sama melalui 10.130.33.201 ".
Apakah itu masalahnya? Apakah mereka mencoba untuk pergi "langsung ke sumber" yang salah LOCAL (0)? Saya perlu server saya untuk mendapatkan waktu dari LOCAL (0), dan saya perlu klien untuk mendapatkan waktu dari server. Saat ini menghapus server "lokal" dari file konfigurasi klien adalah satu-satunya pilihan, tetapi saya ingin memahami mengapa ini terjadi, dan jika mungkin, hindari mengubah konfigurasi mereka (perubahan konfigurasi akan banyak pekerjaan karena lingkungan kita...).
Juga, ini terlihat seperti duplikat lain tanpa jawaban yang baik.
Jawaban:
Dengan hanya satu server NTP yang dikonfigurasi, algoritme tidak sepenuhnya yakin siapa yang harus dipercaya. Meskipun, strata lebih rendah dengan host jarak jauh, saya yakin algoritma menganggap waktu lokal lebih dapat dipercaya.
Coba gunakan
prefer
kata kunci denganserver
pernyataan Anda untuk menetapkannya sebagai sumber waktu preferensial.Untuk jawaban yang benar-benar mencukupi, Anda akan menggali bagian dalam dari algoritma yang sangat kompleks. Dokumentasinya bahkan tidak terlalu spesifik tetapi saya yakin ada kertas putih atau spesifikasi di luar sana.
Daemon NTP tidak mati atau berhenti, tetapi tidak berhenti menyinkronkan waktu setelah gagal mencapai server jauh. Inilah sebabnya mengapa praktik terbaik akan menyarankan minimal tiga server jarak jauh dan tidak menggunakan LCL kecuali Anda terputus dari jaringan. Tiga server disarankan karena ketika hanya ada dua, dan mereka tidak setuju, mana yang akan dipilih? Server ketiga harus membantu algoritma menghilangkan server palsu.
Terakhir, saya hanya memperhatikan bahwa Anda tidak mendefinisikan a
driftfile
. Ini mungkin membantu?sumber
Bagi saya sepertinya interval offset (perbedaan antara waktu sistem Anda dan waktu host NTP) terlalu jauh berbeda untuk NTP untuk mengaturnya dengan benar.
Saran saya,
Anda seharusnya tidak memiliki masalah setelah itu.
sumber
tinker panic 0
opsi ntp untuk memaksa NTP untuk menerima offset. Tetapi hanya gunakan ini dengan server NTP Anda yakin tidak akan pernah mengembalikan waktu yang buruk.prefer
akan melakukan trik.Strata 10.130.33.201 sebagai server LOCAL adalah 9, yang membuat strata lokal dihitung dari ini (9 + 1 = 10) bersaing dengan server LOCAL lokal di strata 10. Karena strata LOCAL lokal tidak memiliki penundaan jaringan atau jitter, maka mungkin terlihat sedikit lebih baik untuk ntpd daripada yang jauh.
Jika Anda ingin konfigurasi ini berfungsi, atur server LOCAL 'master' ke strata lebih rendah dari 9. Tidak terlalu rendah jika Anda ingin waktu yang dapat dilacak ke server strata 1 lebih disukai.
sumber
Saya tahu ini sudah tua, tetapi saya pikir Anda benar. Tidak ada yang menunjukkan cara untuk men-debug masalah ntpd. Ternyata itu bisa dilakukan.
Saya pikir Anda berada di jalur yang benar ketika Anda mencurigai bahwa penggunaan LOCAL (0) secara lokal dan di server hulu mungkin menjadi masalah.
Itu pasti di pulau waktu 4 server saya punya masalah serupa dengan. Ini semua diatur untuk menjadi rekan satu sama lain, jadi mungkin masalah yang berbeda dengan Anda.
Pertama, ada cara yang lebih baik untuk menangani pulau waktu yang disebut mode yatim yang didukung dengan versi ntpd beberapa tahun terakhir:
Mode anak yatim di doc.ntp.org
Awalnya semua 4 server memiliki strata 10 yang sama dan lebih suka jam lokal mereka. Saya memperbaikinya dan masih mereka lebih suka jam lokal mereka (strata sepertinya penting).
Saya menggunakan perintah ntpq pe (peer), seperti, rv untuk menangani apa yang terjadi. Anda perlu menggunakan rv (readvar) pada nomor asosiasi untuk server untuk membuang informasi. dan sepertinya disortir oleh indeks yang sama sehingga Anda bisa mendapatkan nomor seperti itu. seperti memiliki bidang bernama kondisi yang dapat menunjukkan nilai tolak jika tidak suka server.
Dalam output rv adalah bidang yang disebut flash. Jika semuanya baik-baik saja, ini akan menjadi nol. Jika tidak, bitmask (ditampilkan dalam hex) dari masalah. Mereka dapat dilihat di sini:
decode internal ntpd
Masalah yang saya miliki adalah 0800 peer_loop. Ternyata refid jam itu penting. Melihat LOCAL (0) pada jam lokal dan dari server jauh ntpd berpikir ada loop. David Mills mengonfirmasi bahwa dalam posting di comp.protocols.time 'Bagaimana cara menghindari loop di NTP' (Saya telah mencapai batas 2 tautan saya, maaf!)
Menggunakan argumen refid untuk menipu untuk menetapkan refid unik tidak berhasil - itu masih muncul sebagai LOCAL (0) pada penerima.
Apa yang tampaknya berhasil adalah menggunakan nomor instance unik untuk driver lokal. 127.127.1. [0-3]. Gunakan ID yang sama di kedua server dan jalur fudge. Ketika saya melakukan ini, server umumnya disinkronkan ke server strata terendah yang biasanya menggunakan jam lokal. Namun kadang-kadang mencoba menggunakan salah satu server lain yang menggunakannya sebagai sumber. Namun kali sinkron dan tampaknya tetap seperti itu.
Mungkin terlalu terlambat untuk membantu, tetapi saya menawarkannya untuk menunjukkan NTP setuju dengan logika dan pemecahan masalah. Saya membutuhkan waktu berjam-jam untuk mencapai jawabannya melalui coba-coba dan kemudian menemukan dokumen nanti.
sumber
Gunakan iburst untuk memaksa server untuk mengirim permintaan NTP ke NTS yang diinginkan bahkan jika satu permintaan gagal
sumber