Шинэ VPN гаралт дээрх шинэ холболтууд, хуучин урсгалууд хэвээр үлдэнэ
Төлөвлөсөн зайлуулалт нь зөвхөн ангилалгүй урсгалыг зөөнө. Үүнийг маршрут солихтой харьцуулж, үүнийг бариулж буй тэмдэг, хүснэгт, conntrack төлөвийг харна уу.
Хоёр эрүүл VPN гаралт, аль хэдийн ажиллаж буй нэг урт байршуулалт, дараагийн холболт нөгөө туннелийг ашиглах шаардлага. Үүнийг биелүүлэх хоёр арга байгаа бөгөөд тэдгээрийн зөвхөн нэг нь ажиллаж буй гарц дээр аюулгүй. Өгөгдмөл маршрутыг солих нь байршуулалтад хамаарах пакетуудыг оролцуулан бүх пакетыг зөөнө. Төлөвлөсөн зайлуулалт нь шинэ холболтын сонголтыг өөрчилж, хянасан урсгалуудыг эхэлсэн замаар нь үлдээнэ.
Гаралтыг солих хоёр арга
Маршрут солих нь нэг команд бөгөөд секундын дотор буцаах боломжтой тул ослын үед ашиглагддаг. Мөн ялгаваргүй: одоо байгаа байршуулалтын пакетууд гэнэт өөр туннелээр гарч, өөр нийтийн эх хаяг, тусдаа орчуулгын төлөвтэй болно.
Хэрэв алслагдсан тал урсгалыг эх хаягаар хянадаг бол байршуулалт зүгээр л танигдахаа болих магадлалтай. Зайлуулалт үүнээс зайлсхийхдээ холболт бүрт нэг удаа шийдвэр гаргаж, хадгалдаг тул хуучин байршуулалт дуустал гаралтаа хадгална. Энэ бол дасгалын бүх үнэ цэнэ: алслагдсан тал тайлбарлах ёстой ямар ч өөрчлөлт хардаггүй. Энэ нь аль хэдийн мэддэг холболттой тохирох пакетуудыг үргэлжлүүлэн хүлээн авдаг.
Үнэ нь нарийн төвөгтэй байдал: хоёр маршрутжуулалтын хүснэгт, зөв дэгээ дээр ажиллах ангилагч, машин дээр тэдгээрийг ашигладаг бусад бүхэнтэй зохицуулах ёстой тэмдэгүүд.
Гаралт бүрт өөрийн хүснэгтийг өг
Гаралт бүрт маршрутжуулалтын хүснэгт, хоёр сонголтод өөр өөр тэмдгийн утга эсвэл бит хуваарил. Хүснэгт бүрт зөвхөн нэр биш, үүрэгт нь тохирох маршрут хэрэгтэй бөгөөд дутуу тохиолдолд зориудын бүтэлгүйтлийн үр дүн хэрэгтэй. Үндсэн хүснэгт рүү чимээгүй унадаг хоосон хүснэгт — хэн ч сонгоогүй гаралтаар урсгал ингэж гардаг.
ip rule add fwmark 0x10/0x10 table 101
ip rule add fwmark 0x20/0x20 table 102
ip route add default via 192.0.2.1 dev wg-a table 101
ip route add default via 198.51.100.1 dev wg-b table 102Хүснэгт бүрийн төгсгөлд blackhole маршрут нэмэхэд, тохирол олдоогүй хайлт таны сонгоогүй өгөгдмөл рүү зугтахын оронд чанга дуугаар бүтэлгүйтнэ.
Нэг удаа сонго, эхний пакет дээр
Холболтын хяналт үүссэний дараа, чухал маршрутын хайлтаас өмнө ангил. Шинэ, ангилалгүй LAN холболтын хувьд гаралтыг сонгоод холболтын төлөвт хадгал. Дараагийн пакетуудад хадгалсан утгыг бодлогын маршрутжуулалт уншдаг пакетын тэмдэгт сэргээ.
Нарийн хэсэг нь шинэ гэдэг нь юу гэсэн үг вэ. Conntrack хариу харагдахаас өмнө эрт пакет, дахин дамжуулалтад NEW мэдээлсээр байж болох тул зөвхөн энэ төлөвт тулгуурласан ангилагч аль хэдийн гаргасан сонголтыг дарж бичиж болно. Нэгийг оноохоос өмнө холболтод гаралт хадгалагдаагүй эсэхийг шалга.
nftables пакет болон холболтын тэмдгийг тусад нь хадгалдаг бөгөөд мета мэдээллийн гарын авлага тэдгээрийн хоорондын тодорхой хуулбарыг баримтжуулдаг. Холболтын тэмдэг нь таны дүрэм тохирох пакетын тэмдэг болж өөрөө өөрөөсөө болдоггүй бөгөөд энэ нь болгоомжтой бичсэн ангилагч ямар ч нөлөөгүй байх хамгийн түгээмэл шалтгаан юм.
Сэргээлтийг таны санаж буй чиглэл, урсгалаар хязгаарла. Буцаж буй пакетуудад интернэт-гаралтын тэмдэг хэрэглэх нь хариуг LAN руу биш гаралт руу илгээж болох ба шинж тэмдэг нь галт хананы асуудал мэт харагдах нэг чиглэлийн холболт юм. Галт хананы дүрэмд хүрэхээс өмнө хариуны замыг унш, учир нь пакет маршрутлагдаж байгаа бөгөөд зөвхөн илгээгч рүү буцахгүй байна.
Зайлуулалтын дөрвөн үе шат
A-д хүрэлгүйгээр B-г бэлтгэ: маршрутжуулалт, дамжуулалт, зөвшөөрөл, NAT болон буцах зам. Түүний хүснэгт, сонголтын бодлогыг гарцын одоо байгаа тохиргооны эзэмшигчээр дамжуулан суулга.
Ангилагчийг сольж, шинэ, ангилалгүй холболтууд B-г сонгох болтугай, хадгалсан сонголтууд хадгалагдана. Атом nftables гүйлгээ нь хуучин төлөвийг цэвэрлэх шаардлагатай цонхыг зайлсхийлнэ.
A-ийн урсгалууд дуустал A-г асаалттай байлга. Түүний интерфэйс, хүснэгт, алсын гаралт, NAT зураглал нь тэдгээр урсгалын хэсэг хэвээр байгаа бөгөөд NAT дүрмийг засах нь аль хэдийн байгаа холболтыг дахин бүтээхгүй.
Зайлуулалтын нөхцөл биелэхэд A-г ашиглалтаас гарга, үүнийг нэг чимээгүй интервалаар бус, холболтын төлөв, аппликейшны зан төлөвөөр үнэлнэ.
Зайлуулалт юуг амлаж чадахгүй вэ
Хөтчийн хүсэлт нь шинэ тээврийн холболт биш; нэгтгэл хүсэлтүүдийг хуучин холболтоор үргэлжлүүлэн илгээдэг. Харин эсрэгээр, UDP урсгал conntrack-аас хөгшрөх боломжтой бөгөөд дараагийн пакет шинээр ангилагдана. Зайлуулалт нь хянасан урсгалыг дагадаг бөгөөд аппликейшны сессийн тухай ойлголтыг биш.
Хэрэв A өөрийн урсгалууд дуусахаас өмнө бүтэлгүйтвэл хадгалсан тэмдэг тэднийг аварч чадахгүй. Тэд B-ээр дахин холбогдоно, эсвэл огт холбогдохгүй. Төлөвлөсөн зайлуулалт нь анхны зам эрүүл байхад тасралтгүй байдлыг худалдаж авдаг; энэ нь бие даасан гаралтуудын хоорондын төлөвийн хуулбар биш.
Хоёр талыг шалга
Өөрчлөлтөөс өмнө урт хугацааны зөвшөөрөгдсөн холболт, дараа нь үнэхээр шинэ холболт эхлүүл. Аль туннелийг ашиглаж байгаа, алслагдсан тал ямар нийтийн эх хаяг харж байгааг баталгаажуулаад, буцах урсгал буцаж ирж байгаа эсэхийг шалга.
Шинэ сонголт харагдахын тулд conntrack хүснэгтийг хоослох хэрэггүй. Энэ нь зайлуулалт хадгалах ёстой төлөвийг яг устгаж, хяналттай шилжилтийг цэвэр харагдах тесттэй тасалдал болгоно.