VPN се поново повезује током вожње: промена радија или IP-а?
Примопредаја између торања може оставити IP пут нетакнутим. Упоредите клијенте који тунел премештају с онима који га изнова граде и читајте мрежни догађај, не вожњу.
Позив се прекида кад прођете ивицом града, а икона VPN-а нестаје у истом тренутку. Заводљиво је то забележити као „промена торања убила је тунел“. Догодиле су се две различите ствари и само се једна од њих односи на торањ. Примопредаја радија може оставити вашу IP адресу, подразумевану руту и сесију потпуно нетакнутима, док ће стварна промена адресе прекинути сваки тунел који не може да се премести с њом. Корисна је вежба упоредити како клијенти поступају у том другом случају, јер вам говори видите ли пројектовано понашање или грешку.
Промена торања није нужно промена адресе
Мобилне мреже држе пакетну сесију на животу током примопредаја докле год сидро мобилности оператера остаје исто. Радио веза се мења, тунел то не примећује и ни у једном запису не би требало да се појави поновно повезивање. То је уобичајен случај за кретање унутар града.
Адресу мења премештање између сидара, прелазак са Wi-Fi на мобилну мрежу или поновно успостављање тунела на страни оператера након дуге паузе. Ти догађаји замењују изворну адресу коју носе ваши пакети, а peer VPN-а види peera који се преместио.
Практична последица је да кретање није доказ. Уређај који је прешао четрдесет километара можда је целим путем задржао једну адресу, а уређај који мирује можда је двапут променио адресу јер је мрежа тако одлучила. Бележење догађаја једини је начин да их разликујете.
Два дизајна: премести тунел или га изнова изгради
Клијенти се разликују по томе колико им је важно да се спољни извор променио. Неки везују тунел за адресу на којој је изграђен и захтевају потпуно поновно успостављање. Други проверавају сваки пакет независно и само ажурирају камо шаљу одговоре.
| Mechanism | Behaviour after the source changes | What the user notices |
|---|---|---|
| WireGuard | Endpoint updated on the next authenticated packet | Usually nothing; the tunnel continues |
| IKEv2 with MOBIKE | Security association moves to the new address | Short pause, no re-authentication |
| OpenVPN over UDP with float | Peer address may change without a restart | Might survive, depending on timing |
| Client bound to one address | Session dies and is rebuilt | A visible reconnect and a new authentication |
Горњи ред објашњава многа збуњујућа извештаја. WireGuard нема сесију коју би се могло прекинути: сваки пакет носи индекс peera и проверава се, па је валидан пакет који долази са нове адресе по дефиницији од тог peera, а забележена завршна тачка га следи. Клијент који током вожње непрекидно приказује „повезано“ говори истину.
Ни доњи ред није грешка. Поновна изградња сесије поново покреће проверу према тренутној адреси, што је управо оно што желите кад стара адреса сада може припадати неком другом.
Посматрајте догађај, а не кретање
У Android-у подсистем повезивања извештава промене мреже као догађаје и управо њих треба повезати са понашањем клијента. Испис је опширан, али релевантни делови су подразумевана мрежа и њена адреса:
adb shell dumpsys connectivity | grep -E 'NetworkAgentInfo|Default network'
adb shell ip -br addr show
adb logcat -b main -s Vpn:* | head -n 40
На страни сервера постоји директно мерење за случај роуминга. WireGuard чува последњу проверену завршну тачку за сваког peera, па се промена адресе појављује као промењена вредност, а не као поновно повезивање:
sudo wg show wg0 endpoints
sudo wg show wg0 latest-handshakes
Упоредите завршну тачку пре и после вожње. Ако су адреса и порт непромењени, тунел није морао ништа да уради и поновно повезивање је дошло однекуд другде, обично из апликације. Ако се завршна тачка променила, а временска ознака руковања остала је близу уобичајеног интервала обнове кључа, тунел се преместио, а није се поново покренуо.
Поновно покретање изгледа другачије: временска ознака руковања враћа се на тренутак поновног повезивања, а клијент бележи след иницијализације уместо тихог наставка.
Када је поновно повезивање исправно понашање
Ако свако поновно повезивање третирате као квар, долазите до конфигурација које држе мртве сесије на животу. Peer чија се адреса променила јер ју је мрежа прерасподелила не би требало да настави да прима саобраћај за старо мапирање, а клијент који тихо наставља може завршити шаљући у црну рупу док икона остаје зелена.
Упоредите оба квара из корисничке перспективе. Поновно повезивање кошта неколико секунди и нову проверу. Застарео тунел кошта апликацију која се закочи без грешке, што је много теже објаснити и много вероватније пријављено као „интернет је покварен“.
Испод се крије и питање политике. У празнини између губитка једног пута и успоставе другог неки клијенти прелазе на директно слање саобраћаја. Спречавање тога је засебна контрола од аутоматског опоравка, а клијент може бити добар у једноме и лош у другоме. Одлучите шта вам треба пре него што подесите било шта од тога.
Запишите опажени след
Користан извештај именује извор догађаја: промену подразумеване мреже са новом адресом, прелазак са Wi-Fi на мобилну мрежу или примопредају без икакве промене адресе. Затим наводи шта је клијент учинио, са временском ознаком са стране сервера, а не из сећања.
Ако се тунел преместио, реците то и забележите нову фамилију завршних тачака. Ако је изнова успостављен, забележите да ли је провера успела из првог покушаја и колико је празнина трајала. Те три чињенице разликују здрав мобилни дизајн од клијента који се пребацује између мрежа.
И избегавајте израз „промена торања“ осим ако запис уређаја то заиста потврђује. Документација Android-а о повезивању описује повратне позиве који разликују доступност од промене подразумеване мреже, а управо је та разлика оно што вашем извештају треба. Све остало је прича о вожњи.