Masofaviy shlyuz qayta ishga tushadi, bir daqiqada qaytadi, mahalliy strongSwan daemoni esa ishlashda davom etadi, tunnel hali ham pastda. ESTABLISHEDni grep qilib, daemonni qayta ishga tushiruvchi cron ishi oxir-oqibat buni yopib qo‘yadi va mashinadagi har bir aloqasiz tunnelni ham uzadi, balki muvaffaqiyatsiz bo‘lganini o‘tkazib yuboradi. Tiklash qaytishi kerak bo‘lgan ulanishga tegishli bo‘lib, reloaddan omon qoladigan sozlamalarda ifodalanadi. Bu runbook buni bitta ulanish uchun sozlaydi va natijani nom bo‘yicha isbotlaydi.

Global qayta ishga tushirishdan voz keching, uning dalillarini saqlang

Daemonni qayta ishga tushirishning ikkita aniq nuqsoni bor: har bir ulanishning holatini yo‘q qiladi va qaysi hodisa haqiqatan muvaffaqiyatsiz bo‘lganini aytmaydi. Siz qidirgan holat matni boshqa ulanishdan kelgan bo‘lishi mumkin, kerakli child esa uni hech narsa ishga tushirmagani uchun bekor o‘tirgan edi.

Biror narsani o‘zgartirishdan oldin yuklangan ulanishlar va faol assotsiatsiyalarni o‘qing, shunda peer qaytgandan keyin solishtirish uchun oldingi tasavvuringiz bo‘ladi.

swanctl --list-conns
swanctl --list-sas

Boshlash va qayta urinishlarni qaytayotgan ulanishga qo‘ying

swanctl.conf joylashtirishida bu sozlamalar global siyosatda emas, ulanish va child darajasida yashaydi. Quyidagi parcha takliflar, autentifikatsiya va selektorlar allaqachon to‘g‘ri deb hisoblaydigan tashabbuskor tomonidagi misoldir.

connections {
    branch {
        keyingtries = 0
        dpd_delay = 30s
        children {
            private-lan {
                start_action = trap|start
                dpd_action = restart
            }
        }
    }
}

start_action child yuklanganda nima bo‘lishini hal qiladi: start darhol boshlaydi, trap esa mos trafik paydo bo‘lganda boshlashni ishga tushiradigan siyosat o‘rnatadi. trap|start yozish strongSwan 5.9.6 yoki undan yangirog‘ini talab qiladi, shuning uchun qatorni nusxalashdan oldin versiyani tekshiring. dpd_action=restart peer o‘lik deb e’lon qilingan zahoti yangi muzokara talab qiladi, ulanish darajasidagi keyingtries=0 esa muvaffaqiyat yoki doimiy xatogacha qo‘shimcha urinishlarga ruxsat beradi. IKEv2 ostida dpd_timeout umuman ta’sir qilmaydi, chunki peer qachon javob bermayotganini oddiy qayta uzatish hal qiladi.

O‘sha misoldagi kechikish boshlang‘ich nuqta, universal muddat emas. Uni peerning qayta ishga tushishi qancha vaqt olishiga va qancha qayta uzatishga toqat qilishga tayyor ekaningizga qarab tanlang.

Qaysi hodisadan tiklayotganingizni biling

Uchta nosozlik panelda bir xil ko‘rinadi va turli sozlamalarni talab qiladi. Hech qachon ko‘tarilmagan dastlabki ulanish konfiguratsiya yoki yetib borish muammosi. Javob berishni to‘xtatgan peer DPD holatidir. Peer aniq yopgan child DPD hech qachon sezmaydigan, o‘z close_actioniga ega siyosat hodisasidir. Uzilish atrofidagi logni o‘qish uchtadan qaysi biri sizda ekanini aytadi va javob tuzatishni o‘zgartiradi.

Operatorlar texnik xizmat uchun ataylab yopadigan ulanishga tajovuzkor qayta boshlashni qo‘shmang, aks holda tunnel oyna o‘rtasida yana paydo bo‘ladi. Talabga asoslangan dizaynlar uchun saqlangan trap yetarli, chunki mos trafik childni hech qanday taymerisiz qayta tiklaydi.

Daemon holati bilan emas, nom bo‘yicha tekshiring

Peer hali pastda bo‘lganda ulanish va uning childini nom bo‘yicha o‘qing, keyin u qaytganda yana o‘qing; bu ikki chiqish orasidagi farq dalildir.

swanctl --initiate --child private-lan
swanctl --terminate --ike branch

So‘ng assotsiatsiyani emas, xizmatni tasdiqlang. Yangi child xavfsizlik assotsiatsiyasi va uning orqasidagi xususiy manzilga muvaffaqiyatli so‘rov — bu muhim bo‘lgan ikki fakt, sog‘lom aloqasiz tunnelli ishlab turgan daemon ikkalasini ham isbotlamaydi.

Agar child hech qachon boshlanmasa, sinov trafigi sozlangan selektorlarga to‘liq mos kelishini tekshiring, protokol va portni qo‘shib. Agar u boshlanib muvaffaqiyatsiz bo‘lsa, cheksiz halqa orqasiga yashirish o‘rniga autentifikatsiya yoki taklif xatosini o‘qing, chunki keyingtries=0 doimiy rad etishni abadiy takrorlaydi.

O‘zgarishni oynada yuklang va qayta sinab ko‘ring

Reload daemonni qayta ishga tushirishdan xavfsizroq va baribir bepul emas: childni almashtirish yoki tushirish boshlangan assotsiatsiyani yopishi yoki uning trapini tushirishi mumkin.

Texnik xizmat oynasida yuklang, oldingi faylni saqlang va ulanish standart qiymatlar bilan emas, siz ko‘zlagan sozlamalar bilan paydo bo‘lishini tasdiqlang.

swanctl --load-conns
swanctl --list-conns

Oldingi faylni tiklab, uni qayta yuklash orqali orqaga qayting, so‘ng o‘sha ikki buyruqni takrorlang. Faqat daemon qayta ishga tushgandan keyin qaytadigan tunnel tuzatilmagan, qayta o‘rnatilgan.

O'xshash maqolalar