Оддалечениот портал се рестартира, се враќа за една минута, а локалниот strongSwan daemon продолжува да работи додека тунелот уште е долу. Cron задача што грепира ESTABLISHED и го рестартира daemon-от на крајот ќе го прикрие тоа, а исто така ќе ја прекине секоја неповрзана тунела на машината, додека можеби ќе ја пропушти таа што падна. Обновата припаѓа на врската што мора да се врати, изразена во поставки што го преживуваат 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. Child што peer-от експлицитно го затворил е настан на политиката со сопствен close_action, што DPD никогаш не го забележува. Читањето на дневникот околу прекинот ви кажува кој од трите го имате, а одговорот ја менува поправката.

Не додавајте агресивно повторно иницирање на врска што операторите намерно ја затвораат за одржување, инаку тунелот повторно ќе се појави среде прозорецот. За дизајни по барање доволен е задржан trap, бидејќи соодветниот сообраќај го обновува child-от без ниту еден тајмер.

Проверете по име, не по статусот на daemon-от

Прочитајте ја врската и нејзиниот child по име додека peer-от уште е долу, а потоа повторно кога ќе се врати; разликата меѓу тие два излеза е доказот.

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-от не е поправен, туку ресетиран.

Поврзани статии