Keepalive bukan koneksi ulang: pilih berdasarkan kegagalan yang Anda alami
Satu paket menjaga pemetaan tetap hidup; koneksi ulang membangun kembali hubungan. Cocokkan mekanisme dengan kegagalan, lalu verifikasi dengan permintaan nyata.
Keepalive dan koneksi ulang dikonfigurasi dalam satu tarikan napas tetapi menyelesaikan masalah berbeda, karena itu menyetel yang satu jarang memperbaiki yang lain. Keepalive mengirim lalu lintas kecil untuk menjaga entri status tetap hidup atau untuk menyadari bahwa peer berhenti menjawab. Koneksi ulang merobohkan apa yang rusak dan membangun kembali hubungan, termasuk kunci, alamat, dan rute. Pilih mekanisme yang cocok dengan kegagalan, bukan yang kenopnya sudah Anda kenal. Dua pertanyaan memutuskannya: apakah jalurnya mati, atau ada sesuatu di antara peer yang melupakannya?
Saat pemetaan menjadi masalah
Tunnel yang mati hanya setelah beberapa menit hening biasanya kehilangan entri terjemahan, bukan peer. Opsi PersistentKeepalive pada WireGuard ada untuk status NAT dan firewall, dan catatan proyek sendiri menggambarkannya seperti itu, bukan sebagai pemeriksaan kesehatan. Interval beberapa puluh detik menjaga entri tetap hangat, sedangkan paket tiap detik adalah keputusan baterai dan bukan keputusan keandalan. OpenVPN tiba di tempat yang sama melalui ping dan ping-restart , yang lebih dulu menyadari keheningan lalu bertindak atasnya.
Pengaturan itu juga tidak dapat dipertukarkan antarprotokol. Kebijakan peer mati IKEv2, pengatur waktu ping OpenVPN, dan keepalive WireGuard menjawab pertanyaan yang sama dengan tiga sintaksis dan tiga nilai bawaan berbeda, jadi menyalin angka di antaranya adalah dugaan yang berbusana penyetelan.
Saat hubungannya sudah hilang
Jika peer berganti alamat, kredensial kedaluwarsa, atau ujung jauh dimulai ulang, paket kecil bukanlah perbaikannya. Koneksi ulang harus membangun ulang status : memperoleh alamat, memasang ulang rute, menegosiasikan ulang kunci, dan pada sebagian penerapan mengautentikasi ulang pengguna.
Klien yang menyambung ulang tanpa pengawasan menyimpan sertifikat atau rahasia tersimpan. Klien yang akan bertanya kepada manusia gagal tepat ketika tidak ada orang, dan itulah skenario ketika koneksi ulang menjadi penting. Itu pilihan desain yang dibuat berbulan-bulan sebelumnya, bukan pengaturan yang bisa Anda ubah saat gangguan.
Apa yang keduanya tidak buktikan
Tunnel bisa tersambung ulang, berkunci, dan berute sementara layanan di belakangnya mati, dan keepalive bisa menahan pemetaan tetap terbuka untuk sesi yang servernya sudah hilang berjam-jam. Kedua mekanisme bisa melaporkan keberhasilan sementara hal yang benar-benar Anda pedulikan tidak tersedia.
Karena itu ujian berakhir pada permintaan nyata. Kirim sesuatu melalui tunnel setelah interval yang Anda pedulikan, lalu picu secara terpisah kegagalan yang Anda rancang: periode diam untuk kasus pemetaan, mulai ulang atau perubahan alamat untuk kasus koneksi ulang.
Memblokir lalu lintas langsung adalah keputusan terpisah
Loop koneksi ulang bisa sepenuhnya sehat sementara aplikasi diam-diam memakai rute biasa, dan itu kebocoran, bukan kegagalan. Jika syaratnya tidak ada yang keluar di luar tunnel, katakan itu secara eksplisit dalam konfigurasi klien dan buktikan dengan menurunkan tunnel dan melihat apa yang masih terhubung. Tidak ada mekanisme yang menyiratkan perilaku itu, dan tidak ada disiplin percobaan ulang yang menetapkannya.
Catat mekanisme mana yang berjalan dan apakah permintaan baru berhasil setelahnya. Kedua fakta itulah yang dibutuhkan insinyur berikutnya, dan keduanya tidak terlihat di ikon status. Baris log yang menyatakan klien tersambung ulang tidak sama dengan permintaan yang berhasil.
Tulis kebijakannya, bukan hanya angkanya
Letakkan pasangan itu dalam satu kalimat: interval diam, ambang kelangsungan, apa yang memicu pembangunan ulang , dan apa yang dilakukan klien selama mencoba ulang. Tanpa kalimat itu, setiap insiden mendatang membuka lagi perdebatan yang sama tentang apakah keepalive terlalu pendek atau koneksi ulang terlalu lambat.
Catatan WireGuard tentang batasan adalah pengingat berguna bahwa keepalive adalah akal-akalan untuk kotak perantara, bukan rancangan kelangsungan umum. Baca batasan itu sebelum menaikkan frekuensi sebagai jawaban atas masalah yang tidak dapat diatasinya.