Mas madaling isipin ang nested na IPsec kapag ang dalawang layer ay nagtatapos sa magkaibang makina. Apat na gateway, dalawang tunnel at isang tanong na nagpapasya kung gumagana ang disenyo: ano ang talagang nakikita ng panlabas na tunnel kapag natapos na ng panloob ang pakete? Sagutin iyon at susunod ang mga selector, ruta at pagkakasunod-sunod ng pag-troubleshoot. Magkamali at gugugol ka ng isang araw sa pag-debug ng tunnel na teknikal na nakaupo.

Ang modelong may apat na gateway

Binubuo ng mga panlabas na gateway A at B ang unang tunnel sa pagitan ng dalawang site. Sa likod ng A ay ang panloob na gateway C na may transit address na 10.60.0.2; sa likod ng B ay ang panloob na gateway D na may transit address na 10.70.0.2. Ang mga network ng aplikasyon ay nasa likod ng C at D, at bawat address sa halimbawa ay sadyang hindi nag-o-overlap.

application net -> C -> A == outer IPsec == B -> D -> application net
                       \---------- inner IPsec ----------/

C transit: 10.60.0.2      D transit: 10.70.0.2
A and B:    underlay addresses only

Ang paghahati ng mga layer sa apat na host ay nangangahulugang bawat makina ay nagpapatupad ng isang hangganan. Ang isang host na nagpapatakbo ng dalawang layer ay kailangang pag-isahin ang dalawang set ng polisiya, dalawang talahanayan ng ruta at dalawang mode ng pagpalya sa isang makina, na posible at mas mahirap obserbahan.

Ang bawat layer ay nag-aalis lamang ng sarili nitong proteksyon

Ini-encrypt ng C ang isang pakete ng aplikasyon para sa D. Ang resulta ay naka-address mula C patungong D, at iyon ang umaabot sa A. Ang lahat ng nasa ibaba ay nakasalalay sa muling pagsulat na iyon.

Ini-encrypt muli ito ng A para sa B. Dini-decrypt ng B ang panlabas na layer, nakikita ang pakete mula C patungong D at ipinapasa ito habang naka-encrypt pa rin. Inaalis ng D ang panloob na proteksyon at inihahatid ang pakete ng aplikasyon.

Kaya nakikita ng A at B ang mga panloob na endpoint at ang metadata nito, ngunit hindi sila ang mga parteng nagde-decrypt ng payload ng aplikasyon. Ito ay tunay na katangian ng disenyo at hindi pag-aangkin na mapagkakatiwalaan ang C, D o ang mga host ng aplikasyon.

Pinapangalanan ng panlabas na selector ang mga panloob na gateway

Dito nabibigo ang karamihan sa mga ganitong konstruksyon. Para sa panlabas na tunnel na batay sa polisiya, ang mga selector na iyong kinakausap ay dapat maglaman ng mga address na talagang hinahawakan ng A at B: 10.60.0.2/32 at 10.70.0.2/32, sa tamang lokal at malayong pagkakasunod-sunod.

Ang paglalagay ng huling mga subnet ng aplikasyon sa panlabas na selector ay hindi gumagana, dahil pagdating ng pakete sa A, naisulat na muli ng panloob na encapsulation ang dapat protektahan ng A. Wala nang tutugma ang panlabas na polisiya, at aangat ang tunnel nang hindi nagdadala ng data.

Huwag ding paliitin ang panlabas na pahintulot sa UDP 500. Ang panloob na koneksyon ay may sariling landas ng data, na gumagamit ng ESP o UDP encapsulation ayon sa napagkasunduan, at dapat payagan ng panlabas na polisiya ang protocol na iyon.

Suriin ang resulta gamit ang swanctl --list-sas sa bawat gateway at kumpirmahin na iniuulat ng mga child security association ang mga address na nilayon mo, hindi ang mga inakala mo. Kung ang listahan ay nagpapakita ng mga subnet ng aplikasyon, ang panlabas na polisiya ay isinulat para sa maling layer. Itama ang mga selector bago i-debug ang routing, dahil magmumukhang maayos ang routing at hindi gagalaw ang mga counter.

Ang pagpapasa at ang bitag ng recursion

Hindi pinapalitan ng mga selector ang routing. Dapat ipasa ng A at B ang trapiko sa pagitan ng C at D sa dalawang direksyon, na nangangahulugang naka-enable ang IP forwarding, may mga rutang tumuturo sa tunnel at may landas pabalik sa kabilang panig.

Kung ang panlabas na tunnel ay gumagamit ng XFRM interface, pinipili ng mga ruta ang interface habang nililimitahan pa rin ng napagkasunduang polisiya ang dinadala nito. Hindi pinalalawak ng interface ang protektado; binabago lamang nito kung paano kinukuha ng kernel ang pakete.

Ang bitag ay recursion. Ang ruta ng A patungo sa panlabas na endpoint ng B ay dapat sumunod sa underlay, hindi sa tunnel na itinatayo ng A, kung hindi ay sinusubukan ng encapsulation na maglakbay sa loob ng sarili nito at hindi kailanman natatapos ang koneksyon.

Suriin ang pagsasalin bago magdagdag ng mga layer

Tingnan ang anumang source NAT sa A at B bago mag-tune ng iba pa. Ang isang patakaran na nagsusulat muli ng address ng C bago maipatupad ang IPsec polisiya ay maaaring makasira sa napagkasunduang selector, at maaari ring baguhin ang natatanggap ng D sa kabilang panig.

Ang malawak na masking ay hindi nagiging mas ligtas dahil may dalawang layer. Itinatago nito kung aling address ang nakikita ng malayong dulo, at iyon ang eksaktong impormasyong kailangan mo kapag nakaupo ang tunnel at hindi gumagana ang app.

Kung talagang kailangan ang panuntunan ng NAT, isulat kung aling address ang iniisip ng bawat panig na kausap nito. Ang nag-iisang linyang iyon ang nag-aayos ng karamihan sa pagtatalo kung tunnel o pagsasalin ang may kasalanan. Sinasabi rin nito sa susunod na inhinyero kung saan titingin kapag tinanggal ang panuntunan pagkalipas ng isang taon. Walang gagawin ang ping sa alinman doon.

Patunayan ang fail-closed at suriin ang MTU

Ang pagkawala ng ruta ay hindi fail-closed sa sarili nito. Maaaring magbigay ng tahimik na alternatibo ang ibang talahanayan, default na ruta o panuntunan ng polisiya, at ang tanging paraan para malaman ay ibaba ang panlabas na tunnel at obserbahan ang ginagawa ng trapiko ng aplikasyon. Gawin ito nang sadya, sa isang window, sa halip na matuklasan ito nang aksidente.

Subukan ang tatlong estado: panlabas na tunnel pababa, panloob na tunnel pababa, at pagbawi pagkatapos bumalik ang dalawa. Gumamit ng mga counter ng polisiya sa bawat gateway, dahil dalawang establisadong sesyon ng IKE ang nagpapatunay lamang na nagtagumpay ang negosasyon sa control plane.

Maglaan ng budget para sa dalawang encapsulation. Ang gumaganang IKE ay resulta ng maliliit na pakete, at ang mga pakete ng aplikasyon na buong laki ay maaari pa ring mabigo kapag nadagdag ang dalawang header; subukan gamit ang kilalang laki ng payload sa tunay na landas sa halip na ipagpalagay na nagdadagdag ang mga numero. Madali ang aritmetika, hindi ang landas.

Kaugnay na mga artikulo