strongSwan-ի կոնֆիգուրացիայում կապը թվարկելը ապացուցում է միայն, որ սահմանումը բեռնվել է։ Դա չի նշանակում, որ գործընկերոջ հետ կապվել են, որ գոյություն ունի IKE SA կամ որ որևէ երթևեկություն պաշտպանված է։ Դեմոնը սահմանումներն ու կենդանի ասոցիացիաները դիտարկում է որպես առանձին օբյեկտներ, և նրանց միջև հեռավորությունը դիտավորյալ նախագծային ընտրություն է։ Իմանալը, թե որ օբյեկտն եք ստուգում, անորոշ խափանումը վերածում է կոնկրետ հաջորդ հրամանի։

Բեռնումը միացում չէ

Բեռնված կապը հայտարարություն է այն մասին, թե ինչ կարելի է համաձայնեցնել ավելի ուշ՝ գործընկերոջ հասցեները, հավատարմագրերը, առաջարկները և երթևեկության ընտրիչները։ Այդ հայտարարության մեջ ոչինչ չի պահանջում, որ դեմոնը զանգահարած լինի որևէ մեկին։ Դարպասը կարող է սպասել մյուս կողմին, նախաձեռնել գործարկման պահին կամ սպասել, որ համապատասխան երթևեկությունը արթնացնի այն։ Բոլոր երեքը վավեր են, և բոլոր երեքը կոնֆիգուրացիայի ֆայլում նույն տեսքն ունեն, մինչև չկարդաք գործարկման քաղաքականությունը։

Օպերատորները դժվարության մեջ են ընկնում՝ սահմանումների ցանկը կարդալով որպես կարգավիճակների ցանկ։ Պրոֆիլը կա, ուստի թունելը համարվում է բարձրացված, և հաջորդ ժամը գնում է այն ասոցիացիայի երթուղիները կարգաբերելուն, որը երբեք չի կառուցվել։

Հակառակ սխալը նույնքան տարածված է։ Բացակայող պրոֆիլը մարդկանց ուղարկում է ցանցային խափանում փնտրելու, երբ կոնֆիգուրացիան երբեք չի բեռնվել։ Անվանեք օբյեկտը, ապա գործարկեք այն հրամանը, որը դիտարկում է այն։

Երեք օբյեկտ, երեք դիտարկում

strongSwan-ը պահում է բեռնված սահմանում, IKE SA և CHILD SA։ Առաջինը կոնֆիգուրացիա է, երկրորդը՝ նույնականացված կառավարման հարաբերություն, երրորդը՝ ընտրված երթևեկության համաձայնեցված պաշտպանություն։ Նրանք նույնիսկ առանձին անուններ ունեն, այնպես որ hq անունով պրոֆիլը կարող է ունենալ hq-lan անունով child։

Աղյուսակը յուրաքանչյուր շերտը կապում է այն ցույց տվող հրամանին։ Կարդացեք տողը մինչև մատյանի ընթերցելը։

LayerWhat it containsCommand
DefinitionPeer addresses, credentials, proposals, and traffic selectorsswanctl --list-conns
IKE SAOne authenticated control channel to the peerswanctl --list-sas
CHILD SAKeys and selectors for the traffic being protectedChild rows under the IKE SA

child-ը պահանջելը նախ կառուցում է նրա ծնող IKE SA-ն, երբ այդպիսին չկա։ Միայն IKE SA-ն պահանջելը այլ կանչ է։ Ճիշտ նույնականացվող կառավարման ալիքը չի երաշխավորում պահանջված child-ը։

Այս տարբերությունը կարևոր է մասնակի խափանման ժամանակ։ IKE SA-ն կարող է առողջ լինել, մինչդեռ child-ը ձախողվում է ընտրիչի անհամապատասխանության կամ գործընկերոջ չընդունած առաջարկի պատճառով։ Երկու օբյեկտներն էլ ձախողվում են տարբեր պատճառներով, ուստի արժանի են առանձին դիտարկումների։

Ընտրեք գործարկման գործողությունը գիտակցաբար

