Hal yang perlu dipertimbangkan ketika menjalankan server NTP publik

21

Jadi, baru-baru ini saya sadar bahwa karena saya memiliki 3 jam GPS di jaringan saya, saya bisa, secara teknis, memberikan sedikit kembali dan melayani waktu ke seluruh dunia. Sejauh ini saya belum cukup melihat kelemahan dari ide-ide ini, tetapi saya memiliki pertanyaan-pertanyaan berikut;

  1. Bisakah saya memvirtualkan ini? Saya tidak akan menghabiskan uang dan waktu untuk membuat perangkat keras untuk ini, jadi virtualisasi adalah suatu keharusan. Karena server akan memiliki akses ke tiga strata 1 sumber, saya tidak bisa melihat bagaimana ini bisa menjadi masalah asalkan ntpd config sudah benar

  2. Lalu lintas seperti apa yang biasanya dilihat oleh server NTP publik (bagian dari pool.ntp.org)? Dan seberapa besar VM yang saya butuhkan untuk ini? ntpd seharusnya tidak terlalu banyak sumber daya sejauh yang saya bisa kumpulkan, tapi saya lebih baik tahu sebelumnya.

  3. Aspek keamanan apa yang ada untuk ini? Saya berpikir untuk menginstal ntpd pada dua VM di DMZ, hanya mengizinkan ntp melalui FW, dan hanya ntp keluar dari DMZ ke server ntp internal. Tampaknya juga ada beberapa pengaturan ntp yang direkomendasikan sesuai dengan halaman NTP pool, tetapi apakah mereka cukup? https://www.ntppool.org/join/configuration.html

  4. Mereka merekomendasikan untuk tidak mengonfigurasi driver clock LOCAL, apakah ini setara dengan menghapus konfigurasi sumber waktu LOCAL dari file konfigurasi?

  5. Ada hal lain yang perlu dipertimbangkan?

Stuggi
sumber

Jawaban:

22

Pertama, bagus untukmu; itu hal yang bermanfaat dan bersemangat untuk dilakukan publik. Yang mengatakan, dan memberikan klarifikasi Anda bahwa Anda berencana membuat satu atau lebih DMZ VM yang akan menyinkronkan dan menyediakan waktu bagi publik dari tiga server stratum-1 (internal) berkemampuan GPS Meinberg Anda:

  1. Sunting : Virtualisasi muncul untuk diskusi pada daftar kumpulan dari waktu ke waktu; yang terbaru adalah pada bulan Juli 2015, yang dapat diikuti mulai dari email ini . Tanyakan Bjørn Hansen, pimpinan proyek, apakah memposting ke utas , dan tidak berbicara menentang virtualisasi. Jelas sejumlah operator server kumpulan sedang melakukan virtualisasi sekarang, jadi saya tidak berpikir ada orang yang akan menembak Anda untuk itu, dan seperti yang dijelaskan oleh satu poster, jika server Anda tidak dapat diandalkan, sistem pemantauan kumpulan hanya akan menghapus mereka dari kolam. KVM tampaknya menjadi teknologi virtualisasi yang disukai; Saya tidak menemukan orang yang secara khusus menggunakan VMWare, jadi tidak dapat berkomentar tentang betapa "jujur" virtualisasi itu. Mungkin ringkasan terbaik tentang hal itu berkata

    Server kumpulan saya tervirtualisasi dengan KVM pada host KVM saya sendiri. Pemantauan mengatakan, server cukup akurat dan menyediakan waktu yang stabil selama 2-3 tahun terakhir. Tapi saya tidak akan mengatur server pool pada server virtual sewaan dari penyedia lain.

  2. Ini adalah jumlah rata-rata harian klien berbeda per detik yang saya lihat di server kolam renang saya (yang berada di zona Inggris, Eropa dan global) selama setahun terakhir:

    jumlah klien ntp

    Ini memaksakan hampir tidak ada beban sistem yang terdeteksi ( ntpdtampaknya menggunakan antara 1% dan 2% dari CPU, sebagian besar waktu). Perhatikan bahwa, pada beberapa titik selama tahun tersebut, pemuatan secara singkat memuncak di hampir seribu klien per detik (Maks: 849,27); Saya memonitor beban yang berlebihan, dan alarm tidak semua mati, jadi saya hanya dapat mencatat bahwa bahkan tingkat beban itu tidak menyebabkan masalah, walaupun singkat.

  3. Konfigurasi yang disarankan proyek adalah praktik terbaik, dan berfungsi untuk saya. Saya juga menggunakan iptablesuntuk membatasi klien ke dua paket inbound dalam jendela sepuluh detik bergulir (sungguh menakjubkan berapa banyak klien kasar yang ada di luar sana, yang berpikir bahwa mereka harus bebas meledak untuk mengatur jam mereka sendiri dengan cepat).

  4. Atau hapus baris apa pun yang merujuk ke alamat server yang dimulai dengan 127.127.

  5. Pedoman praktik terbaik juga merekomendasikan lebih dari tiga jam, jadi Anda mungkin ingin memilih beberapa server publik lainnya, atau server kumpulan khusus, selain tiga server strata-1 Anda.

    Saya juga mencatat bahwa jika Anda berencana untuk meletakkan kedua VM ini pada perangkat keras host yang sama, Anda mungkin harus menjalankannya saja, tetapi gandakan bandwidth yang dinyatakan ke pool (yaitu, terima permintaan dua kali lebih banyak daripada yang seharusnya Anda lakukan ).

