Ikkala loyiha ham bir xil trafikni bir xil IPsec mexanizmi bilan himoya qiladi va qaysi paket tunnelga kirishini nima hal qilishi bilan farqlanadi. Siyosatga asoslangan ulanishda buni kelishilgan trafik selektorlari bajaradi; marshrutga asoslangan ulanishda tunnel interfeysiga ishora qiluvchi marshrut bajaradi. Ikkalasini chalkashtirish tunnel o‘zini o‘rnatilgan deb e’lon qiladigan, ammo ilova hech narsaga yetib bormaydigan tanish qo‘llab-quvvatlash mavzusini keltirib chiqaradi. Bu farq tarmoq qo‘shganda, marshrutlash protokolini ishga tushirganda yoki jimgina noto‘g‘ri chiqishdan chiqib ketadigan yo‘lni tuzatganda eng muhim bo‘ladi.

Tunnelga nima kirishini hal qilishning ikki yo‘li

Siyosatga asoslangan VPN manba va manzil prefikslariga mos keladigan xavfsizlik siyosatini quradi, so‘ng mos keladigan hamma narsani shifrlaydi. Hamkor mos selektorlarni kelishishi kerak, shuning uchun amaldagi qamrov oxir-oqibat ikki tomon taklif qilganining kesishmasi bo‘ladi. Bu kesishmadan tashqarida hech narsa himoyalanmagan, marshrutlash jadvali nima desa ham.

Marshrutga asoslangan VPN tunnelni ifodalovchi interfeys yaratadi va marshrutlash jadvaliga trafikni unga yuborishga ruxsat beradi. IKE demoni hanuz holat va har bir interfeys siyosatini o‘rnatadi, va odamlar marshrutlar shifrlashni almashtirdi deb qaror qilganda aynan shu tafsilotni tashlab ketishadi. Ikkala loyiha ham IPsec bilan shifrlaydi; faqat tanlash mexanizmi farq qiladi.

Quyidagi taqqoslashni ball jadvali emas, nosozlik belgilarining to‘plami sifatida o‘qing, chunki hech bir ustun o‘z-o‘zidan g‘olib chiqmaydi.

AspectPolicy-basedRoute-based
What selects trafficNegotiated selectorsA route into the tunnel interface
Adding a networkEdit selectors on both peersAdd a route, widen the selector once
Dynamic routingAwkward to run over the tunnelRuns over the interface directly
Typical failureTunnel up, host outside the selectorTunnel up, no route or wrong source

Siyosatga asoslangan: selektor — shartnoma

Selektorlar kelishiladi, shunchaki sozlanmaydi. Bir tomonda 10.10.0.0/16, ikkinchi tomonda 10.10.1.0/24 taklif qiling, va assotsiatsiya muzokaralar to‘xtagan qismini qamrab oladi, qolgan barcha xostlar tashqarida qoladi.

Sozlama fayli o‘rniga o‘rnatilgan holatni o‘qing. Linux hamkorida yadroning o‘z jadvallari asosiy haqiqatdir va ular muzokaralardan nima omon qolganini ko‘rsatadi. To‘g‘ri prefikslarni nomlaydigan, ammo mos holati yo‘q siyosat assotsiatsiya hech qachon ko‘tarilmaganini bildiradi. Noto‘g‘ri prefiks uchun siyosat bilan juftlangan holat qarama-qarshi muammo bo‘lib, u sog‘lom ko‘rinadigan tunnelni yaratadi, holbuki bitta subnetwork hech qayerga yetib bormaydi.

sudo ip xfrm state
sudo ip xfrm policy
sudo swanctl --list-sas

Ikkala chiqishni siz himoya qilmoqchi bo‘lgan prefikslar bilan taqqoslang. Shu bitta taqqoslash ishlayotgan tunnel va yetib bo‘lmaydigan server haqidagi ko‘p xabarlarni hal qiladi. Shuningdek, qaysi hamkorni o‘zgartirish kerakligini ko‘rsatadi, chunki nomuvofiqlik odatda faqat bir yo‘nalishda ko‘rinadi.

Marshrutga asoslangan: interfeys — shartnoma

