Серверди алмаштырганда kill switch эмне үчүн трафикти таштайт
Серверди алмаштыруу учурунда kill switch трафикти эмне үчүн бөгөттөйт, клиент ошол аралыкта эмне кылат жана кадимки үзгүлтүктү кармалып калган бөгөттөн кантип ажыратуу керек.
Сиз жакыныраак көрүнгөн серверди тандап, туташууну басасыз, жаңы туннель көтөрүлө электе браузер жүктөөнү токтотот. Белги туташуу абалына өтүп, ар бир өтмөктүн убактысы бүткөнгө чейин ошол жерде турат. Бул тыныгуу адатта kill switch-тин долбоор боюнча иштеши: клиентте трафикти жөнөтө турган туннель жок кезде ал бөгөттөлөт. Тыныгуу кабыл алынарбы, ал клиенттин ошол секунддарда эмне кылганына жана ал бөгөт ачылды дегенде чын эле ачылабы, ошого байланыштуу.
Клиент эки сервердин ортосунда эмне кылат
Акыркы чекитти алмаштыруу бир которгуч эмес, бир нече кадам. Клиент учурдагы туннелди бузат, бөгөттөө эрежелерин жаңыртат, жаңы акыркы чекитти чечип, ага туннелдин сыртынан жетет, анан жаңы маршруттарды орнотуп, бөгөттү ачат. Сиз сезген үзгүлтүк биринчи жана акыркы кадамдын ортосунда.
Бул жерде тартип ылдамдыктан маанилүү. Эгер бөгөттөө эрежелери жаңы акыркы чекит үчүн өзгөчөлүктөн мурун күчүнө кирсе, клиент кол алышууну бүтүрө албайт жана убакыт бүткөнгө чейин туташуу абалында калат. Эгер өзгөчөлүк эски сервердин дарегинин көчүрмөсү болсо, жаңы кол алышуу каалаган чыгуучу пакет сыяктуу көрүнүп, ташталат. Эки учур тең браузерден бирдей көрүнөт, ошондуктан алты секунддан кийин калыбына келген алмашуу менен эч качан калыбына келбеген алмашуунун себеби бир болушу мүмкүн.
Жаңы акыркы чекитке бөгөттө тешик керек
Туннелди куруу үчүн клиент физикалык интерфейс аркылуу жаңы сервердин дареги жана порту боюнча пакеттерди жибериши керек, мисалы, кадимки WireGuard профили үчүн UDP 51820 же OpenVPN үчүн 1194 жана 443, сиздин профилиңиз эмнени көрсөтсө да. Бул трафик жакында түзүлө турган туннелдин ичинде эмес, ошондуктан бүткүл түзмөк үчүн бөгөт ылайыктуу уруксат эрежеси болбосо аны жутуп коёт.
Хост атына негизделген профилдер экинчи талапты кошот: издөөнүн өзү. Эгер клиент бөгөт көтөрүлө электе акыркы чекитти чечсе, кэштелген даректи колдонсо болот, бирок профиль даректерди алмаштырса же кэш жазуусу эскирсе, кол алышуу уруксат эрежеси камтыбаган дарекке кетет. IPv6 муну көрүнүктүү кылат, анткени кош стектүү акыркы чекит A жана AAAA жазууларын жарыялай алат, ал эми v4 дарегин гана камтыган уруксат эрежеси клиентти бөгөттөлгөн v6 дарегине каршы кайра аракет кылууга калтырат.
Параметрлердин аталыштары жана демейки маанилер клиент менен версияга жараша өзгөрөт, ошондуктан экран сүрөттөрүнөн болжолдобой, өз клиентиңиз үчүн документтелген тизмени окуңуз. OpenVPN Connect жөндөөлөрүнүн маалымдамасы openvpn.net/connect-docs/app-settings-windows дарегинде, клиент бөгөттөө жана бөлүнгөн туннель параметрлерин кантип сүрөттөгөнүнө бир мисал.
Fail-closed — абал машинасы, которгуч эмес
Клиенттердин көбү бөгөттү өрт дубалынын саясаты катары үч абалда туюндурат: туннель жогору, трафик туннелден өтөт жана бөгөт жок; туннель ылдый, бөгөт активдүү; жана өтүү, бөгөт активдүү плюс акыркы чекит үчүн убактылуу өзгөчөлүктөр. Каталар так үчүнчү абалда жашайт, анткени ал бир нече секунддун ичинде эки жолу өзгөрүшү керек, ал эми андан чыга албоо туруктуу бөгөткө так окшош.
Механизм платформага жараша өзгөрөт, ийгиликсиздик да. Windows Filtering Platform сүзгүчтөрүнүн салмагы бар, ошондуктан сиздин уруксатыңыздан басымдуу бөгөт сүзгүчү уруксат болсо да пакеттерди таштай берет, ал эми өлтүрүлгөн клиент процесси калтырган сүзгүчтөр колдонмо кеткенден кийин да машинаны тармактан тыш кармай алат. macOS клиенттери адатта pf эрежелерин якорго жазышат, ал жерде эреже тартиби жана тез чечимдер кайсы эреже колдонуларын аныктайт. Linux клиенттери адатта drop саясаты менен жана акыркы чекит, туннель интерфейси жана loopback үчүн ачык уруксаттар менен nftables же iptables тизмегин башкарат. Android-дын always-on VPN функциясы VPN жок туташууларды бөгөттөө параметри менен топтогу эң катуу, анткени операциялык система бөгөттү колдонмого эмес, бүткүл түзмөккө колдонот.
WireGuard өзүнчө эскертүүнү талап кылат, анткени AllowedIPs — маршрут тандоочу, бөгөттөөчү эмес. Ал кайсы максаттар туннелге кирерин чечет; туннели жок пакеттин Wi-Fi аркылуу чыгышын токтотуу үчүн ал эч нерсе кылбайт. Тек WireGuard жана өрт дубалынын эрежеси жок конфигурацияда kill switch иш жүзүндө маршруттун жоктугу, ал эми ташталган кол алышуудан кийин физикалык интерфейс аркылуу чыныгы пакет чыгышы мүмкүн.
Белгиге кароонун ордуна үзгүлтүктү өлчөңүз
Абалдын жарыгын эмес, пакеттерди байкаңыз. Linux-те бир терминалда ачык дарекке жай ping баштаңыз, экинчисинде физикалык интерфейсте туннелдин ташуу портун кармаңыз:
ping -i 0.2 -c 100 1.1.1.1 | tail -5
sudo tcpdump -ni eth0 'udp port 51820'
Экөө тең иштеп турганда клиентте серверди алмаштырыңыз. Үч нерсе маанилүү: ping канча убакыт токтойт, кармоо кол алышуунун жаңы акыркы чекитке жеткенин көрсөтөбү, жана трафик клиенттин абалы туташканга өзгөргөнгө чейинби же кийинби кайтабы. Эгер ping үзгүлтүгү биринчи бүтсө, бөгөт же эрте ачылган, же индикатор моюндай электе туннель көтөрүлгөн. Эгер үзгүлтүк кийинчерээк бүтсө, индикатор ашыкча оптимист.
Windows-та netsh wfp show state клиент өзүн ажыратылган деп айтып турганда да бар болгон бөгөт сүзгүчтөрүн издөөгө боло турган сүрөт жазат. macOS-та sudo pfctl -sr жүктөлгөн эрежелерди жана алардын тартибин тизмелейт. Каалаган сүрөттү клиенттин өз журналы менен коштоңуз; ping-ден алынган убакыт сызыгы бөгөт кеч бүткөнүн же такыр бүтпөгөнүн айтат.
Кадимки караңгылык каршы кармалып калган бөгөт
Бир аз үзгүлтүк ушул функциянын мааниси, ошондуктан каалаган жөндөөнү өзгөртүүдөн мурун талдаңыз:
| What you see | Usually means | Next check |
|---|---|---|
| Two or three seconds of timeouts, then normal browsing | Expected fail-closed gap | Nothing to fix |
| State says connected, traffic stays dead | Block filter or route left behind | Firewall snapshot, client log |
| One app dead while others work | TCP session bound to the old exit address | Restart the app |
| LAN devices unreachable after the switch | LAN exception not reapplied | Allow-LAN or split-tunnel setting |
| New server hangs, the old one reconnects | Permit covers only the old address | Resolved address of the new host, including AAAA |
Экинчи же бешинчи сапка түшсөңүз, сыноо үчүн kill switch-ти өчүрбөңүз, анткени бул маршрут катасын агынтыга айландырат. Клиент кызматын кайра баштаңыз, же процессти өлтүргөндө сүзгүчтөр сакталган жерде түзмөктү кайра жүктөңүз, анан бөгөт тазаланабы, караңыз. Эгер тазаланса, кемчилик бөгөттүн өзүндө эмес, алмаштыруу учурундагы тазалоодо.
Кийинки алмаштыруудан мурун төрт нерсени ырастаңыз: акыркы чекиттин уруксаты профилиңиз чечкен ар бир дарек тобун камтыйт, клиент журналы өтүүнүн бүткөнүн көрсөтөт, ping сынагыңыз белгини эмес, үзгүлтүктү өлчөйт жана клиентти жабуу кадимки байланышты калыбына келтирет. Алмаштыруу учурунда кармап, кийин жиберген kill switch өз ишин аткарат. Эрте же эч качан жибербегенин оңдоо керек.