keepalive OpenVPN atau restart systemd: mana yang memulihkan?
Rekan diam, proses mati, dan aplikasi tak terpakai adalah tiga kegagalan berbeda. Beri keepalive kepada OpenVPN, proses kepada systemd, dan uji setiap kasus.
Tiga hal berbeda bisa salah pada sebuah terowongan, dan ketiganya menuntut tiga reaksi berbeda. Rekan berhenti menjawab, proses daemon mati, atau aplikasi di balik terowongan berhenti melayani. Konfigurasi yang memulai ulang layanan pada salah satunya bukan pengawasan yang cermat; itu satu tindakan kasar yang diterapkan pada kegagalan yang tidak berkaitan. Membandingkan apa yang benar-benar dapat diamati tiap mekanisme membuat pembagian kerja menjadi jelas.
Tiga kegagalan yang tampak seperti satu
Diamnya rekan berarti ujung lain berhenti mengirim, dan OpenVPN dapat mendeteksinya sendiri karena memiliki detak jantung. Kematian proses berarti daemon keluar, yang dicatat manajer layanan dan tidak bisa dicatat OpenVPN. Kegagalan aplikasi berarti terowongan baik-baik saja dan sesuatu di baliknya tidak, dan tidak satu pun dari dua mekanisme lain punya cara untuk mengetahuinya. Masing-masing butuh reaksi berbeda, dan tidak satu pun sama dengan menyadari bahwa terowongan hidup.
Ini sinyal berbeda dari lapisan berbeda, dan masing-masing punya pemilik yang dapat bertindak tanpa menebak. Mencampurnya menghasilkan sistem yang memulai ulang pada gejala yang tidak dapat ditafsirkannya.
Tuliskan ketiga kasus sebelum mengubah pengatur waktu apa pun. Daftarnya sendiri biasanya menunjukkan bahwa satu mekanisme diminta menutupi ketiganya.
Ke apa keepalive sebenarnya berkembang
Direktif keepalive adalah singkatan, dan pengembangannya berbeda menurut mode. Di server, keepalive 10 60 menjadi ping lokal tiap sepuluh detik, batas waktu mulai ulang lokal 120 detik, dan nilai 10 serta 60 yang dikirim ke klien. Batas waktu server sengaja digandakan agar klien mendapat kesempatan memulai ulang sebelum server menyerah. Bacalah bentuk yang diperluas di konfigurasi yang berjalan, bukan singkatan di profil.
Penggandaan itulah sebabnya setiap penjelasan yang menyatakan kedua ujung memulai ulang setelah enam puluh detik salah. Itu juga menjelaskan mengapa kedua ujung tidak berayun serempak ketika jalur memburuk.
Detak jantung adalah lalu lintas rekan OpenVPN, bukan pemeriksaan ICMP ke host publik. Balasan hanya membuktikan ujung jauh terowongan hidup. Itu tidak mengatakan apa pun tentang basis data atau layanan web yang benar-benar dibutuhkan pengguna.
Apa yang tidak dipantau Restart=on-failure
Bacalah unit yang terpasang sebelum menambahkan penimpaan. Restart=on-failure merespons kondisi kegagalan proses yang terdokumentasi, yang tidak sama dengan memantau status koneksi. Itu tidak terpicu karena penyambungan ulang internal dimulai, dan keluar dengan bersih memiliki makna berbeda dari crash.
Pembedaan itu penting karena mulai ulang internal menjaga proses yang sama tetap hidup. Unit tidak melihat apa pun, terowongan pulih sendiri, dan itulah hasil yang benar.
Atur RestartSec dan batas mulai secara sengaja, atau putaran crash akan menghantam gateway dan mengubur kesalahan sebenarnya di bawah pesan mulai ulang. Batas mulai ulang yang terpicu meninggalkan unit dalam keadaan gagal, yang terlihat, sedangkan putaran tanpa batas tidak.
ping-restart dan ping-exit tidak dapat dipertukarkan
ping-restart memicu mulai ulang internal OpenVPN dan mempertahankan proses. ping-exit mengakhiri proses pada jenis batas waktu yang sama, yang menyerahkan keputusan kepada manajer layanan. Keduanya saling meniadakan, dan memilih yang kedua mengubah siapa pemilik pemulihan. Perbedaannya adalah siapa yang memutuskan mencoba lagi, dan berapa banyak status yang bertahan dari upaya itu.
Jika Anda memilih keluar pada batas waktu, unit memerlukan kebijakan mulai ulang dan penanganan status keluar yang cocok, atau kegagalan keaktifan tampak seperti penghentian permanen. Opsi persistensi juga dapat mempertahankan antarmuka dan rute selama mulai ulang internal tetapi tidak selama proses keluar.
Pilih satu siklus hidup per penerapan dan tuliskan alasannya. Profil yang membawa kedua direktif adalah profil yang belum memutuskan.
Uji setiap kegagalan sebagai kasusnya sendiri
Simulasikan rekan diam, daemon yang dibunuh, dan aplikasi yang tidak tersedia dalam jendela yang disetujui, lalu periksa pemulihan mana yang terpicu. Rekan diam seharusnya menghasilkan penyambungan ulang internal, proses yang dibunuh memulai ulang unit, dan gangguan aplikasi tidak keduanya. Ketika dua kasus menghasilkan tindakan yang sama, kepemilikannya masih bercampur.
Pemulihan berulang juga bukan perbaikan. Kredensial yang ditolak atau dua klien yang berbagi nama efektif akan terus saling menggantikan, dan pengatur waktu yang lebih cepat hanya membuat ayunan itu lebih cepat.