Ikki sayt orasidagi VPN ga ikkinchi subnet qo’shish: ikki yo’l
Siyosatga asoslangan tunnellar ikki tomonda mos selektorlarni talab qiladi; yo’lga asoslanganlari yo’l talab qiladi. To’g’ri yo’lni tanlang va avval qaytish yo’lini tuzating.
Ishlayotgan saytlararo tunnelga ikkinchi subnet qo’shish bir loyihada besh daqiqa, boshqasida esa deyarli butun tushdan keyinni oladi. Tunnel siz aytgan prefikslar uchun yo’llar o’rnatsa, siz yo’l qo’shasiz va trafik unga ergashadi. U bitta qat’iy selektor juftligi ustida kelishsa, yangi prefiks ikki tomon mos juftlikda kelishguncha himoyasiz qoladi. Uch narsa hal qiladi: har bir tomon konfiguratsiyasi aslida nimani tasvirlaydi, kelishilgan trafik eng kichik mos juftlikkacha torayadimi va yangi diapazonning qaytish yo’li kimniki.
Holat yorlig’ini emas, yadroni o’qing
Ulangan deb xabar bergan tunnel kamida bitta bola assotsiatsiyasini o’rnatgan, lekin siz o’ylagan bo’lishi shart emas. Linux da yadro nima qo’llanilishini ko’rsatadi: ip xfrm policy selektor juftlarini sanaydi, swanctl --list-sas (yoki eski ipsec statusall) esa tomonlar nima ustida kelishganini har bir yo’nalishdagi trafik selektorlari bilan ko’rsatadi. Yangi prefiks ikkalasida ham bo’lmasa, konfiguratsiya fayli nima desa ham, u himoyasiz.
Buni yo’llar jadvali bilan solishtiring. Yo’lga asoslangan qurilmada tunnel qurilmasi himoyalangan prefikslar uchun keyingi qadam. Siyosatga asoslangan qurilmada uzoq subnet uchun alohida yo’l ko’pincha bo’lmaydi, faqat standart yo’l bo’ladi, chunki trafikni jadval emas, siyosat tanlaydi.
Siyosatga asoslangan: ikki tomon ham yangi prefiksni sanashi kerak
strongSwan atamalarida selektor bola konfiguratsiyasining local_ts va remote_ts ichida, leftsubnet va rightsubnet vorislarida turadi. Yangi prefiks ikki tomonda ko’zgu kabi ko’rinishi kerak: A sayt mahalliy deb atagan narsani B sayt uzoq deb ataydi. Nomuvofiqlik toza xatoni kamdan-kam beradi. Tomonlar kesishmagacha torayadi, eski prefiks ishlayveradi va faqat yangisi jimgina muvaffaqiyatsiz bo’ladi.
swanctl --load-conns
swanctl --initiate --child <child-name>
swanctl --list-sas
ip xfrm policy
pfSense yoki OPNsense da bu yangi mahalliy subnetni yangi uzoq subnet bilan juftlaydigan ikkinchi Phase 2 yozuvi, so’ngra qo’llash demakdir. Eski yozuvni saqlang; almashtirish asl subnetni qo’shish o’rniga ko’chiradi. Mavjud Phase 2 allaqachon 0.0.0.0/0 kabi supertarmoqni yoki umumlashtirilgan diapazonni qoplasa, yoniga torroq yozuv qo’shmang: ustma-ust tushgan selektorlar raqobatdosh siyosatlarni o’rnatadi va baholash tartibi g’olibni belgilaydi.
IKEv1 har bir subnet juftini o’zining Phase 2 siga aylantiradi, har almashinuvda bitta juft olgan tomon qolganini tashlaydi. IKEv2 bitta bolada bir nechta selektor juftini olib yurishi mumkin, lekin ikkala amalga oshirish qabul qilsagina. swanctl --list-sas dan olingan ro’yxat haqiqat; siz yozgan narsa so’rov.
Yo’lga asoslangan: yo’lning o’zi siyosat
XFRM interfeysi yoki VTI qurilmasi trafikni yo’llar jadvaliga ko’ra olib yuradi. Yangi prefiksni ikki saytda qurilmaga yo’naltirasiz va interfeys o’zgarishiga bog’langan holat qo’llaniladi. Sinxronlash uchun selektor jufti yo’q, shuning uchun subnetlar ko’payganda bu loyiha yaxshiroq kengayadi. strongSwan ning yo’naltirish qo’llanmasi yadro tomonini batafsil ko’rib chiqadi.
ip route add 192.168.60.0/24 dev xfrm0
ip route get 192.168.60.10
WireGuard yanada ilgarilaydi. AllowedIPs bir vaqtning o’zida kripto ruxsat ro’yxati va wg-quick orqali yo’llar jadvali yozuvi. Prefiksni faqat bir tomonga qo’shsangiz qo’l berishish, chiquvchi paketlar va sukunat olasiz, chunki uzoq tomon manbasi o’z ro’yxatida bo’lmagan paketlarni tashlaydi. wg set shakli butun ro’yxatni almashtiradi, shuning uchun avval ishlagan prefikslarni qayta yozing, aks holda ularni kesib tashlaysiz:
wg set wg0 peer <PUBKEY> allowed-ips 192.168.10.0/24,192.168.60.0/24
ip route add 192.168.60.0/24 dev wg0
Ikkinchi buyruq wg-quick o’rniga wg set ishlatganingizda ixtiyoriy emas. Yadro yangi ro’yxatni darhol qabul qiladi, lekin hech kim unga yo’l qo’shmaydi, shuning uchun mahalliy yaratilgan trafik hali ham standart shlyuzdan chiqadi. Yangi WireGuard subnetining tunnel xostidan ishlab, noutbukdan ishlamasligining eng keng tarqalgan sababi shu.
Qaytish yo’li tunneldan ko’proq muvaffaqiyatsiz bo’ladi
Yangi uzoq subnetsagi xostlar javoblarni VPN shlyuzi orqali qaytarishi kerak. Agar bu shlyuz ularning standart routeri bo’lmasa javob LAN routeriga boradi, u uni tashlaydi yoki shaxsiy manba manzili bilan internetga yuboradi. Shlyuzdan emas, uzoq tomondagi xostdan sinang: Linux da ip route get 10.30.20.15 yoki PowerShell da Find-NetRoute -RemoteIPAddress 10.30.20.15 xost haqiqatda ishlatadigan keyingi qadamni ko’rsatadi. Agar javob tunnelning oxirgi nuqtasi bo’lmasa, u yerda yangi prefiks uchun statik yo’l qo’shing.
Qaytish yo’li yo’q saytda manba NAT qonuniy muqobil va ko’plab hub-and-spoke joylashtirishlari har bir serverga tegmaslikning yo’li shu. Uni manzil tomonidagi shlyuzda ham yangi prefiksga qo’llang:
iptables -t nat -A POSTROUTING -s 10.30.20.0/24 -d 192.168.60.0/24 -j MASQUERADE
Narx haqiqiy. Uzoq jurnallar alohida manba manzillarini ko’rsatishni to’xtatadi va asl subnetga asoslangan xavfsizlik devori qoidalari shlyuz uchun bitta qoidaga birlashadi. Yo’l yetishmaganligi uchun emas, ataylab tanlang.
Xavfsizlik devorlari qaytish yo’lining ikkinchi yarmi. Zona asosidagi qurilmalar mavjud tunnel interfeysi zonasini yangi subnetga avtomatik kengaytirmaydi va eski prefiks uchun yozilgan qoida mos kelmaydi. IPsec ni ayblashdan oldin yangi subnetni zonaga yoki ikki yo’nalishdagi qoidalar juftiga qo’shing.
Uch savol bilan qaror qiling, so’ngra trafik bilan tekshiring
Qisqa variant: tomon konfiguratsiyasi prefikslarni nomlaydimi (siyosatga asoslangan) yoki trafik interfeysga yo’naltiriladimi (yo’lga asoslangan)? Ikkala uch ham yangi prefiksni sanaydimi? Yangi subnetdan asl manba diapazoniga qaytish yo’li bormi?
| Tunnel style | Where the prefix goes | What breaks if you skip it |
|---|---|---|
| Policy-based IPsec | Selector pair on both peers | Old subnets work, the new one fails with no clear error |
| Route-based XFRM or VTI | Route into the device on both sites | Packets routed but not transformed, or the state never matches |
| WireGuard | AllowedIPs on both peers plus a route | Handshake succeeds, replies are dropped |
| Overlapping supernet | Adjust the existing entry instead | A shadowed policy wins or loses by evaluation order |
Tekshirish ko’p o’zgarishlar juda erta yopiladigan joy. Shlyuzdan ping oz narsani isbotlaydi, chunki shlyuz o’zidan yuboradi va ko’pincha xostdan boshqa siyosatga mos keladi. Yangi subnetsagi xostdan ping qiling, so’ngra o’zgarishga sabab bo’lgan dasturni ishga tushiring va holat belgisi emas, hisoblagichlarni ko’ring.
tcpdump -ni any host 192.168.60.10 and (esp or udp port 4500)
ip xfrm state
wg show
Siyosatga asoslangan tunnelda ip xfrm state hisoblagichlari ikki yo’nalishda ham o’sishi kerak; tekis hisoblagichlar paket yo’naltirilganini, lekin tanlanmaganini bildiradi. WireGuard da wg show har bir tomon bo’yicha uzatishni xabar qiladi, nol qabul qilingan baytli qo’l berishish uzoq tomon ro’yxatiga yoki uning qaytish yo’liga ishora qiladi.
Yakunida prefiks, tomon selektori yoki yo’li, qaytish yo’li qarori va xavfsizlik devori yozuvini tunnel ro’yxatining qolgani bilan birga qayd eting. So’ngra bitta shlyuzni qayta ishga tushiring va yana sinang: qo’lda qo’shilgan yo’l yo’qoladi va keyingi odam uni qaytadan kashf etishi shart emas.