VPNni to'liq tunnelga o'tkazasiz, trafikning katta qismi bo'ysunadi, keyin bitta manzil to'g'ridan-to'g'ri javob beradi — printer, NAS, 10.x dagi sakrash xosti. Aniq o'qish tunnel oqayotganini bildiradi, shuning uchun standart marshrut metrikasini pasaytirasiz va hech narsa o'zgarmaydi. O'sha muvaffaqiyatsiz urinish ishoradir: standart marshrut zaxira, hukm emas. Marshrut qidiruvi metrikalarni solishtirishdan oldin eng uzun mos prefiksni oladi, shuning uchun /24 har qanday raqam qo'shilsa ham /0 ni yutishda davom etadi. Bu tartib aniq bo'lgach, oqish odatda kimdir ataylab o'rnatgan marshrut yoki mijoz hech qachon qamrab olishni niyat qilmagan prefiks bo'ladi.

Standart marshrut aslida nima va'da qiladi

0.0.0.0/0 har qanday IPv4 manzilga nol bit aniqlik bilan mos keladi. U xost o'z jadvali yaxshiroq tasvirlamagan hamma narsaga yeta olishi uchun mavjud. 192.168.1.0/24 ga marshrut 24 mos bitni olib yuradi, shuning uchun 192.168.1.40 uchun kimdir metrikalar, ma'muriy masofa yoki mijoz ustuvorlik maydoni deb ataydigan narsani solishtirishdan oldin u yutadi. Xuddi shu qoida Linux FIB, Windows marshrutlash jadvali va macOS orqasidagi BSD stekida amal qiladi.

Oddiy LANda bu xatti-harakat xususiyatdir. Mahalliy subnet bevosita ulangan, tunnel sizning ko'rishishingizni olib yurganda printer ishlashda davom etadi va hech narsa noto'g'ri sozlanmagan. So'rashga arziydigan savol o'sha manzil nega to'g'ridan-to'g'ri ketayotgani emas, balki qaysi jadvaldagi qaysi prefiks unga mos kelishi va uni u erga kim qo'ygani.

Yarim standartlar, yoki standart yozuv nega tegmagan ko'rinishi mumkin

Eng toza misol redirect-gateway def1 OpenVPNda. Standartingizni o'chirib almashtirish o'rniga u 0.0.0.0/1 va 128.0.0.0/1 qo'shadi. Birgalikda bu juftlik butun IPv4 ni qamrab oladi, har bir prefiks /0 dan uzun va ikkalasi ham router standartini joyida qoldirib uni yengadi. Keyin marshrutlar ro'yxatini ishga tushiring, asl standart hanuz o'sha yerda, hanuz shlyuzingizga ishora qiladi; u faqat internet manzillari uchun hech qachon tanlanmaydi.

WireGuard ning wg-quick siyosatga asoslangan marshrutlash orqali xuddi shu natijaga erishadi. AllowedIPs 0.0.0.0/0 ni qamrab olganda u o'z jadvalini yaratadi, belgilangan paketlarni u yerga yuboradi va asosiy jadvalning nol uzunlikdagi prefiksini e'tiborsiz qoldiradigan qoida qo'shadi. Asosiy jadval standart yozuvini saqlaydi va qoidalar interfeysga tegishli trafik uchun birinchi navbatda tunnel jadvali so'ralishini hal qiladi.

Ikkala dizayn ham tunneldan tashqarida aynan bitta marshrutni talab qiladi: asl shlyuz orqali VPN serverining o'z manziliga xost marshruti. Usiz mijoz tunnelni quradigan paketlarni tunnel ichida olib yurishga urinadi va ulanish hech qachon tugamaydi. Shuning uchun qat'iy to'liq tunnel profilida ham jadvalingizda tunnel bo'lmagan marshrut odatiy hol. Savol berishga arziydigan marshrutlar siz uchun haqiqatan muhim manzillarni qamrab oladiganlaridir.

Metrikalar durangni, prefikslar g'oliblarni hal qiladi

Metrikalar faqat manzilga bir xil darajada mos keladigan nomzodlar orasida solishtiriladi. Linuxda ip route get 10.20.5.9 g'olibni jadvali bilan chop etadi, ip route show table all nomzodlarni sanab chiqadi, har qanday yarim standart va qoida ishora qilgan har qanday jadval bilan birga. Windowsda Find-NetRoute -RemoteIPAddress 10.20.5.9 tanlangan marshrut va manba manzilini qaytaradi, Get-NetRoute xom jadvalni ko'rsatadi — lekin samarali xarajat marshrut metrikasi plyus interfeys metrikasi, shuning uchun sekin adapter yutayotgandek ko'rinadigan durangni yutqazishi mumkin.

