Jūs izvēlaties serveri, kas izskatās tuvāk, nospiežat savienot, un pārlūkprogramma pārstāj ielādēt, pirms jaunais tunelis ir gatavs. Ikona pārslēdzas uz savienošanās stāvokli un paliek tur, kamēr katra cilne nokļūst līdz taimautam. Šī pauze parasti ir kill switch, kas darbojas tā, kā projektēts: plūsma tiek bloķēta, kamēr klientam nav tuneļa, pa kuru to sūtīt. Vai pauze ir pieņemama, ir atkarīgs no tā, ko klients dara šajās sekundēs, un no tā, vai bloks tiek noņemts, kad tas saka, ka ir.

Ko klients dara starp diviem serveriem

Galapunkta maiņa ir vairāki soļi, nevis viens slēdzis. Klients nojauc pašreizējo tuneli, atjaunina savus bloķēšanas noteikumus, atrisina un sasniedz jauno galapunktu ārpus tuneļa, pēc tam instalē jaunos maršrutus un noņem bloku. Sprauga, ko jūtat, atrodas starp pirmo un pēdējo soli.

Secība šeit ir svarīgāka par ātrumu. Ja bloķēšanas noteikumi stājas spēkā pirms izņēmuma jaunajam galapunktam, klients nevar pabeigt rokasspiedienu un paliek savienošanās stāvoklī līdz taimautam. Ja izņēmums ir vecā servera adreses kopija, jaunā rokasspiediena izskatās kā jebkurš cits izejošs pakete un tiek izmesta. Abi gadījumi pārlūkprogrammā izskatās vienādi, tāpēc maiņa, kas atjaunojas pēc sešām sekundēm, un tā, kas neatjaunojas nekad, var būt ar vienu un to pašu cēloni.

Jaunajam galapunktam vajag caurumu blokā

Lai izveidotu tuneli, klientam jāsūta paketes uz jaunā servera adresi un portu pa fizisko saskarni, piemēram, UDP 51820 tipiskam WireGuard profilam vai 1194 un 443 OpenVPN, ko vien nosaka jūsu paša profils. Šī plūsma nav tuneļa iekšpusē, kas tikko tiks izveidots, tāpēc bloks visai ierīcei to aprī, ja vien nav atbilstoša atļaujas noteikuma.

Profili, kuru pamatā ir resursdatora nosaukums, pievieno otru prasību: pats vaicājums. Ja klients atrisina galapunktu pirms bloka pacelšanas, tas var izmantot kešatmiņā saglabātu adresi, bet, kad profils maina adreses vai kešatmiņas ieraksts noveco, rokasspiediens dodas uz adresi, ko atļaujas noteikums neaptver. IPv6 to padara redzamu, jo galapunkts ar divkāršu steku var publicēt gan A, gan AAAA ierakstu, un atļaujas noteikums, kas aptver tikai v4 adresi, liek klientam atkārtoti mēģināt pret bloķētu v6 adresi.

Opciju nosaukumi un noklusējuma vērtības atšķiras atkarībā no klienta un versijas, tāpēc lasiet dokumentēto sarakstu savam, nevis miniet no ekrānuzņēmumiem. OpenVPN Connect iestatījumu atsauce vietnē openvpn.net/connect-docs/app-settings-windows ir viens piemērs, kā klients apraksta savas bloķēšanas un sadalītā tuneļa opcijas.

Fail-closed ir stāvokļu mašīna, nevis slēdzis

Lielākā daļa klientu bloku izsaka kā ugunsmūra politiku trīs stāvokļos: tunelis augšā, plūsma iet pa tuneli un bloka nav; tunelis lejā, bloks ir aktīvs; un pāreja, kad bloks ir aktīvs plus īslaicīgi izņēmumi galapunktam. Tieši trešajā stāvoklī dzīvo kļūdas, jo tam ir jāmainās divas reizes dažu sekunžu laikā, un nespēja no tā izkļūt izskatās tieši tāpat kā pastāvīgs bloks.

