WireGuard. ենթացանցի փոփոխությունից հետո զուգընկերոջ ուղի չկա՝ երկու ելք
Ենթացանցի փոփոխությունը կոտրում է WireGuard-ը երկու տեղում՝ AllowedIPs և վերադարձի ուղին։ Համեմատեք տեղում վերահամարակալումը միջերեսի վերակառուցման հետ։
Ձեռքսեղմումը թարմ է wg show-ում, վերջնակետը ճիշտ է, բանալիները երբեք չեն փոխվել, և ping-ը դեռ ասում է, որ զուգընկերոջ ուղի չկա։ Դուք թունելի ենթացանցը փոխել եք մեկ ժամ առաջ։ Այդ ախտանիշը նախածանցի անհամապատասխանության ստորագրությունն է, ոչ թե բանալու խնդիր. WireGuard-ը ավարտեց ձեռքսեղմումը, ապա դեն նետեց տվյալները, որովհետև աղբյուրի հասցեն այլևս չի համապատասխանում այն բանին, ինչ կընդունի ընդունող զուգընկերը։ Ենթացանցի փոփոխությունն իրականացնելու երկու խելամիտ եղանակ կա, և դրանք ձախողվում են տարբեր տեղերում։
Փոփոխությունն իրականացնելու երկու եղանակ և դրանցից յուրաքանչյուրի գինը
A տարբերակը տեղում վերահամարակալումն է. խմբագրեք միջերեսի հասցեն, զուգընկերների միջակայքերը, ուղիները և կոնֆիգուրացիայի յուրաքանչյուր պատճենը, ապա վերաբեռնեք։ B տարբերակը նոր նախածանցի վրա երկրորդ միջերես կառուցելն է հինի կողքին, զուգընկերներին տեղափոխելը և հին միջերեսը հեռացնելը, երբ երթևեկությունն իսկապես տեղափոխվել է։
| A: renumber in place | B: parallel interface | |
|---|---|---|
| Downtime | The reload window, per host | None if peers are added to both |
| Rollback | Re-apply the previous files | Point peers back at the old interface |
| Risk | Half-applied change: new address, old ranges | Two live interfaces with overlapping intent |
| Effort | Small, if the deployment has one owner | Higher, and needs a cleanup step |
| Fits | Two or three peers you control | Many peers, remote sites, or no maintenance window |
Կիսով կիրառված վիճակն է, որ A տարբերակը վտանգավոր է դարձնում, որովհետև այն կոտրված չի երևում։ Միջերեսը բարձրանում է, ձեռքսեղմումը հաջողվում է, և ձախողվում է միայն տվյալների ուղին։ B տարբերակը ավելի շատ աշխատանք է պահանջում, բայց աշխատող ուղին կենդանի է պահում, քանի դեռ դուք գտնում եք յուրաքանչյուր հղում։
Ինչ պետք է միասին շարժվի ձեր կողմում
Տեղական հոսթի չորս բան նկարագրում են նույն ենթացանցը, և մեկի փոփոխությունը բոլորի փոփոխությունն է. միջերեսի հասցեն, յուրաքանչյուր զուգընկերոջ AllowedIPs-ը, այն ուղին, որն օգտագործում է համակարգը այդ նպատակակետերի համար, և այն ամենը, ինչ կառավարիչը տեղադրում է ձեր անունից։ wg-quick-ի դեպքում վերջին երկուսը ստեղծվում են կոնֆիգուրացիայից ամեն անգամ, երբ միջերեսը բարձրանում է, ուստի հնացած պատճենը լուռ վերականգնում է հին նախածանցը։
Համեմատեք կազմաձևվածը կենդանիի հետ՝ փոխանակ վստահեք դրանցից որևէ մեկին.
wg show
wg showconf wg0
ip addr show wg0
ip route get 10.90.0.5Ուղու որոնումը այն քայլն է, որը մարդիկ բաց են թողնում։ Այն պատասխանում է, թե ինչ կանի միջուկն իրականում նպատակակետի համար, ներառյալ ավելի կոնկրետ ուղին, որը թողել է կառավարիչը կամ կոնտեյների գործարկման միջավայրը։ Եթե այն նշում է թունելից տարբեր միջերես, ապա կոնֆիգուրացիան խնդիրը չէ։
Աշխատող միջերեսի համար կիրառեք խմբագրված ֆայլը՝ առանց թունելը քանդելու.
wg syncconf wg0 <(wg-quick strip wg0)Դա թարմացնում է զուգընկերներին և միջակայքերը տեղում։ Այն չի թարմացնում միջերեսի հասցեն կամ ուղիները, որովհետև դրանք WireGuard-ի կարգավորումներ չեն, ուստի վերահամարակալումը դեռ պահանջում է միջերեսի վերստեղծում կամ հասցեի փոփոխում ip-ով, ապա երթուղավորման նոր ստուգում։
Ինչ պետք է միասին շարժվի հեռավոր ծայրում
Այստեղ է, որ ենթացանցի փոփոխությունը սովորաբար մահանում է։ AllowedIPs-ը ոչ միայն երթուղավորման ակնարկ է. այն նաև աղբյուրի հասցեների ցանկն է, որոնք զուգընկերը կարող է ներկայացնել։ Երբ վերահամարակալում եք հաճախորդներին և սերվերի AllowedIPs-ը թողնում հին նախածանցի վրա, սերվերն ընդունում է ձեռքսեղմումը, ստանում գաղտնագրված փաթեթները և դեն նետում դրանք, որովհետև ներքին աղբյուրը չի համապատասխանում այն ոչ մի միջակայքի, որը նա կապում է այդ զուգընկերոջ հետ։ Ոչ մի սխալ չի գրանցվում, և հաճախորդը տեսնում է ժամկետի լրանալ։
Ուստի թարմացրեք ընդունող կողմը գիտակցաբար. սերվերի զուգընկերոջ գրառումը պետք է թվարկի հաճախորդի նոր նախածանցը, սերվերի սեփական վերադարձի ուղին այդ նախածանցի համար պետք է մատնանշի թունելին, և սերվերի հետևում գտնվող ցանկացած ներքև հոսող ցանց պետք է սովորի նոր ուղին։ Հին միջակայքը նշող firewall-ի քաղաքականությունը նույն բուժման կարիքն ունի, ինչպես նաև աղբյուրի վրա հիմնված ընտրություն կատարող ամեն ինչ։
Երկու ձախողումներն իրարից բաժանող ախտորոշումը էժան է։ Թարմ ձեռքսեղմում առանց տվյալների նշանակում է, որ թունելը բարձրացված է, և ներքին հասցեավորումը համաձայն չէ։ Ընդհանրապես ձեռքսեղմում չլինելը նշանակում է, որ դուք նայում եք հասանելիությանը կամ բանալիներին։ Նախածանցի խնդրի համար բանալիներ մի պտտեք. դա զրոյացնում է այն միակ բանը, որ աշխատում էր։
Հնացած պատճեններ, որոնք ապրում են ձեր խմբագրումից ավելի
Ֆայլ խմբագրելը նույնը չէ, ինչ աշխատող համակարգը փոխելը, և պատճեններն ավելի շատ են, քան մարդիկ սպասում են. միջերեսին տիրող unit-ը կամ կառավարիչը, նույն անունով երկրորդ պրոֆիլը մեկ այլ պանակում, պատկերի մեջ թխված կոնֆիգուրացիայով կոնտեյներ, իր իսկ խմբագրված տարբերակը պահող երթուղիչի ինտերֆեյս, և գործարկման պահին պահված թունելը նորից ներմուծող հաճախորդային հավելված։ Նրանցից յուրաքանչյուրը կարող է վերականգնել հին նախածանցը այն բանից հետո, երբ ձեր փոփոխությունը կարծես ավարտված է։
Անունները նույնպես ճամփորդում են։ Եթե թվային ուղին աշխատում է, բայց հոսթի անունը ձախողվում է, ներքին DNS գրառումը կամ ծառայության կոնֆիգուրացիան դեռ մատնանշում է թունելի հին հասցեն։ Ուղղեք հղումը՝ փոխանակ լայնացնեք յուրաքանչյուր զուգընկերոջ միջակայքը, ինչը կծածկեր իրական խնդիրը և միևնույն ժամանակ կմեծացներ աղբյուրի ACL-ը։
Աշխատելիս բաց պահեք մեկ վերականգնման ուղի. հոսթ մուտք գործելու երկրորդ եղանակ, սերիական կոնսոլ կամ կոնֆիգուրացիայի ֆայլերի պլանավորված հետգլորում։ Այն թունելի փոփոխությունը, որը ձեզ փակում է այն մեքենայից, որը փոխում եք, ամենատարածված ձևն է, որով այս առաջադրանքը դառնում է երեկո։
Ընտրություն երկուսի միջև և անցման ստուգում
Ընտրեք A-ն, երբ յուրաքանչյուր զուգընկեր ձերն է, թիվը փոքր է, և կարճ ընդհատումը ընդունելի է։ Ընտրեք B-ն, երբ զուգընկերները հեռավոր ձեռքեր են, որոնց դուք չեք կառավարում, երբ տեղամաս-տեղամաս կապը պետք է մնա բարձր, կամ երբ չեք կարող երաշխավորել, որ յուրաքանչյուր պատճեն կթարմացվի մեկ անցումով։ Այդ դեպքում ավելացրեք նոր նախածանցը երկու միջերեսներին, տեղափոխեք զուգընկերներին մեկ առ մեկ, հետևեք նորի երթևեկությանը, և միայն դրանից հետո հեռացրեք հին միջերեսը և նրա ուղիները։
Երկու տարբերակում էլ փոփոխությունն ավարտված է, երբ անցնում են չորս ստուգում. ձեռքսեղմումը թարմ է, նոր նախածանցի նպատակակետի ուղու որոնումը նշում է թունելը, մի քանի հարյուր բայթ բեռ փոխանցվում է երկու ուղղությամբ, և նույնը ճիշտ է հոսթի կամ կառավարչի վերագործարկումից հետո։ Այդ wg(8) ձեռնարկը տեղեկատուն է այն բանի, թե ինչ է նշանակում AllowedIPs-ը յուրաքանչյուր ուղղությամբ, և արժե նորից կարդալ այն նախքան միջակայքը լայնացնելը՝ ախտանիշը վերացնելու համար։
- Թարմ ձեռքսեղմում և տվյալներ չկան. նայեք AllowedIPs-ին ընդունողի մոտ՝ նախքան բանալիներին դիպչելը։
- Ուղու որոնումը մատնանշում է սխալ միջերես. ուղին պատկանում է կառավարչին կամ կոնտեյներին, ոչ ձեր ֆայլին։
- Թվային հասցեն կարգին է, հոսթի անունը կոտրված. հին հղում, ոչ երթուղավորման հանգույց։
- Փոփոխությունն ավարտված է միայն այն ժամանակ, երբ վերագործարկումից հետո դեռ օգտագործվում է նոր նախածանցը։