Ikki qatlamli VPN: manzil oilasini siz emas, mijoz tanlaydi
Bitta nom, ikkita oila, ikki xil yo‘l. Tunnel sog‘lom bo‘lishi mumkin, so‘rov esa baribir muvaffaqiyatsiz tugaydi, chunki mijoz siz hech qachon marshrutlamagan nomzodni tanlagan.
Tunnel ishlayapti, IPv4 saytlari yuklanmoqda, bitta xost nomi esa vaqt tugashi bilan yakunlanmoqda. Darhol «VPN buzilgan» yoki «kirish ma’lumotlari noto‘g‘ri» degan xulosa keladi, odatda ikkalasi ham to‘g‘ri emas. Nom IPv4 va IPv6 manzillarini qaytardi, ilova bittasini tanladi va o‘sha nomzodlardan faqat bittasining ishlaydigan yo‘li bor edi. Tanlov qarorini mijoz qabul qildi; tunnel shunchaki tanlangan narsani qamrab olmadi.
Tanlov qamrov va’dasi emas
RFC 6724da tasvirlangan standart manzil tanlovi bir nechta variant mavjud bo‘lganda xost qaysi manba va manzil juftligini afzal ko‘rishini belgilaydi. Happy Eyeballs ustiga ulanish strategiyasini qo‘shadi: ikkala oilada urinishlarni boshlaydi va birinchi javob berganini saqlaydi, shunda foydalanuvchi buzilgan oilaning vaqti tugashini kutmaydi.
Hech bir mexanizm yo‘l yaratmaydi. Agar tunnelingiz faqat IPv4 tashisa, AAAA nomzodi hali ham mijoz sinab ko‘rishi mumkin bo‘lgan qonuniy manzil bo‘lib qoladi va nosozlik xato sifatida emas, sekin yuklanish sifatida ko‘rinadi, chunki brauzer orqaga qaytdi. Foydalanuvchi buzilgan emas, sekin sayt haqida xabar beradi va qo‘llab-quvvatlash bileti o‘sha noaniqlikni meros oladi. Buni qat’iy oila bilan qayta hosil qiling va hisobot aniq bo‘ladi.
Aynan shu orqaga qaytish sababli alomat ilovalar orasida izchil emas. Brauzer kechikishni yashiradi; qat’iy oilali buyruq qatori mijozi haqiqiy nosozlikni darhol ko‘rsatadi.
So‘rov aslida qaysi oiladan foydalanganini toping
Tunneldan emas, nomdan boshlang. Ikkala yozuv turini so‘rang va nima qaytganini yozib oling:
dig +short A example.com
dig +short AAAA example.com
curl -4 -sS -o /dev/null -w '%{http_code}\n' https://example.com
curl -6 -sS -o /dev/null -w '%{http_code}\n' https://example.comAgar v4 so‘rovi muvaffaqiyatli bo‘lib, v6 so‘rovi muvaffaqiyatsiz bo‘lsa, muammoni tuzatish mumkin bo‘lgan shaklda qayta hosil qildingiz. Agar ikkalasi ham qobiqdan muvaffaqiyatli bo‘lib, brauzer baribir muvaffaqiyatsiz bo‘lsa, tunnelga tegishdan oldin ilovaning o‘z hal qiluvchisiga yoki keshlangan javobga qarang.
Oilani va manzilni yozuvlaringizda saqlang. «Sayt VPN orqali yuklanmaydi» degan biletni hech kim tekshira olmaydi, «AAAA muvaffaqiyatsiz, A ishlaydi» degan bilet esa aniq yo‘lga ishora qiladi.
O‘sha oila uchun yo‘lni tekshiring
Muvaffaqiyatsiz oila uchun yadrodan qaysi yo‘lni ishlatishini so‘rang va uni tunnelning sozlangan manzillari bilan solishtiring. Linuxda ip -6 route get manzil uchun tanlanadigan interfeys va manbani ko‘rsatadi.
Keyin tunnelning o‘zini tekshiring. WireGuard tengdoshlari ruxsat etilgan IP ro‘yxatini olib yuradi va 0.0.0.0/0 uchun yozuv IPv6 haqida hech narsa demaydi. Agar tengdosh ro‘yxatida IPv6 prefiksi bo‘lmasa, mijozning AAAA trafigini tunnelga yuborishga asosi yo‘q va paket xost boshqacha qiladigan yo‘ldan chiqadi.
Firewall qoidalari va NAT siyosati har bir oila uchun bir xil tekshiruvga loyiq. IPv4 uchun yozilgan qoida hech bir platformada IPv6ni qamrab olmaydi va bir oila ishlab, ikkinchisi ishlamasligining eng keng tarqalgan sababi shu.
Skrinshotni soddalashtirish uchun IPv6ni o‘chirmang
IPv6ni butun tizimda o‘chirish alomatni yo‘q qiladi va sizni tashxissiz qoldiradi. U faqat IPv6 bo‘lgan har qanday manzilni ham buzadi va keyingi ilova uchun o‘sha xatoni yashiradi. Agar mashina haqiqatan ham IPv6 ishlatmasligi kerak bo‘lsa, bu egasi va testi bo‘lgan ongli siyosat. Hodisa paytida uni o‘chirish ikkalasi ham emas.
Mijoz oila bilan nima qilishini hal qiling va uni aniq sozlang: uni tunneldan o‘tkazing yoki qo‘llab-quvvatlanadigan usulda bloklang, tanlov hech qachon yetib bo‘lmaydigan nomzodni taklif qilmasin. Ikkalasi ham qonuniy dizayn. Global o‘chirish ikkalasi ham emas, chunki u umuman dizayn emas.
Biletga nima yozish kerak
To‘rtta narsani yozib oling: xost nomi, muvaffaqiyatsiz bo‘lgan oila, yadro tanlagan yo‘l va oilaga xos so‘rov natijasi. Bu to‘plam boshqa birovga nosozlikni qayta hosil qilish uchun yetarli, ikki yo‘ldan qaysi birini nazarda tutganingizni taxmin qilmasdan.
RFC 6724 manzil tanlash qoidalari mijoz nima uchun o‘sha nomzodni afzal ko‘rganini tushuntiradi, RFC 8305 esa kechikishni yashirgan poyga xatti-harakatini tushuntiradi. Ularning hech biri siz uchun paketni marshrutlamaydi va tunnel bajarishi kerak bo‘lgan qism aynan shu.