swanctl.conf-ում child-ի start_action-ը որոշում է վարքը բեռնումից հետո։ Լռելյայն none արժեքը սահմանումը թողնում է ձեռքով նախաձեռնման կամ responder-ի դերում օգտագործելու համար։ start-ը զանգահարում է այն, մինչդեռ trap-ը թողնում է քաղաքականություն, որը համաձայնեցնում է հենց որ համապատասխան երթևեկություն հայտնվի։

Այսպիսով՝ և՛ «բեռնումը երբեք չի սկսում թունել», և՛ «բեռնումը միշտ սկսում է մեկը» սխալ են։ Գործողությունը պրոֆիլի մասն է և պետք է համապատասխանի գործընկերոջ դերին։ Երկու դարպաս, որոնք երկուսն էլ սպասում են մյուս կողմին, լռություն են ստեղծում, ոչ թե թունել։

trap-ի դեպքում երթևեկությունը պետք է համապատասխանի ընտրիչներին, ուստի անկապ ping-ը ոչինչ չի արթնացնի։ start-ի դեպքում գործընկերոջ հասցեն պետք է լինի օգտագործելի, և երկու կողմերը պետք է համաձայնվեն նույնականացման ու առաջարկների շուրջ։ Գործողություններից ոչ մեկը չի փոխարինում այդ պայմանների ստուգմանը։

Վերականգնումը առանձին քաղաքականություն է

Գործարկումը keepalive չէ։ Մեռած գործընկերոջ հայտնաբերումը, գործընկերոջ կողմից բացահայտ փակումը, բանալիների նորացումը և գործընթացի վերագործարկումը տարբեր կենսացիկլային իրադարձություններ են՝ իրենց կարգավորումներով։ Կարգավորեք դրանցից յուրաքանչյուրը գիտակցաբար՝ փոխարենը չսպասելով, որ սկզբնական գործարկումը կընդգրկի բոլորին։

Թունելը, որը բարձրանում է գործարկման պահին և մեռնում մեկ ժամ անց, վերականգնման հարց է։ Գործարկման քաղաքականությունը կատարեց իր գործը և հետո դադարեց կարևոր լինելուց։ Նայեք DPD-ի և բանալիների նորացման կարգավորումներին՝ մինչև սկզբնական բանակցությունները մեղադրելը։

Բեռնված սահմանումների փոխարինումը առանձին գործողություն է։ Ոչ լռելյայն գործարկման քաղաքականություններն ունեն փաստաթղթավորված հակադարձ գործողություններ, և վերբեռնումը գործառնական փոփոխություն է, այլ ոչ թե ենթադրություն, որ յուրաքանչյուր ասոցիացիա թարմացվել է տեղում։ Կատարեք վերբեռնումները փուլերով, որտեղ վերամիացումը ընդունելի է։ Պահպանեք հին կոնֆիգուրացիան, մինչև նորը ապացուցվի։

Ստուգեք, թե ինչ գոյություն ունի, մինչև երթուղավորումը կարգաբերելը

Կատարեք երեք դիտարկումները հերթականությամբ՝ բեռնված սահմանումներ, ակտիվ IKE SA և child գրառումներ։ Յուրաքանչյուր պատասխան նեղացնում է հաջորդ հարցը։ Բաց թողեք մի քայլ, և ի վերջո կկարգաբերեք շերտ, որը երբեք չի կառուցվել։

Սկսեք նրանից, ինչ բեռնված է և ինչն է իրականում հաստատված՝

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

Եթե child-ը բացակայում է, մինչ պրոֆիլը ճիշտ է, նախաձեռնեք այն անունով և դիտեք, թե ինչ կլինի։ Ելքը սովորաբար ասում է, թե արդյոք ծնողը նախ բարձրացել է։

swanctl --initiate --child hq-lan

Ակտիվ CHILD SA-ն վերջնագիծ չէ։ Փոխանցման կանոնները, երթուղիները և հավելվածի սեփական լիազորումը դեռ պետք է համապատասխանեն։ Կենսացիկլը պատասխանում է, թե ինչ է համաձայնեցվել՝ այն չի կարող որոշել, թե ով կարող է օգտվել ծառայությունից։

Առնչվող հոդվածներ