Эки интернет линиясы VPN'ди пайдаланууга ыңгайлуураак кылышы мүмкүн, кээ бир жүктөмдөр үчүн тезирээк да кылат, бирок ушул экөөнүн кайсынысы болорун механизм чечет. Эки демейки маршруту бар маршрутизатор бириктирилген эмес, миңдеген ички туташууларды ташыган туннель дагы эле бир сырткы агым. Убаданы биринчи атоо — долбоор менен кымбат көңүл калуунун ортосундагы айырма. Төмөнкү таблица варианттарды ар бири алыс учта эмнени талап кылаарына жана байланыш жоголгондо өткөрүүгө эмне болоруна жараша бөлөт.

Үч убада, жана бирөөнө гана шерик керек

Жаңылыштыкта которулуу тандалма байланыш жок болгондо жолду жеткиликтүү кармайт. Агым хеши боюнча теңдөө көз карандысыз агымдарды эки жогорку каналга таратат. Бир агымды бириктирүү бир өткөрүүгө эки байланышты тең пайдаланууга мүмкүндүк берет. Булар талаптары ар башка ар башка продуктылар, жана акыркысына гана маршрутизаторуңуздун сыртындагы бир нерсенин кызматташуусу керек.

MechanismFar-end requirementEffect on one transferWhat breaks under a link loss
Packet-spraying overlayA cooperating endpoint that reassembles the streamPackets can spread across both linksReordering and buffering on the surviving path; its own recovery logic decides what continues
MPTCP subflowsA peer or proxy that accepts subflowsSubflows can share one connectionSurviving subflows continue if the peer keeps them alive
Flow-hash balancingNothing new; the existing tunnel endpoint is enoughOne outer flow still follows one linkFlows hashed onto the dead link move; established sessions break
Link failoverNothing newOne path at a time; the second link sits idleThe 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

Бир өткөрүү дагы эле бир жогорку каналды пайдаланса, долбоор агым хеши көздөгөн нерсени так аткарып жатат. Параллелдүү өткөрүүлөр экөөнө тараса, теңдөө иштейт, бириктирүү иштебейт. Долбоор үч убаданын кайсынысын чындыгында кармай турганын жазыңыз, жана кийинки сыйымдуулук сүйлөшүүсү жеткирүүчүнүн билдирүүсүнөн эмес, далилдерден башталат.

Тектеш макалалар