Wi-Fi-аас үүрэн холбоо руу шилжсэний дараах kill-switch: юу эвдэрдэг
Kill-switch нь сүлжээний өөрчлөлт сольдог интерфейсийн нэрсэд тулгуурлан бичигддэг. Түүнд итгэхээс өмнө гадаад зам, хаягийн гэр бүл, шийдэгчийг шалгаарай.
Нэг мөчид зөөврийн компьютер оффисын Wi-Fi-д байна, дараагийн мөчид утсанд холбогдсон, цонх солиж дуусахаас өмнө туннелийн заагч дахин ногоон болсон байна. Ногоон гэрэл туннел дахин холбогдсоныг л мэдээлнэ; тэр завсарт чиглүүлэлт ба блоклох бодлого юу хийсэн нь өөр асуулт. Тэр бодлого нь сүүлчийн суулгацын үед эмхэтгэсэн тохирлын нөхцлийн багц бөгөөд шилжилт саяхан устгасан интерфейс, хаяг, хаягийн гэр бүлийг нэрлэдэг. Тиймээс ижил шилжилт ижил харагдах гурван үр дүн өгдөг: блоклолт үргэлжилнэ, бодлого өөрийнхөө сэргэлтийг блоклоно, эсвэл юу ч хамрахгүй зам нээгдэнэ.
Дэлгэц дээр тэр гурван төлөвийг юу ч ялгахгүй, тиймээс заагч ямар өнгө харуулж байгааг бус, дүрмүүд ямар танигчид бэхлэгдсэнийг асуугаарай. Linux-д дүрэм интерфейс эсвэл түүнээс дүүргэсэн ipset-ийг нэрлэж болно; Android-д VpnService-д setUnderlyingNetworks-оор ямар доод сүлжээг дагахыг хэлж болно. Холбоо бүр солигдох гэж буй холбоос руу заана, тус бүрийг дараа нь дахин үнэлэх ёстой.
Шилжилт үнэндээ юуг дахин бичдэг вэ
Хуучин холбоос алга болоход цөм түүний хаягуудыг устгаж, дамжин өнгөрсөн маршрутуудыг буцааж, үлдсэнээс эх хаягийн сонголтыг дахин байгуулна. Анхдагч маршрут шинэ гарц руу шилжиж, хуучин дүрмүүдийн заасан интерфейсийн индекс алга болсон эсвэл өөр төхөөрөмжид дахин ашиглагдсан. Холбоос тус бүрийн шийдэгчүүд ч шинэчлэгддэг, гэхдээ маршрутуудтай нэг мөчид биш. Энэ бүхэн VPN клиентийн доор явагддаг тул зөвхөн өөрийн туннелийн төлөвийг ажигладаг клиент үүнээс юу ч хардаггүй.
Асуудал нь дүрэм ард байгаа зорилгын оронд тодорхой танигчийг кодлодогт оршино. Туннелийн интерфейсээр гарахгүй бүгдийг хаядаг дүрэм интерфейсийн нэрийг кодлодог; төгсгөлийн цэгийг зөвшөөрдөг дүрэм шинэ сүлжээ өөр тийш чиглүүлж болох хаягийг кодлодог. Танигч алга болоход дүрэм илт буруу болохгүй: эсвэл юутай ч тохирохоо болино, эсвэл буруу зүйлтэй тохирч эхэлнэ.
Нүх гаргалгүй гадаад туннелийг дахин барих
Гадаад тээвэр хуучин эх хаягт холбогдсон байсан тул шинэ хаягаас шинэ сокет нээх ёстой. Төгсгөлийн цэг нь шууд утгаар хаяг биш хост нэр бол үед блок хүчинтэй байхад хайлт амжилттай болох ёстой. Энэ бол дарааллын урхи: төгсгөлийн цэгээс бусад бүгдийг хаях хангалттай хатуу бодлого түүнийг олоход шаардлагатай хайлтыг ч хаяна, хэрэв шийдэл блок өргөхөөс өмнө болохгүй эсвэл амьд туннелээр дамжуулагдахгүй бол. Хоёр дараалал ч ажиллаж болно, гэхдээ клиент аль дарааллд байгаагаа мэдэж байвал л.
Клиентүүд энд оношилгоонд чухал байдаг байдлаар ялгаатай. Зарим нь эхлээд шийдэж дараа нь дүрмүүдийг суулгадаг тул шилжилт харагдах тасалдал авчирч дараа нь өөрөө сэргэдэг; бусдынх блокыг бариад үлдсэн туннелээр хайлтыг зөөхийг найддаг нь туннел холбоостойгоо хамт үхвэл бүрэн бүтэлгүйтдэг. Холболтыг сэргээхээр өргөн шууд анхдагч маршрут нэмэх нь шалгалтыг үргэлж давж, таны саатуулж байсан алдагдлыг үргэлж үлдээдэг.
Хуучин гарц руу буцаж заасан маршрут өөр шалтгаанаар ижил гацсан сэргэлтийг өгдөг, тиймээс клиентийг буруутгахаас өмнө хүснэгтийг уншина уу. Доорх командууд цөм үнэхээр ашиглах интерфейс болон эх хаягийг нэрлэдэг бөгөөд хуучин зам суулгагдсан эсэхийг нэг мөрөөр шийднэ.
ip route get 1.1.1.1
ip -6 route get 2606:4700:4700::1111Шинэ холбоос IPv6 авчирч, дүрмүүд авчрахгүй үед
Үүрэн болон зочны сүлжээ оффисын утсан LAN хэзээ ч хийж байгаагүй ч дэлхийн IPv6 префикс олгодог нь элбэг. Зөвхөн IPv4 дүрэм гэж бичигдсэн бодлого — гараар хийсэн ихэнх iptables болон nftables жорын анхдагч хэлбэр — үүнээс юу ч хамрахгүй. Туннел холбогдсон хэвээр, IPv6 хүрэх боломжтой програмууд түүнээс гадагш гарч, туннел үнэхээр ажиллаж байгаа тул заагч ялгааг харуулж чадахгүй. Эсрэг тохиолдол ч мөн адил түгээмэл: зөвхөн IPv6-ийн дүрмийн багц v6 санал болгодоггүй сүлжээнд юу ч хийхгүй.
Холбоос юу санал болгож, бодлого юу дурдсаныг шилжилтийн хоёр талд харьцуул. Эдгээр команд нь клиентийн ажилладаг ижил баримтуудыг хэвлэдэг:
ip -4 route show default
ip -6 route show default
sudo nft list ruleset | grep -c 'ip6 'Хоёр дахь команд анхдагч маршрут хэвлэж, гурав дахь нь тэг буцаавал шинэ холбоос машиныг ямар ч дүрэм хяналтгүйгээр IPv6-оор гадагш гаргаж чадна. Шилжилтийн дараа бүгдийг дахин ажиллуул, учир нь сонирхолтой тоо бол хоёр гүйлтийн ялгаа. Хоёр дахь нь юу ч хэвлэхгүй бол эсрэг тохиолдол үйлчилж, тэнд ямар ч v6-хүнд бодлого зөвхөн чимэглэл юм.
Шийдэгч сессийн дунд гар солидог
Орчин үеийн системд шийдэгчүүд холбоостой холбогддог тул шинэ холбоос шинэ шийдэгчийн багц, магадгүй өөр split-DNS харагдацтай ирдэг. systemd-resolved холбоос бүрд нэг scope барьж, маршрутаар тэдний хооронд сонгоно, харин macOS scoped шийдэгчүүдийг динамик агуулахаас уншиж, интерфейсийн дарааллыг хүндэтгэдэг. Өөрийн шийдэгчийг суулгасан клиент холбоосынхтой өрсөлдөж, хэн ч харахгүй тэргүүлэх дүрмүүд ялагчийг тодорхойлдог. Тэгэхэд нэр шийдэх эвдэрч болно, пакет шүүлт нь өөрт нь бичсэн ажлыг яг хийж байх үед.
Тохируулсан шийдэгчийг бус, идэвхтэйг уншина уу. systemd хост дээр status дэд команд нь scope бүр аль холбоосоос ирсэн, private-DNS нэр хүчинтэй эсэхийг харуулна:
resolvectl status --no-pager
resolvectl query intranet.example.comАсуулга туннелээр бус физик холбоосоор гарвал клиент тэргүүлэх өрсөлдөөнд хожигдсон бөгөөд ямар ч галт хананы тохиргоо нэрлэлтийг засахгүй. Асуулгын замыг шилжилтийн хоёр талд харьцуулж аль нь хөдөлснийг хар. Шинэ сүлжээ чиглүүлж чадахгүй хувийн хаяг руу шийдэгдэх нэр бол гурав дахь тохиолдол бөгөөд алдаа биш, хугацаа дуусах хэлбэрээр илэрдэг.
Шилжилтийг дасгалжуулж, бүртгэлийг хадгал
Хүлээхийн оронд өөрчлөлтийг санаатайгаар дахин үүсгэ. Туннелийг эхний холбоос дээр өргөж, удаан үргэлжлэх дамжуулалт болон давтан хайлт эхлүүл, дараа нь холбоосыг сольж аль нь амьд үлдэхийг хар. Хуучин холбоос алга болсон ба туннел холбогдсон гэж мэдээлсэн хоорондын зайг тэмдэглэ, учир нь тэр цонхонд бодлого тэссэн эсэх нь шийдэгддэг. Үр дүн нэг талт болохгүйн тулд дарааллыг нөгөө чиглэлд ч ажиллуул.
Үл хамаарах зүйлс өөрийн гэсэн шалгалт шаарддаг, учир нь хуучин сүлжээнд үндэслэлтэй байсан тойролт шинэд автоматаар үндэслэлтэй болохгүй. Гэрийн LAN дээрх принтер, NAS эсвэл captive portal үүрэн холбоонд ижил төстэй зүйлгүй, тэдэнд хүрч байсан үл хамаарах зүйл ижил төстэй зүйлгүй дүрэм болно.
Чиглэл бүрд интерфейсийн нэрс, санал болгож буй гэр бүлүүд, хүчинтэй шийдэгч, тасалдлын уртыг бич. Дахин холбогдох нь тээвэр сэргэснийг батална, завсарт блок тэссэнгүй, эдгээр нь тасалбарт оруулах тусдаа мэдэгдэл юм. Тэр бүртгэлтэйгээр дараагийн шилжилтыг ой санамжтай бус, мэдэгдэх төлөвтэй харьцуулна.