XFRM interfeysi tunnelga nom va shaxsiyat beradi, trafik esa unga marshrutlash jadvali shunday degani uchun yetib boradi. Shunda bir nechta uzoq prefikslar selektor muammosi emas, marshrutlash muammosiga aylanadi va marshrutlash protokoli ularni e’lon qilishi mumkin. Bu haqiqiy foyda, shifrlash emas.

Interfeys siyosatga bo‘lgan ehtiyojni yo‘q qilmaydi. Demon interfeys shaxsiyatiga bog‘langan qoidalarni har bir interfeys uchun o‘rnatadi, shuning uchun noto‘g‘ri interfeysga kelgan paket baribir muvaffaqiyatsiz bo‘ladi. Hamkor qabul qilmaydigan manba manzili ham, mukammal marshrut bilan ham muvaffaqiyatsiz bo‘ladi. Marshrutga asoslangan degani kirishni marshrut hal qiladi, siyosat yo‘qoldi degani emas.

sudo ip link add xfrm0 type xfrm dev eth0 if_id 42
sudo ip route add 10.20.0.0/16 dev xfrm0
ip -s link show xfrm0
ip route get 10.20.5.10

Marshrut joyiga tushgach interfeys hisoblagichlarini kuzating. Marshrut bor, ammo hisoblagichlar nolda qolsa, tunnelga hech narsa moslashtirilmayapti, bu odatda yo‘q marshrutni emas, yo‘q holatni ko‘rsatadi.

Ikki loyiha haqiqatan qayerda ajraladi

Tarmoq qo‘shish qaysi model sizga mos kelishini tekshirishning eng toza usuli. Marshrutga asoslangan loyiha bitta marshrut qo‘shadi va selektorni ko‘pi bilan bir marta kengaytiradi, siyosatga asoslangan loyiha esa ikki hamkorda prefiks juftlarini tahrirlab, qaytadan muzokara qiladi. Ikki barqaror subnetwork bu tahrirni ahamiyatsiz qiladi, yigirmatasi esa uni loyihaga aylantiradi.

Hech bir model firewall o‘rnini bosmaydi va taqqoslashlar odatda shu nuqtadan oldin to‘xtaydi. Keng selektor yoki keng marshrut nima shifrlanishini hal qiladi, nimaga ruxsat berilganini emas.

MTU xatti-harakati ham amalda farq qiladi. Inkapsulyatsiya foydali yukni kamaytiradi va marshrutga asoslangan interfeys o‘z MTU-sini olib yuradi, shuning uchun ikkala shlyuzda MSS ni siqish kichik javoblar kelib, kattalari yo‘qoladigan qora tuynuk alomatini oldini oladi. Siyosatga asoslangan tunnellar xuddi shu devorga ikkinchi tomondan uriladi, chunki selektor paket o‘lchami haqida hech narsa demaydi. Siqishni hamkorni ayblash o‘rniga ataylab belgilang.

Qaytish yo‘lini yo‘qotmasdan ko‘chish

Biror narsani o‘zgartirishdan oldin mavjud prefiks juftlarini yozib oling, so‘ng bitta ilova yo‘lini ko‘chiring va uni boshidan oxirigacha kuzating. O‘rnatilgan tunnel — uzatadigan tunnel emas, va farq javob yo‘nalishida namoyon bo‘ladi.

Hamkorlar ulanadi, ammo LAN xostlari ulana olmasa, qaytish marshrutini va uzoq xost ishlatadigan manba manzilini tekshiring. Ikki interfeysli xost noto‘g‘ri interfeysdan javob berishi mumkin va hech qanday selektor o‘zgarishi buni tuzatmaydi. Algoritmlarni tahrirlashdan oldin ikkala uchida trafikni ushlang.

ip route get 10.20.5.10
sudo tcpdump -ni any host 10.20.5.10 and icmp
sudo swanctl --list-conns

Ish paytida tunnelga bog‘liq bo‘lmagan boshqaruv yo‘lini saqlang. Shlyuzning o‘z kirishi siz tuzatayotgan ulanishga minmasa, orqaga qaytish osonroq.

O'xshash maqolalar