WireGuard mengirim data tetapi tidak menerima apa pun kembali: sisi mana?
Penghitung kirim yang naik menunjukkan arah, bukan diagnosis. Tentukan apakah permintaan tidak pernah keluar dari terowongan atau balasan tidak pernah kembali sebelum mengubah apa pun.
Penghitung kirim yang naik sementara penghitung terima tetap nol menggambarkan arah, bukan diagnosis. Pembacaan yang sama muncul ketika peer tidak pernah menyelesaikan jabat tangan, ketika tujuan memilih peer yang salah, ketika sisi jauh tidak punya rute kembali, dan ketika filter menjatuhkan balasan dalam perjalanan pulang. Masing-masing diperbaiki di tempat yang berbeda.
Perbandingan yang mempersingkat pekerjaan adalah antara permintaan yang tidak pernah meninggalkan terowongan dan balasan yang tidak pernah kembali. Satu tangkapan pada antarmuka yang tepat memutuskan di antara keduanya.
Penghitung menggambarkan volume, bukan arah gangguan
Penghitung WireGuard mencatat apa yang diserahkan antarmuka kepada peer dan apa yang diterimanya dari peer. Penghitung itu tidak menyebut tujuan, peer, atau separuh pertukaran mana yang gagal. Lalu lintas latar membuat totalnya makin tidak informatif, karena sebagian byte mungkin pesan penjaga koneksi atau aliran yang tidak terkait. Bacalah sebagai indikator bahwa antarmuka aktif, lalu berhenti memperlakukannya sebagai bukti.
Fakta pertama yang berguna adalah apakah jabat tangan masih berlaku. Tanpanya tidak ada yang dienkripsi untuk peer ini dan penghitung terima tidak punya alasan bergerak.
Pemilihan peer atau jalur balasan: dua penjelasan
Penjelasan pertama adalah paket tidak pernah mencapai peer yang dimaksud, karena rute menunjuk ke tempat lain atau prefiks yang diizinkan pada peer tidak mencakup tujuan. Penjelasan kedua adalah paket tiba dan balasan tidak bisa kembali, yang merupakan masalah perutean di ujung jauh. Tabel memisahkan keduanya menurut apa yang akan Anda amati di setiap titik.
| Observation | Points to |
|---|---|
| No handshake while transmit climbs | Peer selection or endpoint |
| Handshake current, request visible on the server | Reply path or far-side route |
| Request never visible on the server | Allowed prefixes or local route |
| Both packets visible, nothing reaches the client | Return filter or translation |
Bacalah tabel dari atas. Jabat tangan yang tidak ada mengarahkan Anda ke kunci, titik akhir, dan jalur luar, karena belum ada hal lain untuk diperiksa. Jabat tangan yang berlaku dengan permintaan terlihat di server memindahkan masalah ke arah balik, tempat tabel rute tujuan sendiri yang memutuskan. Permintaan yang tidak pernah muncul di server adalah masalah pemilihan, dan prefiks yang diizinkan pada kedua peer adalah hal pertama yang harus dibandingkan.
Dua dari empat baris itu diperbaiki di klien dan dua di server. Mengetahui pasangan mana yang Anda hadapi adalah sebagian besar pekerjaannya.
Ke mana balasan menghilang
Balasan meninggalkan tujuan, mencapai antarmuka terowongan server, dan dienkripsi untuk peer yang alamat diizinkannya cocok dengan alamat dalam klien. Jika pencocokan itu gagal, balasan dibuang tanpa suara, yang dari sisi klien tampak persis seperti gangguan jaringan. Jika balasan terenkripsi dan filter milik klien sendiri menolaknya, gejalanya kembali sama. Kedua kasus membutuhkan tangkapan, bukan penghitung.
Bentuk terkuat dari kesalahan ini adalah server yang meneruskan paket untuk klien tetapi tidak punya rute kembali ke rentang dalam klien. Server menerima permintaan, mengirim balasan ke gateway bawaannya, dan terowongan tidak pernah melihatnya. Aturan terjemahan yang lebar yang ditambahkan pada server menyembunyikan gangguan itu alih-alih memperbaiki rutenya.
Uji satu tujuan dari ujung ke ujung
Pilih satu tujuan di dalam rentang peer, dan ujilah selagi jabat tangan terbukti masih berlaku. Perintah di bawah membaca keadaan peer, rute yang dipilih, dan kedua sisi pertukaran. Jalankan tangkapan pada antarmuka yang benar-benar dipakai paket terenkripsi.
wg show wg0 latest-handshakes
wg show wg0 transfer
ip route get 10.60.9.5
sudo tcpdump -ni wg0 host 10.60.9.5
Tangkapan yang menunjukkan permintaan pada antarmuka terowongan tanpa apa pun kembali adalah jawaban dari sisi server, dan tabel rute tujuan adalah tempat berikutnya yang perlu dilihat. Jika sama sekali tidak ada yang muncul, paket mengambil jalur lain, jadi rute lokal adalah tersangkanya. Pertukaran yang terlihat di kedua tangkapan tanpa kemajuan di aplikasi memindahkan pertanyaan ke ukuran paket atau ke filter yang tidak pernah ditampilkan statistik antarmuka. Pertahankan satu tujuan dan satu klien dalam pengujian, karena variabel kedua mengubah bukti kembali menjadi kesan.
Jika nama gagal sementara alamat yang diizinkan berfungsi, jawabannya ada di DNS dan bukan di terowongan. Jika hanya transfer besar yang mandek, periksa ukuran paket secara terpisah.