Split tunneling odatda ikki usuldan birida muvaffaqiyatsiz bo'ladi. Yo tunnel ichida bo'lishi kerak bo'lgan trafik uni aylanib o'tadi, yo tashqarida qolishi kerak bo'lgan trafik ichkariga tortiladi. Eskirgan qoida tufayli yuzaga kelgan nosozlik birinchi tur, va u ko'proq chalkashtiradi, chunki qoida yozilganidek qo'llaniladi. O'zgargan narsa manzil: xizmat endi qoida hech qachon nomlamagan manzilda javob beradi, tunnelning o'zida esa hech narsa noto'g'ri emas.

Qoida nimani qotiradi va DNS nima qaytaradi

Split tunnel qoidasi manzillar haqidagi statik bayonot bo'lib, odatda prefiks, marshrut yoki manzillar ro'yxati sifatida ifodalanadi. U yuborish paytida paketning manziliga qarab baholanadi. Xost nomi yashash muddati va keshga ega manzillar to'plamini qaytaradigan qidiruvdir, va javob resolver, so'rov turi va daqiqaga qarab farq qilishi mumkin.

Bu ikki obyekt hech qachon bir-biri bilan kelishmaydi. Qoida o'ziga berilgan prefiksga mos kelishda davom etadi, xizmat beradigan manzilni o'zgartirishda davom etadi, va ular orasidagi farq jimgina kengayadi. Shuning uchun alomat konfiguratsiya o'zgarishidan keyin emas, provayder ko'chishidan yoki sertifikat yangilanishidan keyin paydo bo'ladi. Hech kim tunnelni tahrirlamadi, shuning uchun hech kim tunnelga qaramaydi, va diagnostika siyosatga emas, ilovaga qarab og'adi.

Moslik buziladigan uch yo'l

Aniq holat ko'chib ketgan xizmat: operator unga yangi manzil berdi, DNS ergashdi, istisno esa ergashmadi. Ikkinchisi qoida hech qachon qamramagan manzillar oilasi bo'lib, bu nom faqat IPv4 uchun bo'lgan istisno e'tiborsiz qoldiradigan AAAA yozuvlarini qaytara boshlaganda yuz beradi. Uchinchisi resolver farqi: ichki va ommaviy ko'rinish bir xil nom uchun turli manzillar qaytarishi mumkin, shuning uchun ilovangiz ishlatadigan manzil siz sinab ko'rgan manzil emas.

Keshdagi ulanish to'rtinchi varianta va uni o'tkazib yuborish oson. Ilova bir soat oldin hal qilgan manzil bilan hali gaplashayotgan bo'lishi mumkin, bu yangi qidiruvingiz va uning ochiq socketi xizmat qayerda yashashi haqida kelishmasligini bildiradi.

Ilova haqiqatda ishlatadigan manzilni o'qing

Brauzer yorlig'idan emas, operatsion tizim va socket jadvalidan so'rang. Qidiruv nom hozir nimaga hal bo'lishini aytadi, socket jadvali esa jarayon ulangan manzilni ko'rsatadi, u eskiroq bo'lishi mumkin. Nazariya tuzishdan oldin ikkalasini ham ishga tushiring, chunki ular orasidagi farq taxminan yarim holatda javobning o'zi.

getent ahosts api.example.com
dig +short api.example.com A
dig +short api.example.com AAAA
ss -tnp | grep -F api
ip route get 203.0.113.40

Keyin qoida nimani qamrashini taqqoslang. Agar joriy manzil istisnodan tashqarida bo'lsa va so'rov baribir muvaffaqiyatsiz bo'lsa, tunnel konfiguratsiyasiga tegmasdan sababni topdingiz. Agar ilova qoidaga mos manzilga ulangan bo'lsa va so'rov baribir muvaffaqiyatsiz bo'lsa, muammo tunnelning narigi tomonida va bu noto'g'ri tekshiruv.

Alomatni emas, mexanizmni tuzating

Agar mahsulot parvarishlanadigan domen asosidagi yo'naltirishni qo'llab-quvvatlasa, undan foydalaning va uning hujjatlashtirilgan yangilash va qamrov xatti-harakatiga rioya qiling. Bu statik taxminni parvarishlanadigan javob bilan almashtiradi, xususiyat hujjatdagidek ishlashiga bog'liq bo'lish evaziga.

Agar dizayn statik ro'yxatga tayansa, unga egasi va yangilash rejasini bering. Rejada manzil qanday aniqlanishi, o'zgarishni kim tasdiqlashi va ro'yxat provayder ko'chishiga qanchalik tez ergashishi kutilishi aytilishi kerak. Egasiz ro'yxat — sababi ma'lum bo'lgan kelajakdagi uzilish.

Qisqa sinovda ko'rgan har bir manzilni ushlash uchun istisnoni katta qo'shni tarmoqqa kengaytirmang. Bu tuzatish emas; bu xavfsizlik chegarasining doimiy o'zgarishi, va qoida mavjud ekan, u aloqasiz xizmatlarning tunnelni jimgina chetlab o'tishiga yo'l qo'yadi.

Maqsadning ikki yarmini ham tekshiring

Split tunnel dizaynining ikki maqsadi bor, tuzatish ikkalasini ham saqlashi kerak. Himoyalangan xizmat tunneldan o'tishi kerak, istisno qilingan toifalar esa uni aylanib o'tishda davom etishi kerak. Tuzatilgan manzilga yangi ulanishni sinab ko'ring, keyin tashqarida qolishi kerak bo'lgan narsani sinab ko'ring.

curl -sv --max-time 5 https://api.example.com/ -o /dev/null 2>&1 | grep -E 'Trying|Connected to'
curl -sS --max-time 5 https://public.example/ -o /dev/null -w '%{http_code}\n'

Yangi manzilni, tanlangan mexanizmni va sanani yozib qo'ying. Aynan shu eslatma keyingi odamning VPN o'z konfiguratsiyasini tasodifan e'tiborsiz qoldirdi degan xulosaga kelishini oldini oladi.

O'xshash maqolalar