Երկու վերին կապուղի, բայց մեկ թունել՝ անցում, հավասարակշռում կամ միավորում
Խափանման դեպքում անցումը, հոսքով հավասարակշռումը և մեկ հոսքի միավորումը երեք տարբեր խոստումներ են։ Երկու լռելյայն երթուղիներ տալիս են առաջինը, ոչ թե մյուս երկուսը։
Երկու ինտերնետ գիծ կարող են VPN-ն ավելի հասանելի դարձնել, և որոշ աշխատանքային ծանրաբեռնվածությունների համար՝ ավելի արագ, բայց մեխանիզմն է որոշում, թե դրանցից որն է տեղի ունենում։ Երկու լռելյայն երթուղի ունեցող երթուղիչը միավորված չէ, և հազարավոր ներքին կապեր կրող թունելը դեռ մեկ արտաքին հոսք է։ Խոստումն առաջինը անվանելը տարբերությունն է նախագծի և թանկ հիասթափության միջև։ Ստորև բերված աղյուսակը տարբերակները բաժանում է ըստ այն բանի, թե յուրաքանչյուրն ինչ է պահանջում հեռավոր ծայրում և ինչ է անում կապի կորուստը փոխանցմանը։
Երեք խոստում, և միայն մեկն է գործընկեր պահանջում
Խափանման դեպքում անցումը պահում է ուղին հասանելի, երբ նախընտրելի կապը անհետանում է։ Հոսքի հեշով հավասարակշռումը տարածում է անկախ հոսքերը երկու վերին կապուղիների վրա։ Մեկ հոսքի միավորումը թույլ է տալիս մեկ փոխանցման միաժամանակ օգտագործել երկու կապերն էլ։ Դրանք տարբեր պահանջներով տարբեր արտադրանքներ են, և միայն վերջինն է ձեր երթուղիչից դուրս ինչ-որ բանի համագործակցության կարիք ունենում։
| Mechanism | Far-end requirement | Effect on one transfer | What breaks under a link loss |
|---|---|---|---|
| Packet-spraying overlay | A cooperating endpoint that reassembles the stream | Packets can spread across both links | Reordering and buffering on the surviving path; its own recovery logic decides what continues |
| MPTCP subflows | A peer or proxy that accepts subflows | Subflows can share one connection | Surviving subflows continue if the peer keeps them alive |
| Flow-hash balancing | Nothing new; the existing tunnel endpoint is enough | One outer flow still follows one link | Flows hashed onto the dead link move; established sessions break |
| Link failover | Nothing new | One path at a time; the second link sits idle | The session stalls or restarts on the other link |
Այդ աղյուսակում ոչինչ երկրորդ գիծ գնելու պատճառ չէ։ Այն անում է այլ բան՝ թույլ չի տալիս անցման նախագիծը գնահատել այնպես, կարծես այն միավորում է։
Ինչու է թունելը երթուղիչի համար մեկ հոսքի նման
Ծանրաբեռնվածությունը հավասարակշռող երթուղիչը հեշում է աղբյուրի և նշանակման հասցեները նավահանգիստների հետ միասին, ապա ուղարկում է ամբողջ հոսքը այնտեղ, ուր ցույց է տալիս հեշը։ VPN թունելը երթուղիչի տեսանկյունից այդպիսի մեկ հոսք է, անկախ նրանից, թե ինչ է աշխատում դրա ներսում։ Ներքին կապերը երբեք չեն հասնում հեշի որոշմանը, որովհետև արտաքին վերնագիրը արդեն որոշել է ուղին։ Դրա համար է, որ երկրորդ վերին կապուղին կարող է կրկնապատկել ընդհանուր հզորությունը շատ օգտատերերի համար և ոչինչ չփոխել մեկ օգտատիրոջ մեծ փոխանցման մեջ։
Երկու առանձին թունելներ կարող են երկու թեկնածու տալ, բայց նրանք դեռ պետք է դիտավորյալ քաղաքականություն, որը բաշխում է երթևեկությունը և պատասխանները պահում այն ուղու վրա, որը տարել է հարցումը։ Ասիմետրիկ երթուղավորումը այդ քայլը բաց թողնելու սովորական արդյունքն է։ Նվազագույնը քաղաքականություն է, որը անվանում է հոսքը, նախընտրելի կապը և պահուստային կապը։
Ethernet միավորումը չի անցնում չկապակցված մատակարարների միջև, որովհետև հեռավոր ծայրը պետք է մասնակցի ագրեգացիայի արձանագրությանը։ Երկու ինտերնետ մատակարարների միջև միավորումը հետազոտական նախագիծ է, քանի դեռ գոյություն չունի համագործակցող վերջնակետ։
Ինչ է պահանջում բազմուղի TCP-ն երկու ծայրերում
Linux-ի Multipath TCP փաստաթղթերը նկարագրում են մեկ կապին պատկանող մի քանի ենթահոսքեր։ Մի ծայրում միջուկի աջակցությունն ինքնին ոչինչ չի փոխում, քանի որ գործընկերը նույնպես պետք է ընդունի այդ ենթահոսքերը։ Հեռավոր կողմում պրոքսին մյուս սովորական լուծումն է, և այն դառնում է բաղադրիչ՝ իր հզորությամբ և հասանելիությամբ, որոնց պետք է պլանավորել։ Նույն տրամաբանությունը բացառում է հեշտ պատասխանը WireGuard-ի համար, որի տրանսպորտը UDP է, և MPTCP-ն աճեցնում է TCP ենթահոսքեր ու չի կարող միավորել այդ թունելը առանց նախագծում այլ բանի։
Ստուգեք՝ արդյոք միջուկի հատկությունը միացված է, նախքան դրա շուրջ նախագծելը, որովհետև շատ բաշխումներ այն մատակարարում են անջատված։ Այս երեք հրամանները դրան պատասխանում են մեկ րոպեում։
sysctl net.mptcp.enabled
ss -M | head
ip mptcp limits show
Ընտրեք աշխատանքային ծանրաբեռնվածությամբ, ոչ բրոշյուրով
Եթե աշխատանքային ծանրաբեռնվածությունը շատ անկախ սեսիաներ են, հոսքի հեշով հավասարակշռումը կարող է հզորություն ավելացնել առանց հեռավոր ծայրի համագործակցության։ Եթե դա մեկ մեծ փոխանցում է, կօգնի միայն ագրեգացիայի նախագիծը, և այդ նախագծին համագործակցող գործընկեր է պետք։ Եթե պահանջն այն է, որ աշխատանքը շարունակվի, երբ կապը մահանում է, պատասխանը անցումն է, և մեկ փոխանցման թողունակությունը նշանակություն չունի։
Գրեք պահանջը մեկ նախադասությամբ՝ բայով՝ մեկ պահուստային պատճենը ավարտվում է երկու անգամ ավելի արագ, կամ ընկած կապը չի ավարտում սեսիան։ Անորոշ նպատակները ծնում են նախագծեր, որոնք ոչ ոք չի կարող ընդունել կամ մերժել։ Ապա որոշեք, թե ինչ կարող է լինել հեռավոր ծայրը, որովհետև ամենաէժան տարբերակը հաճախ այն է, որը այնտեղ ոչինչ նոր չի պահանջում։ Այդ սահմանափակումը վերացնում է բրոշյուրի պնդումների մեծ մասը դեռ առաջին հանդիպումից առաջ։
Պահեք երեք խոստումներն առանձին պահանջների փաստաթղթում։ Նախագիծը, որը պնդում է բոլոր երեքը, սովորաբար տալիս է մեկը և լուռ ենթադրում մյուսները։ Հաջորդ բաժինը ստուգում է, թե որն է իրականում տրվում։
Փորձարկեք մեկ փոխանցում և շատերը, ապա քաշեք մի կապ
Համեմատեք մեկ շարունակական փոխանցումը նույն նշանակմանը մի քանի զուգահեռ փոխանցումների հետ, և գրանցեք կորուստը, ուշացումը և յուրաքանչյուր կապի օգտագործումը։ Միայն զուգահեռ սեսիաներով շահույթը ցույց է տալիս հոսքերի բաշխում, ոչ թե մեկ հոսքի միավորում։ Փորձարկեք մեկ վերին կապուղու կորուստն առանձին, որովհետև հզորությունը, մինչ երկու կապերն աշխատում են, ոչինչ չի ասում հաստատված սեսիայի անցման մասին։ Գրանցեք երթուղին, սոքեթը և վերահաղորդման հաշվիչները յուրաքանչյուր փորձարկումից առաջ և հետո։
ip route show default
ip route get 10.80.0.5
mtr -n -c 20 -r 10.80.0.5
Երբ միակ փոխանցումը դեռ օգտագործում է մեկ վերին կապուղի, նախագիծն անում է հենց այն, ինչ ենթադրում է հոսքի հեշը։ Երբ զուգահեռ փոխանցումները տարածվում են երկուսի վրա, հավասարակշռումն աշխատում է, իսկ միավորումը՝ ոչ։ Գրանցեք, թե երեք խոստումներից որն է նախագիծն իրականում պահում, և հզորության մասին հաջորդ խոսակցությունը կսկսվի ապացույցներից, ոչ թե վաճառողի պնդումից։