Peer кайра жүктөлгөндөн кийин strongSwan төмөндө калат: бир туннелди калыбына келтирүү
Daemon'ду кайра жүктөөдөн баш тартыңыз. Кайтууга тийиш болгон туташууга баштоону жана DPD'ни коюңуз, анан аты боюнча текшерип, daemon'ду эмес, кызматты далилдеңиз.
Алыскы шлюз кайра жүктөлөт, бир мүнөттүн ичинде кайтат, ал эми жергиликтүү strongSwan daemon ишин улантат, туннел дагы эле төмөндө. ESTABLISHED издөөчү жана daemon'ду кайра жүктөөчү cron тапшырмасы муну акыры жаап калат, ошондой эле машинадагы ар бир байланышсыз туннелди үзөт, ал эми ийгиликсиз болгон туннелди өткөрүп жибериши мүмкүн. Калыбына келтирүү кайтууга тийиш болгон туташууга таандык жана reload'дон аман калган жөндөөлөрдө туюнтулат. Бул runbook муну бир туташуу үчүн орнотот жана натыйжаны аты боюнча далилдейт.
Глобалдык кайра жүктөөдөн баш тартыңыз, анын далилдерин сактаңыз
Daemon'ду кайра жүктөөнүн эки так кемчилиги бар: ал ар бир туташуунун абалын жок кылат жана кайсы окуя чындыгында ийгиликсиз болгонун айтпайт. Сиз издеген статус тексти башка туташуудан келген болушу мүмкүн, ал эми керектүү child бош турду, анткени аны эч нерсе баштаган жок.
Бир нерсени өзгөртүүдөн мурун жүктөлгөн туташууларды жана активдүү ассоциацияларды окуңуз, ошондо peer кайткандан кийин салыштыра турган «мурунку» сүрөтүңүз болот.
swanctl --list-conns
swanctl --list-sas
Баштоону жана кайталап аракет кылууну кайтып келе жаткан туташууга коюңуз
swanctl.conf жайгаштыруусунда бул жөндөөлөр глобалдык саясатта эмес, туташуу жана child деңгээлинде жашайт. Төмөнкү фрагмент — сунуштар, аутентификация жана селекторлор мурунтан эле туура деп эсептеген баштоочу тараптын мисалы.
connections {
branch {
keyingtries = 0
dpd_delay = 30s
children {
private-lan {
start_action = trap|start
dpd_action = restart
}
}
}
}
start_action child жүктөлгөндө эмне болорун чечет: start дароо баштайт, ал эми trap дал келген трафик пайда болгондо баштоону иштетүүчү саясатты орнотот. trap|start жазуу үчүн strongSwan 5.9.6 же андан жаңыраак керек, ошондуктан сапты көчүрүүдөн мурун версияны текшериңиз. dpd_action=restart peer өлдү деп жарыялангандан кийин жаңы сүйлөшүүнү талап кылат, ал эми туташуу деңгээлиндеги keyingtries=0 ийгиликке же туруктуу катага чейин кошумча аракеттерге жол берет. IKEv2 астында dpd_timeout такыр таасир этпейт, анткени peer качан жооп бербей жатканын кадимки кайра жөнөтүү чечет.
Ошол мисалдагы кечигүү — баштапкы чекит, универсалдуу мөөнөт эмес. Аны peer'дин кайра жүктөлүшү канча убакыт алаарына жана канча кайра жөнөтүүгө чыдоого даяр экениңизге жараша тандаңыз.
Кайсы окуядан калыбына келтирип жатканыңызды билиңиз
Үч бузулуу тактада бирдей көрүнөт жана ар башка жөндөөлөрдү талап кылат. Эч качан көтөрүлбөгөн баштапкы туташуу — конфигурация же жеткиликтүүлүк маселеси. Жооп берүүнү токтоткон peer — DPD учуру. Peer ачык жапкан child — DPD эч качан байкабаган, өз close_action'у бар саясат окуясы. Үзгүлтүктүн айланасындагы журналды окуу үчөөнүн кайсынысы экенин айтат, ал эми жооп түзөтүүнү өзгөртөт.
Операторлор тейлөө үчүн атайын жапкан туташууга агрессивдүү кайра баштоону кошпоңуз, болбосо туннел терезенин ортосунда кайра пайда болот. Суроо боюнча иштеген долбоорлор үчүн сакталган trap жетиштүү, анткени дал келген трафик child'ди таймерсиз кайра орнотот.
Daemon'дун абалы менен эмес, аты боюнча текшериңиз
Peer дагы эле төмөндө турганда туташууну жана анын child'ин аты боюнча окуңуз, анан кайтканда дагы окуңуз; ушул эки чыгыштын айырмасы — далил.
swanctl --initiate --child private-lan
swanctl --terminate --ike branch
Андан кийин ассоциацияны эмес, кызматты ырастаңыз. Жаңы child коопсуздук ассоциациясы жана анын артындагы жеке максатка ийгиликтүү суроо — маанилүү эки факт, ал эми соо байланышсыз туннел менен иштеп жаткан daemon экөөнү тең далилдебейт.
Эгер child эч качан башталбаса, сыноо трафик конфигурацияланган селекторлорго так дал келерин текшериңиз, протокол жана порт менен кошо. Эгер башталып, ийгиликсиз болсо, чексиз циклдин артына жашыруунун ордуна аутентификация же сунуш катасын окуңуз, анткени keyingtries=0 туруктуу баш тартууну түбөлүк кайталайт.
Өзгөртүүнү терезеде жүктөп, кайра сынаңыз
Reload daemon'ду кайра жүктөөдөн коопсузраак, бирок ал да акысыз эмес: child'ди алмаштыруу же түшүрүү башталган ассоциацияны жаабы же анын trap'ын түшүрүшү мүмкүн.
Тейлөө терезесинде жүктөңүз, мурунку файлды сактаңыз жана туташуу демейки маанилер менен эмес, өзүңүз көздөгөн жөндөөлөр менен пайда болорун ырастаңыз.
swanctl --load-conns
swanctl --list-conns
Мурунку файлды калыбына келтирип, аны кайра жүктөө менен артка кайтарыңыз, анан ошол эки буйрукту кайталаңыз. Daemon кайра жүктөлгөндөн кийин гана кайткан туннел оңдолгон эмес, кайра коюлган.