VPN праз некалькі шляхоў: чатыры гарантыі, якія аператар павінен забяспечыць
Дзве WAN-злучэнні і некалькі сокетаў не ствараюць адно VPN-злучэнне. Вызначце патрэбны байтавы паток, аднаўленне, ідэнтычнасць канчатковага пункта і паводзіны пры збоі.
Дадайце другое WAN-злучэнне, і тунелі падымаюцца, але капіраванне файла ўсё яшчэ затынаецца, калі адзін шлях хістаецца. Злучэнні здаровыя, працэсы VPN працуюць; не хапае дамовы паміж аператарам і тунелем. Некалькі сокетаў не паводзяць сябе аўтаматычна як адно злучэнне, і праграма зверху не бачыць розніцы, пакуль пастаўка не зламаецца. Кожная частка дамовы адпавядае збою, які можна пратэсціраваць, і менавіта гэта робіць яе карыснай.
Напішыце гэтую дамову перад выбарам прадукту. У ёй чатыры часткі: паток, які атрымлівае VPN, як аператар аднаўляе адсутныя даныя, якая ідэнтычнасць канчатковага пункта перажывае змену шляху і як паводзіць сябе ўсё, калі шлях адмаўляе.
Сімптом: злучэнні актыўныя, сесія ўсё роўна рвецца
Графік маніторынгу, які паказвае абодва злучэнні актыўнымі, даказвае толькі тое, што кожны шлях можа несці трафік. Ён не даказвае, што VPN бачыць адзіны ўпарадкаваны паток, што пакет, страчаны на адным шляху, аднаўляецца на іншым, або што партнёр яшчэ ведае, з якой сесіяй гаворыць. Астатняя частка дамовы ахоплівае тое, чаго графік не можа паказаць.
Калі перадача затынаецца, высветліце, ці працягваў аператар пастаўляць на шляху, які выжыў. Калі сесія памірае, пакуль другое злучэнне бяздзейнічае, аператар ніколі яго не выкарыстоўваў. Калі сесія выжывае, але даныя прыходзяць не па парадку або дубліраваныя, аператар перамяшчае пакеты без дамовы на ўзроўні злучэння. Часавыя адзнакі з абодвух бакоў звычайна гэта высвятляюць.
Гэтая розніца вызначае выпраўленне. Праблема маршрутызацыі або палітыкі патрабуе змены выбару шляху; недахоп слоя ўпарадкавання і аднаўлення патрабуе іншага транспарту, а не большага буфера.
Першая гарантыя: байтавы паток на ўзроўні злучэння
Калі VPN патрэбны надзейны ўпарадкаваны паток, аператар павінен вызначыць байтавыя дыяпазоны над асобным шляхам. Кожнае базавае TCP-злучэнне нумаруе толькі свае сегменты, таму атрымальнік не можа пераўпарадкаваць паміж шляхамі, выкарыстоўваючы толькі гэтыя нумары.
Multipath TCP — стандартызаваны прыклад. Ён прапаноўвае адзіны надзейны байтавы паток, каардынуючы некалькі TCP-падпатокаў, з адлюстраваннем паслядоўнасці і пацверджаннем на ўзроўні даных. Праграма чытае паток, а не падпаток, які выпадкова даставіў кавалак першым.
У Linux MPTCP — opt-in для кожнага сокета праз IPPROTO_MPTCP. Калі перамовы не могуць выкарыстоўваць шматяшляховыя паводзіны, дакументаваны запасны варыянт — звычайны TCP, што азначае, што праграма можа працягваць працу праз адзін шлях, ніколі не выкарыстоўваючы другі. Праверце, якія паводзіны ўкаранёны сокет фактычна ўзгадніў, замест таго каб меркаваць, што налада ядра прымянілася.
Другая гарантыя: упарадкаванне, дубляванне і аднаўленне
Шляхі з рознымі затрымкамі і ўзроўнямі страт прымушаюць аператара буферызаваць, пераўпарадкоўваць і перасылаць. Дамова павінна ўказваць дапушчальнае буферызаванне, супрацьціск, які бачыць праграма, і які шлях нясе перасыланне.
Шлях, які застаецца злучаным, але перастае пастаўляць, складаней за чыстае закрыццё. Аператар павінен яго выявіць, перамясціць даныя, якія чакаюць, і пазбегнуць вечнага чакання сегмента, які ніколі не прыйдзе. Простая праверка, што абодва злучэнні актыўныя, не ахоплівае гэты стан.
Дубляванне патрабуе ўласнага правіла. Адпраўка аднаго і таго ж грузу па абодвух шляхах можа палепшыць затрымку, але атрымальнік павінен падавіць копію, перш чым яна дасягне VPN. IPsec anti-replay неабавязковы для кожнай асацыяцыі бяспекі і правярае парадкавыя нумары; слой дублявання, які пераўпарадкоўвае або прайграе пакеты, можа яго актываваць або схаваць праблему, пакуль тунель не ўпадзе.
Трэцяя гарантыя: ідэнтычнасць канчатковага пункта і далучэнне шляху
Партнёру патрэбны стабільны спосаб распазнаць сесію, калі з’яўляецца новы шлях. Калі кожны шлях аўтэнтыфікуецца як асобны тунель, VPN можа бачыць дзве сесіі замест адной. Калі аператар аб’ядноўвае шляхі пад адной сесіяй, ён павінен вызначыць, як аўтэнтыфікуецца новы шлях і што адбываецца са старым.
Запішыце, якія адрасы і ідэнтыфікатары застаюцца стабільнымі: канчатковы пункт тунеля, ідэнтыфікатар сесіі аператара і любы пасярэднік паміж імі. Пасярэднік дадае яшчэ адну мяжу даступнасці і даверу, нават калі ён ніколі не бачыць абаронены груз.
Тут жыве і палітыка. Шлях, які далучаецца з нечаканай сеткі, можа быць тэхнічна сапраўдным і ўсё ж парушаць прадугледжаную мадэль даверу. Вырашыце, ці новыя шляхі прымаюцца аўтаматычна, ці патрабуюць аўтэнтыфікацыі, ці адхіляюцца.
Чацвёртая гарантыя: абмежаваныя паводзіны пры збоі
Тэстуйце поўны збой шляху, а не толькі павольны шлях. Шлях, які выжыў, павінен несці сесію без неабмежаванага росту памяці, і аднаўленне не павінна залежаць ад таймера, даўжэйшага за тое, што праграма церпіць. Калі збойны шлях вяртаецца, аператар павінен вырашыць, ці перабалансаваць, ці пакінуць паток на месцы.
Усталюйце абмежаванні для буферызацыі, перасылання і колькасці шляхоў, затым праверце іх пры страце, пераўпарадкаванні, дубляванні і няроўнасці затрымкі. Агульная прапускная здольнасць — найменш цікавы лік тут; бесперапыннасць пастаўкі і межы памяці — гэта дамова.
Трымайце стан аднаўлення аператара асобна ад крыптаграфічнага стану VPN. Уласны слой надзейнасці, які замяняе ўсталяваную аўтэнтыфікацыю або шыфраванне, не з’яўляецца кароткім шляхам, а паўторнае выкарыстанне парадкавых нумароў паміж слаямі робіць абарону ад прайгравання і дыягностыку ненадзейнымі.
Прыміце аператара з планам тэставання
Напішыце чатыры гарантыі як праверкі пройдзена або не пройдзена: адзіны ўпарадкаваны паток, вызначанае аднаўленне, стабільная ідэнтычнасць сесіі, абмежаваныя паводзіны пры збоі. Запусціце кожную праверку з адным пагоршаным шляхам, а затым з адным выдаленым.
Адзіная паспяховая перадача файла праз змену шляху не даказвае бесперапыннай працы. Паўтарыце перадачу, пераключаючы пераважны шлях, і праверце як погляд аператара, так і ўласныя лічыльнікі VPN. Калі абодва не згодныя, які шлях нёс даныя, дамова яшчэ не назіральная.
Захоўвайце ўзгодненую матрыцу разам з разгортваннем. Яна кажа наступнаму інжынеру, якія паводзіны былі абяцаныя, якія камбінацыі шляхоў былі пратэсціраваныя і які рэжым збою ўсё яшчэ не падтрымліваецца, без чарговага круга здагадак па лямпачках стану злучэнняў.