Mehānisms atšķiras atkarībā no platformas, un arī atteice. Windows Filtering Platform filtriem ir svars, tāpēc bloķējošs filtrs, kas pārsniedz jūsu atļauju, turpina izmest paketes, lai gan atļauja pastāv, un filtri, ko atstājusi nogalināta klienta procesa var noturēt ierīci bezsaistē pēc tam, kad lietotne ir pazudusi. macOS klienti parasti raksta pf noteikumus enkurā, kur noteikumu secība un ātrie lēmumi nosaka, kurš noteikums ir spēkā. Linux klienti parasti pārvalda nftables vai iptables ķēdi ar drop politiku un skaidrām atļaujām galapunktam, tuneļa saskarnei un loopback. Android always-on VPN ar opciju bloķēt savienojumus bez VPN ir stingrākais grupā, jo operētājsistēma bloku piemēro visai ierīcei, nevis katrai lietotnei.

WireGuard ir vajadzīga sava piezīme, jo AllowedIPs ir maršruta atlasītājs, nevis bloķētājs. Tas nosaka, kuri galamērķi nonāk tunelī; tas neko nedara, lai pakete bez tuneļa neizietu pa Wi-Fi. Iestatījumā tikai ar WireGuard un bez ugunsmūra noteikuma kill switch patiesībā ir maršruta neesamība, un pēc izmestas rokasspiediena pa fizisko saskarni var iziet īsta pakete.

Mēriet spraugu, nevis skatieties uz ikonu

Vērojiet paketes, nevis stāvokļa gaismiņu. Linux sistēmā vienā terminālī sāciet lēnu ping uz publisku adresi, bet otrā uztveriet tuneļa transporta portu fiziskajā saskarnē:

ping -i 0.2 -c 100 1.1.1.1 | tail -5

sudo tcpdump -ni eth0 'udp port 51820'

Pārslēdziet serveri klientā, kamēr abi darbojas. Svarīgas ir trīs lietas: cik ilgi ping apstājas, vai uztveršana parāda, ka rokasspiediens sasniedz jauno galapunktu, un vai plūsma atgriežas pirms klienta stāvokļa maiņas uz savienots vai pēc tam. Ja ping sprauga beidzas pirmā, bloks vai nu noņemts par agru, vai tunelis ir augšā, pirms indikators to atzīst. Ja sprauga beidzas vēlāk, indikators ir pārāk optimistisks.

Windows sistēmā netsh wfp show state ieraksta momentuzņēmumu, kurā varat meklēt bloķējošus filtrus, kas joprojām pastāv, kamēr klients apgalvo, ka ir atvienots. macOS sistēmā sudo pfctl -sr uzskaita ielādētos noteikumus un to secību. Sasaistiet jebkuru momentuzņēmumu ar paša klienta žurnālu; jūsu ping laika līnija pasaka, vai bloks beidzās vēlu vai nekad.

Normāla aptumšošanās pret iesprūdušu bloku

Zināma pārtraukšana ir šīs funkcijas mērķis, tāpēc vispirms izvērtējiet, pirms maināt jebkuru iestatījumu:

What you seeUsually meansNext check
Two or three seconds of timeouts, then normal browsingExpected fail-closed gapNothing to fix
State says connected, traffic stays deadBlock filter or route left behindFirewall snapshot, client log
One app dead while others workTCP session bound to the old exit addressRestart the app
LAN devices unreachable after the switchLAN exception not reappliedAllow-LAN or split-tunnel setting
New server hangs, the old one reconnectsPermit covers only the old addressResolved address of the new host, including AAAA

Ja nonācāt otrajā vai piektajā rindā, neizslēdziet kill switch, lai pārbaudītu, jo tas maršruta kļūdu pārvērš noplūdē. Restartējiet klienta pakalpojumu vai pārstartējiet ierīci tur, kur filtri iztur procesa nogalināšanu, un paskatieties, vai bloks pazūd. Ja pazūd, vaina ir tīrīšanā maiņas laikā, nevis pašā blokā.

Pirms nākamās maiņas apstipriniet četras lietas: galapunkta atļauja aptver visas adrešu saimes, ko atrisina jūsu profils, klienta žurnāls parāda pabeigtu pāreju, jūsu ping tests mēra spraugu, nevis ikonu, un klienta aizvēršana atjauno normālu savienojumu. Kill switch, kas iztur maiņu un pēc tam atlaiž, dara savu darbu. Tas, kas atlaiž agri vai nekad, ir pelnījis atkļūdošanu.

Saistītie raksti