Ko'radiganlaringizning ko'p qismini uchta holat qamrab oladi:

  • Xuddi shu manzil, /24 va /0: metrikalar nima desa ham prefiks uzunligi bo'yicha /24 yutadi.
  • Xuddi shu manzil, turli metrikali ikki /24: past samarali metrika yutadi.
  • Xuddi shu manzil, ikki jadval, biri siyosat qoidasi bilan tanlangan: qoida avval jadvalni tanlaydi va prefiks solishtiruvi uning ichida bo'ladi.

Uchinchi holat bu hisobotlarning ko'p qismi tugaydigan joy. Linux ning ip rule yoki Windows VPN trafik filtri trafikni hech qachon tunnel standartini saqlamagan jadvalga yuborishi mumkin va asosiy jadval har doim benuqson ko'rinadi.

Bu chetlanish odatda kimga tegishli

Jadvaldan emas, profildan boshlang. Split-tunnel konfiguratsiyalari va har bir ilova uchun VPN sozlamalari nomlangan prefikslarni ataylab tunneldan tashqarida qoldiradi; bitta xususiy subnetni himoya qilib umumiy ko'rishni to'g'ridan-to'g'ri qoldiradigan ish profili mo'ljallangandek ishlaydi va uni bekor qilish u amalga oshirishi kerak bo'lgan siyosatni buzadi. Microsoft ning VPN marshrutlash qo'llanmasi majburiy tunnel trafigi va aniq istisnolar orasida xuddi shu chiziqni tortadi, bu esa uni biror narsani tahrirlashdan oldin foydali o'zaro tekshiruvga aylantiradi.

Keyin qoldiqlarni qidiring. Endi mavjud bo'lmagan interfeysga yoki oldingi tarmoq manziliga ishora qiluvchi marshrut dok stansiyalari, USB adapterlar va konteyner ko'priklari kelib ketgandan keyin paydo bo'ladi. Uni bir marta o'chirish oxiri emas: NetworkManager aloqa profillari, netplan fayllari va Windows ning doimiy marshrutlari uni keyingi ulanish yoki yuklanishda qayta o'rnatadi, shuning uchun biror narsani tahrirlashdan oldin unga egalik qiluvchi fayl yoki profilni toping.

Keyin IPv6 ni alohida tekshiring. ip -6 route va Get-NetRoute -AddressFamily IPv6 alohida holat, alohida standartlar va alohida mijoz xatti-harakatini saqlaydi. Faqat IPv4 auditi mahalliy IPv6 yo'lini jimgina afzal ko'radigan ikki stekli xost haqida hech narsa demaydi va faqat shu mijozni split-tunnel kabi ko'rsatishi mumkin.

Ilovaning o'z oqimi bilan tasdiqlang

Ilova haqiqatan ishlatadigan manzilni yozib oling, keyin tizimdan shu ilova bog'lanadigan manba manzilidan qaysi yo'lni olishini so'rang. ip route get 10.20.5.9 from 192.168.1.40 Linuxda bunga javob beradi; Find-NetRoute -RemoteIPAddress 10.20.5.9 plyus mahalliy manzil Windowsda buni qiladi. Natijani profil da'vo qilgan narsa bilan solishtiring. Brauzerning ommaviy IP sahifasi bitta protokolda bitta manzilni sinaydi va shikoyatni boshlagan xususiy manzil haqida hech narsa demaydi.

Farqni tushuntiruvchi eng tor ob'ektni tuzating. Agar istisno tasdiqlangan bo'lsa, prefiksni yozib qo'ying va qoldiring; bo'lmasa, standart metrikasini pasaytirish o'rniga marshrutni olib tashlang yoki tunnel orqali aniq tor marshrut qo'shing. Metrikani pasaytirish uzunroq prefiksdan o'ta olmaydi va ikki /1 marshrut internet yo'liga egalik qilganda standartni tahrirlash ham hech narsani o'zgartirmaydi.

Keyin tunnelni qayta ulang va xuddi shu so'rovni takrorlang. Mijozlar har bir ulanishda marshrutlarni qayta o'rnatadi, shuning uchun faqat keyingi qo'l siqishgacha davom etadigan o'zgarish sinalmagan. Yo'l hanuz farq qilsa, qolgan gumondorlar siyosat qoidasi, ikkinchi jadval yoki mijoz tomonidagi filtr — standart marshrut emas.

  • Ilova haqiqatan ishlatadigan manzil va manba manzilini nomlang.
  • Yutgan marshrutni ip route get yoki Find-NetRoute bilan chop eting.
  • Internet yo'liga /1 juftlik yoki siyosat jadvali egalik qilishini tekshiring.
  • /0 dan uzun va manzilga mos keladigan har bir prefiksni sanang.
  • IPv6 tekshiruvini alohida takrorlang.
  • Qolgan marshrutni uni o'rnatuvchi fayl, profil yoki filtrgacha orqaga kuzatib boring.
  • Tuzatilgan deb aytishdan oldin qayta ulang va so'rovni yana ishga tushiring.

Agar yettisi ham profil bilan mos kelsa, tunnel aynan sozlangan ishni qilmoqda va tuzatish metrikaga emas, profilga tegishli.

O'xshash maqolalar