SA anak IPsec aktif, tetapi penghitung paketnya tetap nol
Penghitung paket nol pada SA anak yang terpasang biasanya berarti tidak ada yang cocok dengannya. Lacak satu aliran yang dipatok melalui penghitung, rute, selektor, dan asal.
Anda sudah menaikkan terowongan, pengatur waktu rekey sedang menghitung mundur, dan kedua arah masih membaca nol paket. Pasangan angka itu tidak mengatakan bahwa peer menolak terowongan Anda: CHILD SA yang terpasang dengan penghitung diam adalah keadaan normal sebuah asosiasi yang belum cocok dengan apa pun. Tugasnya adalah membuktikan bahwa sebuah paket seharusnya cocok, lalu menemukan titik tempat paket itu meninggalkan jalur yang dijelaskan oleh selektor. Lakukan sekali, berurutan, dan jaga permintaan tetap identik antar-eksekusi.
Apa yang sebenarnya dibuktikan penghitung nol
CHILD SA adalah sepasang selektor ditambah kunci dan SPI yang mengenkripsi lalu lintas yang jatuh di dalam rentang tersebut. Memasangnya hanya berarti kedua peer sepakat tentang rentang itu dan kunci turunannya; kernel akan menyimpannya berjam-jam tanpa satu paket pun datang. Jadi pertanyaannya bukan pernah apakah terowongan itu ada, melainkan apakah ada paket dari pengujian Anda yang jatuh di dalam rentang yang dinegosiasikan kedua peer. Jika tidak ada, penghitung tetap nol dan asosiasi berakhir tanpa terpakai pada akhir masa hidupnya.
Perbedaan itu mengubah apa yang Anda periksa lebih dulu. Proposal yang ditolak, kegagalan autentikasi, atau IKE SA yang sekarat semuanya muncul di log atau di daftar SA, bukan sebagai nol yang senyap. Terowongan yang bernegosiasi bersih lalu menganggur justru menunjuk ke pencocokan, perutean, atau asal lalu lintas uji.
Kirim aliran yang dapat Anda jelaskan sebelum mengirimnya
Pilih tujuan di dalam subnet yang dilindungi dan buka koneksi baru ke sana; halaman yang Anda muat satu jam lalu mungkin disajikan dari cache, dan balasan dari cache tidak pernah menyentuh terowongan. Lalu catat empat nilai selagi permintaan masih hipotetis: alamat sumber yang akan diikat aplikasi, tujuan, keluarga alamat, dan nama atau pasangan selektor anak yang Anda amati. Catatan itulah yang mengubah penghitung datar menjadi klaim yang dapat diuji.
Alamat sumber adalah nilai yang orang lewati, dan itulah yang paling sering menggagalkan pengujian. Laptop dengan alamat kabel, alamat Wi-Fi, dan alamat terowongan dapat mengikat salah satunya tergantung pencarian rute, dan hanya satu yang mungkin berada di dalam rentang yang dinegosiasikan. Gunakan alat yang memungkinkan Anda mematok sumber, seperti ping -I 10.1.0.5 10.2.0.9 atau curl --interface 10.1.0.5, agar paket tidak diam-diam memilih alamat lain. Ketika eksekusi yang dipatok menggerakkan penghitung dan yang tidak dipatok tidak, Anda menemukan masalah perutean, bukan masalah IPsec.
Angka mana yang dibaca, dan di mana mereka tinggal
Di Linux ip -s xfrm state mencetak setiap asosiasi dengan baris lifetime current: yang total byte dan paketnya hanya milik SA itu, diikuti baris stats: untuk penghitung pengulangan dan galat. Pada peer strongSwan, swanctl --list-sas menampilkan satu baris in dan satu baris out per anak yang terpasang, masing-masing berakhir dengan jumlah byte dan jumlah paket; alat stroke yang lebih lama menyebut pasangan yang sama bytes_i dan bytes_o. Baca kedua arah secara terpisah, karena arah yang tetap datar itulah temuannya. Menjumlahkannya justru menyembunyikan asimetri yang Anda cari.
Kedua tampilan bersifat per asosiasi, jadi rekey memasang pasangan SPI baru dan garis dasar Anda kembali ke nol tanpa ada yang rusak. Catat SPI yang Anda amati sebelum pengatur waktu rekey berbunyi, atau Anda akan membandingkan SA baru dengan angka lama. Jika keluar naik sementara masuk tetap datar, selektor cocok dan balasan tidak pernah kembali, yang memindahkan penyelidikan ke penerusan peer dan kebijakannya sendiri. Dokumentasi konfigurasi IKEv2 strongSwan mencakup siklus hidup SA anak dan waktu rekey di balik angka-angka itu.
Titik pengamatan adalah variabel terpisah dari asal paket. Offload perangkat keras dapat menaikkan penghitung asosiasi sementara tangkapan perangkat lunak di antarmuka tidak menunjukkan apa pun, karena paket yang di-offload melewati kait tempat tangkapan berada, dan sisi masuk dapat menyimpang dengan cara yang sama. Ketika keduanya tidak sepakat, gunakan penghitung untuk menjawab apakah ada yang cocok dan tangkapan untuk menjawab seperti apa paket itu.
Rute, selektor, dan dari mana paket lahir
Bandingkan tiga hal berdampingan: rute yang dipilih kernel untuk tujuan Anda, kebijakan yang mengarahkan lalu lintas ke terowongan, dan pasangan selektor yang dinegosiasikan anak. ip route get 10.2.0.9 from 10.1.0.5 menyebut antarmuka dan sumber yang akan digunakan kernel, dan itu sering bukan pasangan yang Anda asumsikan. ip xfrm policy menampilkan templat dan selektor yang terpasang secara lokal, sedangkan swanctl --list-sas menampilkan apa yang disetujui peer. Pencarian yang mengirim paket keluar melalui antarmuka fisik tidak pernah mencapai kebijakan, sehingga penghitung tidak dapat bergerak.
Ketidakcocokan datang dalam beberapa bentuk yang dari penghitung terlihat sama. Tujuan IPv6 di luar selektor IPv4, alamat sumber dari subnet yang salah, dan kebijakan yang lebih sempit daripada anak semuanya menghasilkan nol yang sama. Perbaiki penyebab tersempit lebih dulu, karena melebarkan selektor hanya untuk menggeser angka mengubah apa yang dilindungi terowongan.
Lalu ada asal paket, jebakan yang dipasang gateway untuk operatornya sendiri. Lalu lintas yang dihasilkan gateway sendiri dicocokkan dengan kebijakan keluar, sedangkan paket yang diteruskannya untuk klien dicocokkan dengan kebijakan penerusan, jadi ping dari kotak itu bisa berhasil pada jalur yang tidak pernah diambil klien mana pun.
Satu perubahan yang dapat dibalik dan laporan yang tahan tinjauan
Ubah satu elemen, ulangi permintaan yang identik, dan baca penghitung yang sama. Menghapus semua aturan firewall atau mengganti semua selektor sekaligus akan menggeser angka dan menghancurkan bukti yang memberi tahu Anda sebabnya. Jika eksekusi kedua masih menunjukkan nol, Anda telah menyingkirkan satu hipotesis alih-alih membuang sore hari.
Tulis temuan dalam bentuk yang dapat direproduksi orang lain: nama anak, rentang yang diterima, sumber yang Anda patok, tujuan yang Anda uji, arah yang tetap nol, dan SPI yang Anda baca. Kalimat itu memisahkan asosiasi yang tidak dipakai siapa pun dari aplikasi jarak jauh yang menerima lalu lintas dan menolaknya. Kembalikan perubahan ketika tidak menggerakkan penghitung, dan simpan catatannya; orang berikutnya mulai dari tempat Anda berhenti. Tidak ada yang perlu dibangun ulang di terowongan untuk semua ini, dan itulah inti dari memeriksa pencocokan sebelum menyentuh konfigurasi.