VPN orqali xususiy prefiksga yetish davomiylikka ega talab: u ulanish foydali bo'lganicha amal qiladi va ulanish tugaganda tugaydi. Kirish skripti buni ifodalay olmaydi, chunki kirish va tunnelning ko'tarilishi har xil lahzalardir, va kirish paytida mavjud tunnel bir daqiqadan keyin trafikni tashuvchi tunnel bo'lmasligi mumkin. Birinchi qaror qaysi buyruqni ishga tushirish emas. Qaysi komponent prefiksga egalik qilishidir.

Prefiksga egasi kerak, lahza emas

Talabni egaga ega gap sifatida yozishdan boshlang: yeting 10.77.0.0/24 Ofis VPN orqali, o'sha ulanish ko'tarilganicha. Bu gap prefiksni, ulanishni va shartni nomlaydi, va darhol ikkita mashhur o'rinbosarni istisno qiladi: kirish ilgagi va shunday interfeys nomi ppp0 yoki utun2.

Interfeys nomlari ish vaqtida beriladi va qayta ulanishlar orasida barqaror emas. O'tgan hafta ko'rgan nomga mos keladigan ilgak yo ishlamaydi, yo boshqa birovning interfeysiga qarshi ishlaydi. Ikkala natija ham eskirgan taxmin sifatida emas, marshrutlash xatosi sifatida ko'rinadi. Xuddi shu e'tiroz faqat ma'lum bir tunnel ko'tarilganicha mavjud bo'lgan nomga bog'langan har qanday skriptga ham tegishli.

Marshrut niyatining qo'llab-quvvatlanadigan manbasidan foydalaning

Shlyuz, boshqariladigan profil yoki egalik qiluvchi klientning hujjatlashtirilgan marshrut mexanizmi bu mekanizm talabni ifodalay olganda to'g'ri joydir. Qaysi biri qo'llanilishi protokol va provayderga bog'liq, va kalitlar ular orasida sayohat qilmaydi, shuning uchun profilni sozlovchi qiymat OpenVPN mahalliy L2TP yoki IKEv2 klienti haqida hech narsa aytmaydi.

MechanismCan carry extra prefixesWho owns the lifetime
Gateway-pushed routesOften, if the gateway is configured for itThe connection
Managed profile settingsDepends on the client and profile formatThe profile
Provider tunnel settingsYes, as included and excluded routesThe provider process
Manual commandYes, onceNobody

Paket tunnel ishlab chiquvchilari uchun Apple'ning IPv4 tunnel sozlamalari kiritilgan va chiqarib tashlangan marshrutlarni aniq ochib beradi, IPv6 ham o'z juftiga ega. Bular provayder ishlatadigan API'lar, har bir mahalliy VPN paneli administratorga ixtiyoriy marshrut ro'yxatini taklif qiladi degan dalil emas. Agar joriy kombinatsiya kerakli prefikslarni ifodalay olmasa, keyingi qadam operator tomonidan qo'llab-quvvatlanadigan sozlash yo'li, yaxshiroq tutishi degan umidda o'rnatilgan boshqa dastur emas.

Xizmat muddati tozalashni o'z ichiga oladi

Ba'zan tashqi yordamchi haqiqatan ham kerak bo'ladi, va o'shanda «marshrutni qo'sh» uning ishining eng kichik qismidir. U qaysi ulanishga xizmat qilishini va o'sha ulanish qaysi interfeysdan foydalanishini bilishi, tegishli tarmoq holati turg'unlashguncha kutishi, ketma-ket ikki marta ishga tushganda idempotent bo'lib qolishi, va o'zi o'rnatmagan hech narsani tozalamasligi kerak.

Oxirgi shart eng og'riqlisi. Ofis prefiksiga mos keladigan har bir marshrutni o'chiradigan yordamchi ertami-kechmi o'zi qo'shmagan marshrutni ham o'chiradi. Natijada yuzaga kelgan uzilish VPN klientiga yuklanadi, chunki foydalanuvchi ko'radigan qism klientdir. Yordamchi nimaga egalik qilishini yozishdan oldin hal qilish, keyin mahalliy quyi tarmoq nega javob berishni to'xtatganini tushuntirishdan arzonroq.

Qayta ulanish poygasi

Tez qayta ulanishni tasavvur qiling. A sessiyasi yiqiladi, B sessiyasi ko'tarilib o'z marshrutini o'rnatadi, so'ng A'ning kechiktirilgan tozalashi nihoyat ishga tushadi. Agar bu tozalash marshrutlarni prefiks bo'yicha olib tashlasa, B'ning amaldagi holatini ham olib ketadi, va bir soniya oldin ishlagan ulanish endi hech qayerga marshrutlanmaydi.

Bu egalik poygasi, va skriptga uyqu qo'shish faqat qaysi tomon g'alaba qozonishini o'zgartiradi. Yechim tozalashni identifikatsiyaga shartli qilishdir: yordamchi o'rnatgan interfeys va sessiyani hali amaldagi bilan solishtiring, va faqat mos kelganda olib tashlang.

Nimani sinash kerak va marshrut nima qila olmaydi

Qabul to'rtta o'tishni qamrab olishi kerak: birinchi ulanish, boshqa interfeysga qayta ulanish, muvaffaqiyatsiz ulanish urinishi, va yakuniy uzilish. Har biridan keyin tizim uzoq tomondagi manzil uchun haqiqatda tanlagan marshrutni o'qing, siz kutgan marshrutni emas.

route -n get 10.77.0.5
netstat -rn -f inet

Noqulay holatlarni ham xuddi shu bosqichga qo'shing: kerak bo'lganda IPv6, uzoq prefiks bilan qoplanishadigan mahalliy prefiks, va tunnel ko'tarilganicha ishlashda davom etishi kerak bo'lgan ommaviy VPN oxirgi nuqtasiga marshrut. So'ng marshrut nima emasligini yozing. U paketlarni tanlaydi; u uzoq tomonda ruxsat bermaydi va qaytish yo'lini yaratmaydi, va ular alohida egalarga ega alohida talablar bo'lib qoladi.

Siz xohlagan natija har bir o'tishda o'zining qo'llab-quvvatlanadigan ulanish egasiga ergashadigan prefiks, yozilgan mashinada bir marta tasodifan muvaffaqiyat qozongan buyruq emas.

O'xshash maqolalar