MadHatter mendukung Monica
sumber
1
Banyak distribusi Linux yang disetel iburstsecara default ...
Michael Hampton
4
iburstSaya tidak keberatan, karena ini hanya berlaku ketika server tidak dapat dijangkau. Pengaturan burst, bagaimanapun, adalah benar-benar antisosial.
MadHatter mendukung Monica
1
Terima kasih sobat, apa yang ingin saya ketahui! Untuk memperjelas, saya menjalankan VMware di bawah ini, dan itu adalah cluster terdistribusi. Jam internal saya adalah peralatan Meinberg, dan mereka berbicara NTP dengan naif. Tampaknya beban cukup masuk akal, jam internal saya melihat sekitar dua kali lipat (tapi sekali lagi mereka ada sehingga perangkat saya bisa antisosial seperti yang mereka mau).
Stuggi
@Stuggi Saya sudah mencoba mengklarifikasi pertanyaan virtualisasi dengan mencari di daftar pool operator, semoga itu bisa membantu. Jangan ragu untuk menerima jawaban saya jika Anda pikir itu berkaitan dengan semua pertanyaan Anda! Dan terima kasih lagi untuk menjalankan server kolam renang.
MadHatter mendukung Monica
1
@MadHatter Cheers mate, itu membereskannya. Saya harus berurusan dengan banyak masalah waktu di VMware sebelumnya, dan tahu bagaimana menangani masalah-masalah itu, saya hanya khawatir bahwa bahkan setelah mengutak-atik semua VM masih akan terlalu buruk dalam ketepatan waktu untuk NTP. VMware adalah hypervisor bare metal (alias. Hypervisor adalah OS), sedangkan KVM (jika saya ingat dengan benar) berjalan di atas OS "normal", jadi seharusnya tidak apa-apa untuk menjalankannya di VMware. Saya akan mencobanya dan melihat apakah saya diusir dari kolam! :)
Stuggi
12

Pertama, selamat atas pertanyaan NTP yang merupakan materi non-facepalm. :-) Saya sudah memasukkan beberapa grafik di bagian bawah posting ini untuk memberi Anda rasa untuk hal-hal. VM yang dimaksud diatur ke 100 Mbps di panel kontrol pool, dan berada di UK, Eropa, dan pool global.

  1. Saya pikir MadHatter membahas hal ini dengan baik - virtualisasi seharusnya baik-baik saja. Seperti yang Anda katakan, jika mereka diberi makan dari strata 1 yang terhubung dengan GPS Anda, mereka seharusnya cukup solid. Dalam pengalaman saya, VM cenderung sedikit lebih gelisah daripada bare metal dalam hal frekuensi (lihat grafik di bawah), tetapi itulah yang Anda harapkan - mereka berurusan dengan lapisan emulasi jam (mudah-mudahan cukup efisien) dan berpotensi berisik tetangga. Jika Anda lebih suka tidak melihat kegelisahan semacam itu, mungkin gunakan server yang lebih tua atau desktop yang tidak digunakan sebagai stratum 2 DMZ Anda.

  2. VM ini adalah 1 core, 2 GB RAM, menjalankan Ubuntu 16.04 LTS, tervirtualisasi dalam OpenStack (KVM hypervisor). Seperti yang Anda lihat, RAM sedikit di atas.

  3. Pengaturan yang disarankan - termasuk tidak memiliki driver lokal yang dikonfigurasi - adalah default di Ubuntu 16.04. Saya menjalankan sangat dekat dengan konfigurasi stok, selain dari daftar rekan.

  4. (Lihat di atas)

  5. Saya mungkin akan mulai bandwidth di sisi rendah dan meningkatkan bandwidth setelah Anda memonitornya sebentar. Jika semua VM Anda berdekatan satu sama lain dan dekat strata 1 Anda dalam hal latensi jaringan, saya mungkin akan meminta semua VM berbicara dengan semua strata 1, dan mungkin mengintip mereka satu sama lain dan mengaktifkan mode yatim juga.

Berikut adalah grafik - semuanya mencakup periode yang sama sekitar 3 minggu, kecuali untuk jaringan, yang memiliki beberapa lonjakan karena cadangan. Ketika jaringan melonjak di sana saya bahkan tidak bisa melihat lalu lintas NTP normal, jadi saya memperbesar sedikit untuk menunjukkan latar belakang yang biasa.

