Zvans pārtrūkst, kad braucat garām pilsētas malai, un VPN ikona pazūd tajā pašā mirklī. Kārdinoši to pierakstīt kā “torņa maiņa nogalināja tuneli”. Notika divas dažādas lietas, un tikai viena no tām ir par torņiem. Radio pāreja var atstāt jūsu IP adresi, noklusējuma maršrutu un sesiju pilnīgi neskartus, savukārt īsta adreses maiņa pārraus jebkuru tuneli, kas nevar pārvietoties līdzi. Noderīgais vingrinājums ir salīdzināt, kā klienti risina šo otro gadījumu, jo tas pasaka, vai redzat projektētu uzvedību vai kļūdu.

Torņa maiņa ne vienmēr ir adreses maiņa

Mobilie tīkli uztur pakešu sesiju dzīvu pāreju laikā, kamēr operatora mobilitātes enkurs paliek nemainīgs. Radio saite mainās, tunelis to nepamana, un nevienā žurnālā nedrīkstētu parādīties atkārtota pieslēgšanās. Tas ir parasts gadījums pārvietošanās laikā pilsētā.

Adresi maina pārvietošanās starp enkuriem, pāreja no Wi-Fi uz mobilo tīklu vai tuneļa atjaunošana operatora pusē pēc ilgas pauzes. Šie notikumi aizstāj avota adresi, ko nes jūsu paketes, un VPN partneris redz partneri, kas ir pārvietojies.

Praktiskās sekas ir tādas, ka kustība nav pierādījums. Ierīce, kas nobraukusi četrdesmit kilometrus, varēja visu ceļu saglabāt vienu adresi, un nekustīga ierīce varēja divreiz nomainīt adresi, jo tīkls tā nolēma. Notikuma reģistrēšana ir vienīgais veids, kā tos atšķirt.

Divi risinājumi: pārvietot tuneli vai pārtaisīt to

Klienti atšķiras ar to, cik ļoti viņiem rūp, ka ārējais avots ir mainījies. Daži piesaista tuneli adresei, uz kuras tas tika uzbūvēts, un pieprasa pilnīgu atjaunošanu. Citi autentificē katru paketi neatkarīgi un vienkārši atjaunina, kur sūta atbildes.

MechanismBehaviour after the source changesWhat the user notices
WireGuardEndpoint updated on the next authenticated packetUsually nothing; the tunnel continues
IKEv2 with MOBIKESecurity association moves to the new addressShort pause, no re-authentication
OpenVPN over UDP with floatPeer address may change without a restartMight survive, depending on timing
Client bound to one addressSession dies and is rebuiltA visible reconnect and a new authentication

Augšējā rinda izskaidro daudzus mulsinošus ziņojumus. WireGuard nav sesijas, ko salauzt: katra pakete nes partnera indeksu un tiek autentificēta, tāpēc derīga pakete, kas ierodas no jaunas adreses, pēc definīcijas ir no šī partnera, un ierakstītais galapunkts tam seko. Klients, kas brauciena laikā nepārtraukti rāda “savienots”, saka patiesību.

Apakšējā rinda arī nav defekts. Sesijas pārtaisīšana atkārtoti izpilda autentifikāciju pret pašreizējo adresi, un tieši to jūs vēlaties, ja vecā adrese tagad var piederēt kādam citam.

Vērojiet notikumu, nevis kustību

Android sistēmā savienojamības apakšsistēma ziņo par tīkla izmaiņām kā notikumiem, un tieši tie jums jāsasaista ar klienta uzvedību. Izvilkums ir apjomīgs, bet būtiskās daļas ir noklusējuma tīkls un tā adrese:

adb shell dumpsys connectivity | grep -E 'NetworkAgentInfo|Default network'
adb shell ip -br addr show
adb logcat -b main -s Vpn:* | head -n 40

Servera pusē ir tiešs mērījums viesabonēšanas gadījumam. WireGuard glabā pēdējo autentificēto galapunktu katram partnerim, tāpēc adreses maiņa parādās kā mainīta vērtība, nevis kā atkārtota pieslēgšanās:

sudo wg show wg0 endpoints
sudo wg show wg0 latest-handshakes

Salīdziniet galapunktu pirms un pēc brauciena. Ja adrese un ports nav mainījušies, tunelim nekas nebija jādara, un atkārtotā pieslēgšanās nāca no citurienes, parasti no lietojumprogrammas. Ja galapunkts mainījās, bet rokas sasveicināšanās laika zīmogs palika tuvu parastajam atslēgas atjaunošanas intervālam, tunelis pārvietojās, nevis restartējās.

Restartēšanās izskatās citādi: rokas sasveicināšanās laika zīmogs tiek atiestatīts uz atkārtotās pieslēgšanās brīdi, un klients reģistrē inicializācijas secību, nevis klusu turpinājumu.

Kad atkārtotā pieslēgšanās ir pareizā uzvedība

Uzskatīt katru atkārtotu pieslēgšanos par kļūdu noved pie konfigurācijām, kas uztur mirušas sesijas dzīvas. Partnerim, kura adrese mainījās tāpēc, ka tīkls to pārdalīja, nevajadzētu turpināt saņemt trafiku vecajam kartējumam, un klients, kas klusi turpina, var nonākt pie sūtīšanas melnajā caurumā, kamēr ikona paliek zaļa.

Salīdziniet abas kļūmes no lietotāja skatpunkta. Atkārtota pieslēgšanās izmaksā dažas sekundes un jaunu autentifikāciju. Novecojis tunelis izmaksā lietojumprogrammu, kas karājas bez kļūdas, ko ir daudz grūtāk izskaidrot un kas daudz biežāk tiek ziņota kā “internets ir salūzis”.

Zem tā slēpjas arī politikas jautājums. Laika posmā starp viena ceļa zaudēšanu un otra izveidi daži klienti atgriežas pie trafika tiešas sūtīšanas. To novērst ir atsevišķa kontrole no automātiskās atjaunošanas, un klients var būt labs vienā un slikts otrā. Izlemiet, kas jums vajadzīgs, pirms regulējat kādu no tiem.

Pierakstiet novēroto secību

Noderīgs ziņojums nosauc notikuma avotu: noklusējuma tīkla maiņu ar jaunu adresi, pāreju no Wi-Fi uz mobilo tīklu vai pāreju bez jebkādas adreses maiņas. Pēc tam tas norāda, ko klients darīja, ar laika zīmogu no servera puses, nevis no atmiņas.

Ja tunelis pārvietojās, sakiet to un atzīmējiet jauno galapunktu saimi. Ja tas tika atjaunots, atzīmējiet, vai autentifikācija izdevās pirmajā mēģinājumā un cik ilgi pastāvēja pārtraukums. Šie trīs fakti atšķir veselīgu mobilo risinājumu no klienta, kas mētājas starp tīkliem.

Un izvairieties no frāzes “torņa maiņa”, ja vien ierīces žurnāls to tiešām neapstiprina. Android savienojamības dokumentācija apraksta atzvanus, kas atšķir pieejamību no noklusējuma tīkla maiņas, un tieši šī atšķirība ir vajadzīga jūsu ziņojumam. Viss pārējais ir stāsts par braukšanu.

Saistītie raksti