Handshake hidup, alamat hilang: tiga keadaan WireGuard
Handshake baru membuktikan peer menjawab, bukan bahwa antarmuka mempertahankan alamatnya atau bahwa paket berikutnya lewat uplink yang dimaksud.
WireGuard dapat memegang handshake baru dan tidak punya alamat pada saat yang sama, dan keadaan itu koheren, bukan bertentangan. Handshake adalah peristiwa peer, alamat milik antarmuka, dan rute menentukan uplink mana yang dipakai paket untuk keluar. Tiga lapisan, tiga pemilik, dan masing-masing bisa gagal sementara dua lainnya tampak sehat.
Membacanya sebagai satu status itulah yang mengubah diagnosis dua menit menjadi sepanjang sore menyalakan ulang layanan.
Handshake adalah peristiwa peer, bukan peristiwa pengalamatan
Handshake WireGuard membuktikan bahwa peer yang dikonfigurasi menjawab dengan kunci yang sah dan kunci sesi masih berlaku. Ia tidak mengatakan apa pun tentang alamat lokal pada antarmuka, dan tidak pula apakah ada rute yang menunjuk ke sana. Alamat diberikan oleh pembantu atau manajer jaringan, sedangkan konfigurasi protokol hanya menamai peer dan kunci. Mencampuradukkan keduanya adalah cara handshake yang sehat dibaca sebagai terowongan yang bekerja.
Karena itu wg show dapat melaporkan handshake berusia beberapa detik pada antarmuka yang tidak dapat menerima satu paket pun dari aplikasi.
Manajer yang membuat ulang antarmuka dapat menjatuhkan alamat tanpa menyentuh konfigurasi peer, dan handshake berikutnya berhasil seketika karena kuncinya tidak pernah berubah. Baris log tentang handshake yang berhasil akurat dan tidak relevan dengan kegagalan.
| Observation | Which layer it belongs to | Wrong conclusion it invites |
|---|---|---|
| Handshake a few seconds old | Peer and keys | The tunnel is usable for application traffic |
Address present on wg0 | Interface configuration | Traffic actually egresses through it |
Route points at wg0 | Forwarding table | The outer packet uses the intended uplink |
Alamat antarmuka punya pemiliknya sendiri
Alamat pada perangkat terowongan dapat berasal dari baris Address milik pembantu, dari klien DHCP yang berjalan pada antarmuka, atau dari daemon manajemen yang membuatnya saat terhubung. Apa pun itu, komponen itulah yang memiliki alamat dan akan memulihkannya atau tidak menurut logikanya sendiri. Membaca alamat tanpa menyebut pemiliknya membuat Anda tak mampu menjelaskan mengapa alamat itu lenyap.
Dua pemilik pada satu antarmuka adalah kegagalan klasik. Menjalankan pembantu dan manajer jaringan desktop pada perangkat yang sama menghasilkan perlombaan di mana yang satu menghapus apa yang baru saja dikonfigurasi yang lain, dan titik akhir tetap menjawab sepanjang waktu.
Pilih satu pemilik dan biarkan alat lain mengamati alih-alih mengelola. Keputusan itu layak ditulis, karena gejalanya muncul berminggu-minggu kemudian dan tampak seperti kehilangan alamat secara acak.
Rute memilih uplink, bukan antarmuka
Rute internal yang menunjuk ke wg0 memutuskan bahwa lalu lintas masuk ke terowongan. Keputusan terpisah mengirim paket luar yang terenkripsi menuju peer, dan pada host dengan beberapa uplink keputusan itu datang dari tabel penerusan dan aturan kebijakan. Perayauan Wi-Fi dapat mengubah jalur luar tanpa menyentuh alamat dalam.
Jadi terowongan yang bekerja dan peer yang tak terjangkau adalah keadaan yang serasi, begitu pula peer yang benar dan rute internal yang rusak. Ketiga pengamatan harus diambil bersama, pada saat yang sama, atau perbandingannya tak bermakna.
Bandingkan ketiga keadaan dalam satu lintasan
Tiga perintah hanya-baca menjawab ketiga pertanyaan dalam urutan yang paling cepat mengisolasi kegagalan. Jalankan tanpa mengubah apa pun di antaranya.
ip address show dev wg0
ip route get 10.80.0.1
wg show wg0 latest-handshakes transfer
Yang pertama menunjukkan apakah antarmuka punya alamat sama sekali, dan yang kedua menunjukkan perangkat mana yang akan dipakai tujuan tertentu saat ini. Yang ketiga melaporkan waktu handshake terakhir dan penghitung bita, dan hanya itu dari ketiganya yang menggambarkan peer, bukan host lokal.
Baca penghitungnya maupun stempel waktunya. Handshake yang terus diperbarui sementara transfer tetap datar berarti peer menjawab tetapi tidak ada hal berguna yang menyeberang, yang menunjuk ke perutean atau ACL, bukan ke kunci. Stempel waktu yang berhenti maju padahal alamat ada justru menunjuk ke arah hulu. Kedua bacaan berasal dari baris keluaran yang sama, dan tak satu pun terlihat jika Anda hanya memeriksa keberadaan handshake.
Perbaiki keadaan spesifik yang salah, lalu uji ulang aplikasinya, bukan terowongannya. Handshake baru adalah bukti tentang peer, dan bukti tentang peer bukan bukti bahwa permintaan berikutnya dari peramban Anda akan menemukan alamat, rute, dan uplink yang bekerja. panduan wg-quick menyatakan dengan jelas mana di antaranya yang disiapkan pembantu dan mana yang milik protokol.