CPU CPU Memory Ingatan Network Sistem Jaringan Frekuensi FrekuensiOffsetOffset Sistem

Paul Gear
sumber
Ooooh, jawaban yang bagus - +1 dari saya!
MadHatter mendukung Monica
1
Terima kasih sobat, lebih banyak yang sangat membantu, saya menjalankan latensi kurang dari 3 ms antara VM dan peralatan NTP fisik, yang didistribusikan secara geografis dalam 50 mil dari infrastruktur VM, jadi saya pikir saya akan baik-baik saja!
Stuggi
3

Beberapa hal yang perlu dipertimbangkan dengan NTP

Sudah ada jawaban bagus di sini. Saya hanya menambahkan beberapa pemikiran demi kelengkapan berdasarkan pengalaman saya sendiri.

Saya akan menyarankan mengaktifkan NTP logging dan grafik jam miring dan koreksi pada bare metal vs VM karena berkaitan dengan diskusi itu jika itu menjadi perhatian. Saya tidak percaya ini dapat digeneralisasikan dengan mudah karena perangkat keras dan konfigurasi bervariasi di antara implementasi. Mungkin yang terbaik untuk mendapatkan nomor Anda sendiri untuk yang itu.

Saya selalu menyarankan kepada orang-orang untuk memilih peran sistem dari server atau perangkat jaringan yang memiliki waktu CPU yang cukup konstan dan yang bukan kernel yang tidak berdetak atau yang memiliki mode hemat daya yang diaktifkan. Terutama hindari daemon garis cpuspeed atau speed govenor atau penghematan daya tingkat lanjut pada server NTP, bahkan jika mereka hanya strata 2 di peternakan Anda. Beberapa stabilitas dapat diperoleh dengan tidak pernah lebih dalam dari C-State 1, tetapi konsumsi daya Anda akan meningkat.

Saya juga mencoba memastikan bahwa orang-orang memilih beberapa server strata 1 yang berada di bawah 40 mil jauhnya dari tepi jaringan mereka, kemudian membaginya di server NTP tepi Anda dan memastikan bahwa tidak ada 2 server di belakang SNAT yang sama di jaringan Anda sedang berbicara ke server strata 1 yang sama. Sepanjang baris yang sama dengan burstitu, tidak bijaksana untuk memiliki beberapa server di belakang SNAT yang sama menggunakan server hulu yang sama, karena akan muncul bagi mereka bahwa Anda telah mengaktifkan burst bahkan ketika Anda belum.

Anda harus selalu menghormati kodpaket dari server hulu dan memiliki alat pemantauan yang memeriksa offset waktu dan jangkauan server hulu.

Anda mungkin ingin mempertimbangkan untuk memiliki sumber waktu akurat Anda sendiri di beberapa pusat data untuk diajak berteman atau mundur jika GPS SA diaktifkan oleh militer. Ada peralatan yang efektif biaya khusus untuk ini. Bahkan jika Anda berada di lingkungan "kandang" dan tidak memiliki pusat data sendiri, beberapa fasilitas hosting dapat mengakomodasi hal ini.

Harun
sumber
Stuggi sudah menyebutkan bahwa jaringan yang dimaksud memiliki 3 jam GPS.
Paul Gear
Iya nih. Saya secara khusus berbicara tentang menggunakan jam cesium lokal yang tidak akan hanyut jika GPS dinonaktifkan. Itu seharusnya hanya terjadi selama acara militer skala besar, tetapi Anda tidak pernah tahu.
Aaron
2

Lihat dokumen ketepatan waktu vmware di http://www.vmware.com/pdf/vmware_timekeeping.pdf

Menjalankan daemon NTP dalam VM mungkin bukan ide yang baik, terutama jika Anda membutuhkan waktu yang dapat diandalkan.

Nicholas Jeffrey
sumber
3
Meskipun bukan jawaban yang tepat, ini menimbulkan kekhawatiran yang valid ala "TL; DR: ya, ada masalah yang harus dihadapi terkait virtualisasi".
rackandboneman
Saya menyadari masalah-masalah yang perlu ditangani, saya lebih berpikir jika itu mungkin.
Stuggi
1
Re: "Menjalankan daemon NTP di VM mungkin bukan ide yang baik, terutama jika Anda membutuhkan waktu yang dapat diandalkan." - Saya tidak berpikir ini berlaku untuk hypervisor modern. Dokumen yang Anda tautkan secara spesifik mengatakan bahwa menggunakan NTP dalam VM adalah sebuah opsi. Grafik yang saya sertakan dalam respons saya menunjukkan bahwa VM dapat menjaga waktu dengan baik pada KVM, dan saya berharap sistem ESXi yang lebih baru melakukan hal yang sama.
Paul Gear