Satu naik, sifar menyambung: apa yang dikira baris strongSwan itu
Tajuk lama mengira persatuan IKE, bukan subnet atau SA anak, jadi baca dahulu definisi yang dimuatkan dan anak yang dipasang.
Baca baris status yang berkata Security Associations (1 up, 0 connecting) dan ia kelihatan seperti laporan tentang satu terowong yang berfungsi. Dua subnet menghantar trafik melaluinya pada masa yang sama, jadi nombor itu kelihatan seperti berbohong. Ia tidak berbohong; ia mengira persatuan IKE, dan salah satunya boleh menempatkan beberapa anak. Baca inventori sebelum anda menyentuh cadangan atau laluan.
Mengapa tajuk dan trafik tidak sepadan
Keluaran stroke lama menamakan jumlahnya persatuan keselamatan dan memperolehnya daripada pengurus persatuan IKE. Setiap persatuan IKE yang terbentuk menyumbang satu, tidak kira berapa banyak CHILD SA di bawahnya. Satu induk IKEv2 biasanya membawa beberapa anak, satu bagi setiap pasangan pemilih trafik, dan pemilih yang dirundingkan oleh anak boleh meliputi lebih daripada satu alamat atau awalan. Jadi bilangan alamat dalam konfigurasi anda tidak mempunyai hubungan tetap dengan nombor dalam tajuk.
Keluaran moden kadangkala menunjukkan jumlah dan bukannya istilah lama “up”, dan daemon yang diuruskan swanctl sama sekali tidak dipandu oleh tetapan stroke lama. Jangan anggap pasti sama ada istilah itu mahupun peraturan pengiraan antara versi.
Bandingkan tiga inventori sebelum mengubah apa-apa
Mulakan dengan apa yang dimuatkan, kemudian apa yang dirundingkan, kemudian apa yang benar-benar menggerakkan paket. Itu tiga soalan berbeza dan setiap satu mempunyai perintahnya sendiri.
swanctl --list-conns
swanctl --list-sas
Yang pertama menyenaraikan definisi sambungan yang diterima oleh daemon. Yang kedua menyenaraikan persatuan IKE yang terbentuk bersama anak-anaknya, dan di situlah hierarki sebenar muncul. Definisi yang ada dalam fail tetapi tiada dalam senarai pertama tidak pernah dimuatkan, dan berapa kali pun pemula mencuba semula tidak akan membaikinya. Jika anda menjalankan antara muka lama, pasangan yang setara ialah ipsec statusall dan senarai swanctl yang sama, bergantung pada pemalam mana yang memiliki konfigurasi. Jangan campurkan alat antara dua daemon pada satu hos dan jangan harap satu jawapan yang koheren.
swanctl --list-sas --raw | head -40
ip -s xfrm state
Bentuk mentah mengekalkan pengecam dan pemilih kelihatan untuk perbandingan, dan senarai status kernel menunjukkan apa yang difikirkan oleh tindanan telah dipasang. Apabila daemon dan kernel tidak bersetuju, sama ada daemon dimulakan semula di sekeliling anak yang sedia ada atau objek kernel dikeluarkan di bawahnya.
Baca hierarki, bukan jumlah
Induk terbentuk contoh dengan dua anak kelihatan seperti satu nod dengan dua anak di bawahnya, setiap satu dilabel dengan keadaan dan modnya sendiri. Buang keluaran sebenar dan kira anak itu sendiri daripada membaca ringkasan yang ditempel seseorang daripada papan pemuka.
swanctl --list-sas
swanctl --list-conns --raw | grep -A4 'accounting'
Satu induk dengan dua anak yang dipasang ialah terowong dua subnet yang sihat. Satu induk dengan satu anak dipasang dan satu anak tiada ialah situasi lain, dan pemilih anak yang hilang ialah perkara yang perlu dibandingkan dengan cadangan pihak jauh. Semasa pembaharuan kunci, anak lama dan penggantinya boleh muncul bersama untuk seketika. Simpan cap masa dengan petikan, kerana kiraan yang diambil di tengah-tengah pembaharuan kelihatan seperti pertindihan dan kiraan selepasnya kelihatan seperti kehilangan.
Dimuatkan, dipasang dan trafik yang melaluinya
Anak dalam keadaan dipasang mempunyai parameter yang dirundingkan dan entri kernel. Tetapi ia belum tentu membawa paket: pemilih boleh lebih sempit daripada trafik yang anda jangkakan, dan laluan boleh menghantar trafik itu ke tempat lain sebelum terowong melihatnya. Hantar aliran yang sepadan dengan pemilih yang dirundingkan dari hos yang dibenarkan, kemudian baca pembilang anak itu dan bukannya tajuk. Pembilang yang kekal sifar semasa anda menjana trafik yang sepadan menunjuk kepada penghalaan atau dasar, bukan IKE.
swanctl --initiate --child accounting
swanctl --list-sas --raw | grep -E 'bytes|packets'
Memulakan anak bernama ialah tindakan sengaja dengan hasil yang kelihatan, dan ia memisahkan “sambungan melahu kerana tiada siapa memintanya” daripada “sambungan tidak boleh naik”. Dasar perangkap atas permintaan berkelakuan sama seperti kes pertama, jadi baca tetapan permulaan sambungan sebelum menyebutnya kerosakan.
Apabila kiraan itu benar-benar salah
Jika definisi hilang daripada inventori yang dimuatkan, lihat pemuatan konfigurasi dan contoh daemon mana yang berjalan. Jika ia dimuatkan tetapi tidak pernah berunding, bandingkan cadangan, konteks pengesahan dan pemilih dengan rakan, satu anak pada satu masa. Tukar satu elemen setiap percubaan dan catat pengecam yang anda tukar. Mengembalikan cadangan itu remeh apabila anda tahu yang mana; ia tekaan selepas tiga suntingan yang tidak pernah dipisahkan.
Betulkan dahulu salah bacaan itu. Kebanyakan laporan tentang terowong kedua yang “hilang” berakhir dengan dua anak dipasang di bawah satu induk, dan satu-satunya perkara yang pernah rosak ialah baris ringkasan yang dipercayai orang dan bukannya hierarki.