Երկու OpenVPN թունել մեկ Linux հոսթի վրա. ո՞ւմն է երթուղին։
Երկու հաճախորդային պրոֆիլ կարող են գոյակցել, երբ լողավազանները, մղված երթուղիները և լռելյայն պահանջները բաշխված են։ Սկզբում որոշեք սեփականությունը, ապա օգտագործեք նշիչներ վերադարձի ուղու համար։
Երկու պրոֆիլ միացված են, և նրանցից մեկը հանգիստ տեղափոխում է մյուսի համար նախատեսված երթևեկությունը։ Linux հոսթը կարող է միաժամանակ աշխատեցնել երկու OpenVPN հաճախորդներին առանց դժվարության։ Այն, ինչ նա չի կարող անել, ձեր փոխարեն որոշելն է, թե որ գործընթացը որ նախածանցը կարող է պահանջել։ Այդ որոշումը պետք է կայացվի մինչև երկրորդ թունելի բարձրանալը, ոչ թե այն բանից հետո, երբ ռեսուրսը դադարում է պատասխանել։
Սկսեք այն աշխատանքից, որը պետք է կատարի երկրորդ կապուղին
Մեկ պրոֆիլով հասանելի գրասենյակը և մյուսով հասանելի լաբորատորիան պահանջում են, որ երկու թունելներն էլ բարձրացված լինեն, և ոչ մեկը չպահանջի ամեն ինչ։ Երկրորդ պրոֆիլով դուրս գալու կարիք ունեցող մեկ համառ հավելվածին պետք է քաղաքականության կանոն, այլ ոչ թե երկրորդ լռելյայն երթուղի։ Պահուստային կապուղուն միաժամանակ անհրաժեշտ է միայն մեկ աշխատող թունել, ուստի պահուստը չպետք է սկսվի մեքենայի հետ միասին։
Դրանք երեք տարբեր կարգավորումներ են, և դրանք շփոթվում են, որովհետև երեքն էլ սկսվում են նույն կերպ՝ երկրորդ պրոֆիլ և հաջող միացում։ Նախ գրեք նախատեսված դասավորությունը, ապա կարգավորեք դրա ուղղությամբ։ Մտադրության մեկ նախադասությունը խնայում է փաթեթների որսի մեկ ժամ։
systemctl list-units --type=service 'openvpn-client@*' ip -4 route show default
Առաջին հրամանը թվարկում է աշխատող օրինակները, ներառյալ ձեռքով՝ կառավարիչից դուրս մեկնարկվածները։ Երկրորդը տպում է ընթացիկ լռելյայն պահանջը, և դա այն վիճակն է, որը հետագայում ստիպված կլինեք բացատրել։
Համընկնող լողավազանները կոտրվում են երթուղավորումից առաջ
Երկու սերվեր ուրախությամբ կբաշխեն հասցեներ նույն 10.8.0.0/24-ից։ Այնուհետև հաճախորդը պահում է երկու ինտերֆեյս մեկ նախածանցի ներսում, և ոչինչ չի ասում, թե որ նպատակակետը որին է պատկանում, և ստացված վարքը նման է երթուղային խափանման, բայց իրականում համարակալման խափանում է։ Լողավազանի վերահամարակալումը արժե մեկ կարգավորման խմբագրում՝ յուրաքանչյուր հետագա երթուղային շրջանցում արժե մեկ հանգստյան օր։ Ստուգեք լողավազանը նախքան դրա համար երթուղի ավելացնելը։
Նայեք նաև տեղական LAN-ին։ 192.168.1.0/24 համարով տնային LAN-ը, որը մեկ թունել նույնպես բացահայտում է, ստեղծում է նույն երկիմաստությունը, և ախտանիշը հոսթի անունն է, որը լուծվում է, մինչ միացումը երբեք չի ավարտվում։ Դա նման է անունների լուծման խափանման, քանի դեռ չեք տպել երթուղիները։
ip -4 addr show ip route show table all | grep -E '10\.|192\.168\.'
Համեմատեք երկու ելքերը սերվերների երկու կարգավորումների հետ նախքան հաճախորդին դիպչելը։ Եթե նախածանցները համընկնում են, կանգ առեք և վերահամարակալեք, որովհետև ոչ մի վերագործարկում չի բաժանի դրանք։
Յուրաքանչյուր պրոֆիլի տվեք իր միավորը, իսկ յուրաքանչյուր նախածանցի՝ տեր
Յուրաքանչյուր պրոֆիլ ստանում է իր օրինակի անունը և իր կարգավորման ֆայլը, ուստի office անունով օրինակը բեռնում է office.conf-ը, մինչ lab անունովը բեռնում է lab.conf-ը։ Հաստատեք այդ քարտեզագրումը ծառայությունների կառավարչի միջոցով՝ փոխարենը չվստահելով գրացուցակի ցանկին, որովհետև drop-in-ը կարող է փոխել, թե որ ֆայլն է բեռնվում։ Քարտեզագրումը սխալելը նշանակում է, որ կարգավորում եք այն պրոֆիլը, որը չի աշխատում։
Այնուհետև որոշեք, թե ով է տեղադրում երթուղիները։ Երբ սերվերները մղում են անհամատեղելի հավաքածուներ, կամ մերժեք մղումը և ինքներդ թվարկեք նախածանցները, կամ թույլ տվեք, որ մեկ պրոֆիլը պահի լռելյայնը, իսկ մյուսը ղեկավարեք քաղաքականության կանոններով։ Երկու գործընթաց, որոնք երկուսն էլ տեղադրում են լռելյայն, ավարտվում են լուռ հաղթողով և որոշման գրավոր արձանագրություն չունենալով։
systemctl cat [email protected] grep -E 'route-nopull|pull-filter|redirect-gateway' /etc/openvpn/client/lab.conf
Առաջինը ցույց է տալիս միավորը՝ ցանկացած վերագրանցմամբ, որը փոխում է դրա արգումենտները։ Երկրորդը ցույց է տալիս, թե արդյոք պրոֆիլն ընդհանրապես ընդունում է մղված երթուղիները, և դա այն անջատիչն է, որը որոշում է ամեն ինչ հետագայում։
Նշիչները պատասխանները պահում են այն ինտերֆեյսի վրա, որտեղից եկել են
Երբ յուրաքանչյուր թունել սպասարկում է տարբեր աղբյուրներ, պատասխանը կարող է դուրս գալ սխալ կապուղով, և միացումը մահանում է առաջին փաթեթից հետո։ Կայուն օրինակն այն է, որ ժամանող փաթեթները նշվեն ըստ մուտքային ինտերֆեյսի, այդ նշիչը վերականգնվի պատասխանի վրա, և յուրաքանչյուր նշիչի տրվի իր լռելյայն դարպասով աղյուսակ։
Թույլ հակադարձ ուղու զտումը սովորաբար պետք է մեղմացվի տուժած ինտերֆեյսների համար, որովհետև պատասխանը օրինաչափորեն գալիս է այն կապուղով, որը հիմնական աղյուսակը երբեք չէր ընտրի։ Նշիչները նեղ պահեք, որ նրանք երբեք չբռնեն հենց թունելների գաղտնագրված երթևեկությունը, ինչը թունելը կուղարկի ինքն իր միջով։
ip rule show ip route show table 101 sysctl net.ipv4.conf.all.rp_filter
Կարդացեք գոյություն ունեցող կանոնները նախքան մեկ ուրիշն ավելացնելը։ Կրկնվող առաջնահերթությունները և մոռացված աղյուսակները սովորական պատճառն են, թե ինչու նշիչի քաղաքականությունը բոլորովին ազդեցություն չի ունենում։
Ապացուցեք մեկուսացումը՝ դադարեցնելով մեկ կապուղի
Երկու թունելները բարձրացված վիճակում գրանցեք յուրաքանչյուր ինտերֆեյսի հասցեն, յուրաքանչյուր թունելի հետևում գտնվող մեկ հոսթի երթուղին և այն ուղին, որով անցնում է չկապված նպատակակետը։ Փնտրումը խնդրեք միջուկից՝ փոխարենը չկարդալով մեկ աղյուսակ, որովհետև մեկ աղյուսակը երբեք չի ցույց տալիս վերջնական որոշումը։
Այնուհետև դադարեցրեք մեկ օրինակ և դիտեք, թե ինչպես նրա ինտերֆեյսը և երթուղիները անհետանում են, մինչ մյուսը շարունակում է։ Փրկվածի խախտումը նշանակում է, որ երկուսը դեռ կիսում են սարքի անուն, երթուղի կամ ֆայրվոլի կանոն, որը ոչ ոք չի բաժանել։
Վերադարձրեք դադարեցված պրոֆիլը և կրկնեք նույն ստուգումները։ Երբ թունելը գոյատևում է միայն վերագործարկումից հետո առաջին մեկնարկին, դուք տեսնում եք կյանքի ցիկլի արատ, այլ ոչ թե երթուղային ձևավորում։