Satu naik, nol menghubungkan: apa yang dihitung baris strongSwan itu
Judul lama menghitung asosiasi IKE, bukan subnet atau SA anak, jadi baca dulu definisi yang dimuat dan anak yang terpasang.
Baca baris status yang berbunyi Security Associations (1 up, 0 connecting) dan itu tampak seperti laporan tentang satu terowongan yang bekerja. Dua subnet mengalirkan lalu lintas melaluinya pada saat yang sama, jadi angkanya tampak berbohong. Itu tidak berbohong; itu menghitung asosiasi IKE, dan salah satunya dapat menampung beberapa anak. Baca inventarisnya sebelum Anda menyentuh proposal atau rute.
Mengapa judul dan lalu lintas tidak cocok
Keluaran stroke lama menyebut totalnya asosiasi keamanan dan menurunkannya dari manajer asosiasi IKE. Setiap asosiasi IKE yang terbentuk menyumbang satu, berapa pun CHILD SA yang berada di bawahnya. Satu induk IKEv2 biasanya membawa beberapa anak, satu per pasangan pemilih lalu lintas, dan pemilih yang dinegosiasikan seorang anak dapat mencakup lebih dari satu alamat atau prefiks. Jadi jumlah alamat dalam konfigurasi Anda tidak memiliki hubungan tetap dengan angka di judul.
Keluaran modern kadang menampilkan total alih-alih istilah lama “up”, dan daemon yang dikelola swanctl sama sekali tidak digerakkan oleh pengaturan stroke lama. Jangan menganggap pasti baik istilah maupun aturan penghitungannya antarversi.
Bandingkan tiga inventaris sebelum mengubah apa pun
Mulailah dari apa yang dimuat, lalu apa yang dinegosiasikan, lalu apa yang benar-benar memindahkan paket. Itu tiga pertanyaan berbeda dan masing-masing punya perintahnya sendiri.
swanctl --list-conns
swanctl --list-sas
Yang pertama mendaftar definisi koneksi yang diterima daemon. Yang kedua mendaftar asosiasi IKE yang terbentuk beserta anak-anaknya, dan di situlah hierarki sebenarnya muncul. Definisi yang ada di berkas tetapi tidak ada di daftar pertama tidak pernah dimuat, dan berapa pun percobaan ulang dari inisiator tidak akan memperbaikinya. Jika Anda menjalankan antarmuka lama, pasangan yang setara adalah ipsec statusall dan daftar swanctl yang sama, tergantung plugin mana yang memiliki konfigurasi. Jangan mencampur perkakas antara dua daemon pada satu host dan berharap satu jawaban yang koheren.
swanctl --list-sas --raw | head -40
ip -s xfrm state
Bentuk mentah menjaga pengenal dan pemilih tetap terlihat untuk perbandingan, dan daftar status kernel menunjukkan apa yang dianggap sudah dipasang oleh tumpukan. Ketika daemon dan kernel tidak sepakat, entah daemon dimulai ulang di sekitar anak yang sudah ada atau objek kernel dihapus di bawahnya.
Baca hierarkinya, bukan totalnya
Induk terbentuk yang ilustratif dengan dua anak tampak seperti satu simpul dengan dua anak di bawahnya, masing-masing diberi label status dan modenya sendiri. Buang keluaran sebenarnya dan hitung anaknya sendiri alih-alih membaca ringkasan yang ditempel seseorang dari dasbor.
swanctl --list-sas
swanctl --list-conns --raw | grep -A4 'accounting'
Satu induk dengan dua anak terpasang adalah terowongan dua subnet yang sehat. Satu induk dengan satu anak terpasang dan satu anak tidak ada adalah situasi lain, dan pemilih anak yang hilang adalah hal yang harus dibandingkan dengan proposal sisi jauh. Selama pembaruan kunci, anak lama dan penggantinya dapat muncul bersamaan untuk jendela singkat. Simpan stempel waktu bersama cuplikan, karena hitungan yang diambil di tengah pembaruan tampak seperti duplikasi dan hitungan setelahnya tampak seperti kehilangan.
Dimuat, terpasang, dan lalu lintas yang lewat
Anak dalam keadaan terpasang memiliki parameter yang dinegosiasikan dan entri kernel. Tetapi belum tentu membawa paket: pemilih bisa lebih sempit daripada lalu lintas yang Anda harapkan, dan rute dapat mengirim lalu lintas itu ke tempat lain sebelum terowongan melihatnya. Kirim aliran yang cocok dengan pemilih yang dinegosiasikan dari host yang diizinkan, lalu baca penghitung anak alih-alih judul. Penghitung yang tetap nol saat Anda menghasilkan lalu lintas yang cocok menunjuk ke perutean atau kebijakan, bukan ke IKE.
swanctl --initiate --child accounting
swanctl --list-sas --raw | grep -E 'bytes|packets'
Memulai anak bernama adalah tindakan sengaja dengan hasil yang terlihat, dan itu memisahkan “koneksi menganggur karena tidak ada yang meminta” dari “koneksi tidak dapat naik”. Kebijakan jebakan sesuai permintaan berperilaku persis seperti kasus pertama, jadi baca pengaturan inisiasi koneksi sebelum menyebutnya kesalahan.
Ketika hitungannya benar-benar salah
Jika definisi hilang dari inventaris yang dimuat, lihat pemuatan konfigurasi dan instans daemon mana yang berjalan. Jika dimuat tetapi tidak pernah bernegosiasi, bandingkan proposal, konteks autentikasi, dan pemilih dengan rekan, satu anak setiap kali. Ubah satu elemen per percobaan dan catat pengenal yang Anda ubah. Mengembalikan proposal itu sepele bila Anda tahu yang mana; itu tebakan setelah tiga suntingan yang tidak pernah dipisahkan.
Perbaiki dulu salah bacanya. Sebagian besar laporan tentang terowongan kedua yang “hilang” berakhir dengan dua anak terpasang di bawah satu induk, dan satu-satunya hal yang pernah rusak adalah baris ringkasan yang dipercaya orang alih-alih hierarkinya.