FortiClient to‘liq tunnel: faqat ofis quyi tarmog‘ini yo‘naltiring
VPN standart marshrutni o‘rnatadi va mahalliy tarmoq yo‘qoladi. Jadvalni o‘qing, LAN standart marshrutini tiklang, ofis prefikslarini qo‘shing, so‘ng DNSni tuzating.
Tunnel ko‘tariladi, belgi yashil bo‘ladi va mahalliy tarmoq yo‘qoladi: printerlar, NAS va ofis routeri javob berishni to‘xtatadi. FortiClient profil talab qilganini qilyapti. Shlyuz standart marshrutni yubordi, klient uni o‘rnatdi va endi har bir paketning tunnelga kirish yo‘li bor. Tuzatish — marshrutlar jadvalini tahrirlash va uning orqasida DNS tahriri, va bu tahrirlarning tartibi mashina yaxshiroq yoki yomonroq tugashini hal qiladi.
Klient nima o‘rnatdi va LAN nima uchun yo‘qoldi
Klient interfeysi o‘rniga jadvalni o‘qishdan boshlang. macOSda netstat -rn butun jadvalni chop etadi va route -n get default hozir yutayotgan interfeys va metrikani nomlaydi; Linuxda juftlik ip route show va ip route get 8.8.8.8. Ikkisi ham bitta savolga javob beradi: aniqroq hech narsaga to‘g‘ri kelmaydigan paketni qaysi yozuv olib ketadi.
Tunnel qurilmasining nomi qat'iy emas. macOSdagi IKEv2 profili odatda raqam bilan utun ko‘rsatadi, SSL VPN klienti ppp0 ko‘rsatadi, OpenVPN esa tun0 ko‘rsatadi. Turli metrikali ikkita standart marshrut bir vaqtda ham bo‘lishi mumkin, va klient yozuvi paydo bo‘lgan lahzada emas, balki qayta ulangandan keyingina boshqaruvni olishi mumkin. Shuning uchun besh daqiqa farq bilan olingan ikkita jadval nusxasi turli hikoyalar aytishi mumkin.
Tunnelning standart marshruti nima uchun birinchi ketishi kerak
Yadro eng uzun mos keluvchi prefiksni tanlaydi, va bir nechta marshrut bir xil aniq bo‘lsa, eng past metrikalisini tanlaydi. Shuning uchun 0.0.0.0/0 ni yaxshiroq metrika bilan o‘rnatgan klient asl standart marshrutni o‘chirmasdan har bir manzilni yutadi, va shuning uchun jismoniy marshrut hali ham jadvalda va hali ham uzilishni tushuntiradi. Tunnelning standart marshrutini birinchi olib tashlash avvalgi xatti-harakatni tiklaydi. Shundan keyingina tunnel orqali o‘tuvchi prefiks marshruti muallif ko‘zlagan ishni qiladi.
O‘sha qadamdan oldin prefikslarni qo‘shish yarim ishlaydigan mashina beradigan xatodir. Yangi prefiks trafigi tunnelni kuzatadi, va ro‘yxatda yo‘q hamma narsa ham tunnelning standart marshrutini kuzatadi, shuning uchun hech kim qo‘shmagan xizmatni kimdir ochmaguncha hech narsa buzilgandek ko‘rinmaydi. O‘chiring, tiklang, so‘ng qo‘shing, va oraliq holat oldindan aytib bo‘ladigan bo‘lib qoladi.
macOS va Linuxdagi tartib
macOSda bu tartib tunnelning standart marshrutini o‘chiradi, jismoniy standart marshrutni tiklaydi va bitta ofis prefiksini tunnelga qaytaradi. Bu yerdagi misol interfeys nomlarini o‘z jadvalingizdagi nomlar bilan almashtiring.
sudo route delete -net default -interface utun4
sudo route add -net 0.0.0.0 -interface en0
sudo route add -net 10.20.0.0 -netmask 255.255.0.0 -interface utun4Linuxda xuddi shu tartib boshqa vositadan foydalanadi: standart marshrut uchun LAN shlyuzi va ofis prefiksi uchun tunnel qurilmasi. Eski route buyrug‘i eski sintaksisni hali ham qabul qiladi, lekin ip route joriy hujjatlarga mos shakldir.
sudo ip route del default dev tun0
sudo ip route add default via 192.168.50.1
sudo ip route add 10.20.0.0/16 dev tun0Marshrutga qurilma o‘rniga keyingi sakrash kerak bo‘lsa, peer ni klient chiqishidan oling. Taxmin ikkita xatodan birini beradi va ularning ma'nosi boshqa: noto‘g‘ri shlyuz darhol network unreachable beradi, noto‘g‘ri tunnel manzili esa vaqt tugashini beradi. Buyruqni yana o‘zgartirishdan oldin qaysi birini olganingizni o‘qing.
Prefikslar, hal qiluvchi va qorong‘i qoladigan DMZ
Bitta prefiks ishni kamdan-kam to‘liq qoplaydi. Ilova serverlari, boshqaruv tarmoqlari, DMZ va DNS serverlarining o‘zi har biri boshqa diapazonda bo‘lishi mumkin, shuning uchun boshlashdan oldin nomlay oladigan har bir diapazonni sanab chiqing va har bir ping yonida bitta so‘rovni sinab ko‘ring. Sinov o‘rtasida topilgan manzil — o‘zgarishlar yozuvida unutiladigan manzil. Manzil bo‘yicha javob berib, nom bo‘yicha muvaffaqiyatsiz bo‘lgan marshrut odatda marshrutlash libosidagi hal qiluvchi muammosidir.
Hal qiluvchi alohida qaror. Profil ichki DNS serverlarini yuborgan bo‘lsa, standart marshrutni olib tashlash bu manzillarni ommaviy nomlar uchun yetib bo‘lmaydigan yoki faqat tunnel orqali yetib boriladigan qilib qoldirishi mumkin, va ikkala holat ham chalkash qismiy natijalar beradi. Hal qiluvchi manzillarini tunnel orqali o‘tkazing yoki har bir domen bo‘yicha hal qilishni sozlang, shunda ommaviy so‘rovlar mahalliy hal qiluvchidan foydalanadi.
Linux SSL klientida bilishga arziydigan maydonga xos nosozlik bor: tunnel ulanadi, ofis LANi javob beradi, va bitta DMZ diapazoni qorong‘i qoladi. Yetishmayotgan qism — o‘sha diapazon uchun tunnel shlyuzi orqali marshrut, va shlyuz mashinadan mashinaga farq qiladi, shuning uchun qattiq kodlangan manzil keyingi noutbuk qanday buzilishining yo‘lidir. Uni klient holatidan chiqaring va buyruqni o‘zini hujjatlashtiruvchi holda saqlang:
PEER=$(ip -4 addr show dev ppp0 | awk '/peer/ {print $4}' | cut -d/ -f1)
sudo ip route add 192.168.30.0/24 via "$PEER"Ishga tushirishdan oldin ikkita qiymatni o‘qing. peer — nuqtadan nuqtaga tunnelning uzoq uchi, va DMZ marshrutiga aynan shu manzil kerak; yo‘naltirilgan tunnelda uning ekvivalenti klient bildirgan interfeys yoki shlyuzdir. Ikkisi ham ko‘rinmasa, klient siz taxmin qilgan rejimda emas.
Keyingi ulanishdan keyin va buni mahalliy ravishda qachon to‘xtatish kerak
FortiClient uyqudan yoki tarmoq o‘zgarishidan keyin qayta ulanadi va profil belgilagan narsani qayta o‘rnatadi. Shuning uchun qo‘lda qilingan marshrutlar faqat keyingi ulanishgacha yashaydi, va bitta muvaffaqiyatli sinov tuzatishdek ko‘rinishi mumkin bo‘lgan oraliq aynan shu. Kechasi yo‘qoladigan marshrut kutilgan xatti-harakat, yangi nosozlik emas.
Ikkita barqaror javob bor. Har bir ulanishdan keyin tuzatishni qayta ishga tushiradigan skript o‘z muallifidan uzoq yashashi mumkin bo‘lgan vaqtinchalik yechim, holbuki shlyuz administratoridan olingan bo‘lingan tunnel profili haqiqiy tuzatish, chunki unda klient faqat ishga kerakli diapazonlarni o‘rnatadi. Ikkinchisini so‘rang va birinchisini faqat kutayotganda ishlating. To‘liq tunnelni mahalliy bo‘lishdan oldin o‘zingiz rozi bo‘lgan siyosatni ham tekshiring, chunki uzoq tarmoq sizning butun trafigingizni ko‘rishga tayanishi mumkin.
Tekshiruv ro‘yxati qisqa: jadvalni o‘qing, tunnelning standart marshrutini o‘chiring, LAN standart marshrutini tiklang, har bir prefiksni qo‘shing, hal qilishni alohida tuzating va qayta ulanganda marshrutlar qaytishini kuting.