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 қайта жүктелгеннен кейін қайтатын туннель жөнделмеген, ол қайта орнатылған.