Paano binabalot ng NAT traversal ang ESP sa loob ng UDP
Walang port ang ESP, kaya binabalot ito ng NAT traversal sa UDP sa 4500. Suriin ang palitan ng kontrol at ang naka-encapsulate na daanan ng data bilang dalawang magkahiwalay na yugto.
Dalawang kliyente sa likod ng parehong router ang kausap ang isang IPsec gateway, at ang isa ay paulit-ulit na bumabagsak habang ang isa ay nananatiling konektado. Ang native na ESP ay IP protocol 50 na walang port, kaya walang mahawakan ang tagasalin para sa mapping kapag maraming kliyente ang nagbabahagi ng isang address. Sinasara ng NAT traversal ang puwang na iyon sa pamamagitan ng pagbabalot sa ESP sa UDP sa 4500, at ipinapaliwanag ng header na iyon ang karamihan sa mga sintomas na sumusunod. Itinuturo rin nito ang device na kailangang baguhin.
Bakit lumilipat ang data plane sa port 4500
Sa panahon ng setup, inihahambing ng IKEv2 ang mga address at port na inaakalang ginagamit ng bawat panig, sa pamamagitan ng pagpapalitan ng hash sa mga notification nito sa pagtuklas ng NAT. Kapag hindi tumutugma ang mga hash, may tagasalin sa isang lugar sa daanan, at inililipat ng dalawang panig ang protektadong trapiko sa encapsulation ng UDP. Kaya naman iba ang hitsura ng session na nakatagpo ng tagasalin kaysa sa hindi.
Ang balot ay isang sobre, hindi pagbabago ng protocol: Pinapanatili ng ESP ang header, integrity check at encryption nito, at ang UDP ay nagbibigay lamang ng mga port na kailangan ng tagasalin. Dinadala ng port 500 ang palitan ng IKE; dinadala ng 4500 ang naka-encapsulate na data pagkatapos ng pagtuklas, at madalas pati ang mga susunod na mensahe ng IKE. Walang port ang gumagawa sa daloy na isang TCP connection, isang palagay na nagliligaw sa karamihan ng mga taong nagbabasa ng capture.
Suriin ang dalawang yugto nang sunud-sunod
Patunayan muna ang palitan ng kontrol, pagkatapos ang daanan ng data, at panatilihing hiwalay ang dalawa sa iyong mga tala. Ang capture na nagpapakita ng trapiko sa 500 at hindi kailanman sa 4500 ay karaniwang nangangahulugang sinasala ang daanan ng data, kaya ang pagwawasto ay nasa tuntunin ng firewall at hindi sa kliyente.
Bantayan ang dalawang port gamit ang tcpdump -ni any 'udp port 500 or udp port 4500', at basahin ang talahanayan ng pagsasalin sa router habang aktibo ang session. Ipinapakita ng talahanayang iyon ang source port na aktuwal na makikita ng gateway, at ang capture sa laptop ay sadyang hindi sumasang-ayon: naniniwala ang laptop sa 500 habang nakikita ng gateway ang 4500 na may isinaling source port, at tama ang dalawa. Ang parehong daloy, bago at pagkatapos ng pagsasalin:
client 192.0.2.10:500 -> router 203.0.113.7:62000 -> gateway 198.51.100.9:4500
Mga sintomas na ipinapaliwanag ng balot, at dalawang hindi
Isang router na pinapayagan ang palitan ng kontrol at hinaharangan ang naka-encapsulate na data ay naglalabas ng ulat na nakataas ang tunnel pero walang pumapasok. Nag-eexpire ang mga talahanayan ng mapping, kaya ang isang idle na session ay nangangailangan ng keepalive traffic na sadyang ipinapadala ng mga panig, at ang mga packet na iyon ay hindi mga health check. Kapag maraming kliyente sa likod ng isang gateway ang sabay na nabigo, suriin ang pagsasalin ng gateway na iyon at anumang lumang passthrough feature. Hindi ipinapaliwanag ng balot ang isang application na nabigo sa bawat kliyente pagkatapos tumaas ang tunnel, o ang babala ng certificate sa isang block page; pareho silang nasa itaas ng layer na ito.
Basahin ang talahanayan ng mapping para sa dalawang kliyente nang sabay: kung pareho silang nagpapakita ng parehong isinaling port, hindi sila hinihiwalay ng device ayon sa hinihingi ng gateway. Ang passthrough mode na nagbibigay ng native ESP sa isang host lamang ay hindi katumbas ng paglilingkod sa maraming isinaling kliyente, kahit inilalarawan ng mga vendor ang dalawa bilang IPsec-friendly. Nagdaragdag ang dobleng NAT ng isang sapin ng mapping at isa pang punto ng pag-expire, ngunit hindi nito awtomatikong pinipigilan ang mga outgoing connection.
Ang keepalive traffic ay karapat-dapat sa sariling linya sa operations manual, dahil ito ang nagpapanatiling bukas ng daanan ng sagot sa mga panahong walang aktibidad. I-enable ito kung saan ito dokumentado ng vendor, at unahing suriin ito kapag namatay ang session pagkatapos ng ilang minutong katahimikan sa halip na sa unang paggamit.
Palitan ang may-ari ng mapping, pagkatapos ay subukan muli
Sundin ang mga sinusuportahang setting ng NAT traversal sa dalawang panig sa halip na hulaan ang isang port. Ang pag-edit ng lokal na source port sa isang kliyente ay hindi maaaring magbago ng serbisyong nakikinig sa kabilang dulo, at karaniwang sinisira nito ang mapping na naitayo na. Kung ang kliyente ay nasa likod ng isang device na hindi mo kontrolado, ang pagbabago ay pagmamay-ari ng may-ari nito.
Pagkatapos ng anumang pagbabago, ulitin ang dalawang pagsusuri ng yugto at kumpirmahin na may dumadaan na data packet, hindi lamang na naging berde ang status screen. Itago ang mga tuple, ang output ng talahanayan ng mapping at ang pagbabago ng tuntunin sa isang tala, upang hindi na magsimula muli ang susunod na tao mula sa palitan ng kontrol. Ang mga tala ng strongSwan tungkol sa NAT traversal ay sumasaklaw sa encapsulation at keepalive settings sa likod ng dalawang yugto.