L2TP/IPsec trwy NAT: beth sy’n torri mewn gwirionedd a pham
Mae traversal NAT yn symud ESP i UDP, ac mae’r mapio, y wal dân a’r cludwr yn methu’n wahanol. Nodwch y cam cyn i chi feio’r cleient.
Mae’r honiad bod NAT yn torri L2TP/IPsec yn hanner gwir ac felly’n ddiwerth. Mae cyfieithu cyfeiriadau yn normal, mae traversal NAT yn bodoli’n union i oroesi hynny, ac mae miliynau o gleientiaid yn cysylltu o gefn llwybrydd bob dydd. Yr hyn sy’n torri yw cam penodol o gyfnewid penodol: nid yw IKE byth yn cael ateb, mae’r twnnel amgryptiedig yn cael ei ollwng gan bolisi sy’n caniatáu un protocol yn unig, neu mae’r mapio cyfieithu yn dod i ben tra mae’r twnnel yn segur. Unwaith y byddwch yn gwybod pa gam ydych ynddo, yr atgyweiriad fel arfer yw un rheol neu keepalive yn hytrach na dyluniad VPN newydd.
Y myth yw’r cwestiwn anghywir
Y cwestiwn defnyddiol nid yw «a yw NAT yn torri hyn» ond «pa ran o’r cyfnewid sy’n cael ei chyfieithu, a beth mae’r ddyfais sy’n cyfieithu yn ei wneud ag ef». Mae L2TP/IPsec yn brotocol haenog: mae IKE yn trafod, mae ESP yn diogelu, ac mae L2TP yn cario PPP o fewn y diogelwch hwnnw. Mae cyfieithu cyfeiriadau yn rhyngweithio’n wahanol â phob haen, a gellir gwahaniaethu’r arwyddion methiant os edrychwch ar gam y trafodaethau yn hytrach na’r deialog gwall.
Mae llwybrydd sy’n pori’r we’n llwyddiannus yn profi dim ond bod TCP gyda chyfieithu porthladd ffynhonnell yn gweithio. Nid yw’n dweud dim am UDP 500, UDP 4500 na phrotocol 50, a’r tri hyn yw’r pethau y mae’r defnydd hwn yn dibynnu arnynt.
Cam 1: rhaid i IKE gael ateb o gwbl
Mae’r cyfnewid cyntaf yn mynd at yr ymatebydd ar UDP 500. Os na ddaw ateb yn ôl, nid oes dim arall yn bwysig: mae’r allwedd a rennir ymlaen llaw, y cynnig a’r manylion yn aros heb eu darllen. Gwyliwch y cais a’r ateb yn hytrach na chasglu o derfyn amser y cleient:
sudo tcpdump -n -i any 'udp port 500 or udp port 4500 or proto 50'
swanctl --list-sas
Mae cais heb ateb fel arfer yn golygu bod wal dân neu’r cludwr i fyny’r afon yn gollwng y pecyn, nid bod y gweinydd wedi’i wrthod. Mae ateb â llwyth hysbysu sy’n enwi cynnig neu broblem tystysgrif yn golygu bod y pecynnau wedi cyrraedd a bod y trafodaethau wedi methu ar gynnwys, sy’n atgyweiriad hollol wahanol.
Pan fydd y ddau ochr y tu ôl i gyfieithu, dim ond cyrraedd yr ymatebydd y mae’n rhaid i’r cychwynnydd ei wneud, felly mae’r rhan fwyaf o ddefnyddiau ar ochr y cleient yn gweithio o gam 1. Hostio ar ochr y gweinydd yw lle mae’r broblem fewnbynnu’n dechrau, a dyna pam na ddylid trafod y ddwy sefyllfa byth fel un.
Cam 2: mae amgryptio yn newid yr hyn y mae’r wal dân yn ei weld
Mae ESP yn brotocol IP, nid porthladd TCP neu UDP, ac nid oes gan gyfieithu cyfeiriad porthladd cyffredin faes porthladd i’w ailysgrifennu. Dyna pam mae traversal NAT yn symud y llwyth a ddiogelir i UDP 4500: mae’r amgryptio yn rhoi i’r ddyfais sy’n cyfieithu rywbeth y mae’n gwybod sut i’w gyfieithu. Unwaith y bydd hynny’n digwydd, mae rheol wal dân a ysgrifennwyd ar gyfer UDP 500 yn unig yn caniatáu’r trafodaethau ac yn gollwng y twnnel, sy’n cynhyrchu’r canlyniad dryslyd lle mae’r log yn dangos cam 1 llwyddiannus a dim traffig.
Gall y cyfnewid IKE ei hun hefyd symud i UDP 4500 ar ôl canfod NAT, sy’n syndod i bobl sydd wedi caniatáu 500 a dim byd arall. Caniatáu’r ddau borthladd yn y ddau gyfeiriad ar y llwybr, a chofiwch y gall wal dân cyflwr gadw’r llif dim ond tra mae’n gweld traffig.
Mae protocol 50 yn dal yn bwysig ar lwybrau heb gyfieithu, ac ar lwybrau lle mae blwch canol wedi’i ffurfweddu i’w ganiatáu. Os ydych yn diagnosio trwy ddileu, diffoddwch y rhagdybiaeth yn hytrach nag ychwanegu rheolau yn swp: caniatáu 500, 4500 ac ESP, cadarnhau bod y twnnel yn codi, yna tynnwch yr hyn a drodd allan yn ddiangen. Mae rheol na all neb ei hesbonio yn rheol na fydd neb yn ei thynnu pan ddaw’n achos y toriad nesaf. Ysgrifennwch y culhau yn y cofnod newid ynghyd â’r cam y gwnaeth ei atgyweirio, fel bod y peiriannydd nesaf yn dechrau o’ch tystiolaeth yn hytrach nag o’r un rheol bawd.
Cam 3: mae’r mapio yn dod i ben ac mae’r twnnel yn marw
Mae dyfais sy’n cyfieithu yn cadw cyflwr ar gyfer y llif y mae’n ei anfon ymlaen, ac mae gan y cyflwr hwnnw oes. Nid yw twnnel L2TP/IPsec yn cario llawer o draffig pan nad oes neb yn ei ddefnyddio, felly gall twnnel segur oroesi ei fapio a stopio derbyn traffig dychwelyd. Mae’r cleient yn parhau’n argyhoeddedig ei fod wedi cysylltu, nid yw’r gweinydd yn gweld dim, a’r symptom cyntaf fel arfer yw terfyn amser rhaglen yn hytrach na gwall VPN.
Mae canfod cymar marw a keepalives NAT yn bodoli ar gyfer hyn, a rhaid i’r ddau ben fod yn barod i’w hanfon. Os yw eich gweinydd y tu ôl i gyfieithu, y gofyniad ar ochr Windows yw gosodiad cofrestrfa dogfennedig sy’n gwneud i’r gweinydd dybio amgryptio UDP ar gyfer ei becynnau allan ei hun; hebddo, mae’r ymatebydd yn anfon ESP na all y ddyfais sy’n cyfieithu ei fapio’n ôl. Mater o ffurfweddiad gweinydd yw hyn, nid un cleient.
Mae newid cyfeiriad WAN yn cynhyrchu’r un canlyniad o gyfeiriad gwahanol: mae’r mapio’n cael ei ailadeiladu o amgylch cyfeiriad newydd, ac mae’r hen gysylltiad diogelwch bellach yn pwyntio at diwb nad yw’n bodoli mwyach. Mae ymddygiad ailgysylltu yn perthyn i weithrediad y cleient, a dyna pam mae «ailgysylltu ar ôl i’r llwybrydd ailgychwyn» yn gweithio ar un cleient ac angen switsh â llaw ar un arall.
Mae hostio y tu ôl i NAT gradd cludwr yn broblem wahanol
Os ydych am hostio gweinydd L2TP/IPsec gartref a chyrraedd ato o’r tu allan, y gofyniad yw cyrhaeddedd fewnbynnu heb ei ofyn, ac nid dyna y mae traversal NAT yn ei ddarparu. Mae NAT gradd cludwr o flaen eich llwybrydd yn golygu nad oes porthladd y gallwch ei anfon ymlaen a fydd yn eich gwneud yn gyrhaeddadwy, oherwydd mae’r cyfeiriad cyhoeddus yn cael ei rannu ac mae’r mapio’n allan yn unig.
Nid yw unrhyw flwch ticio IPsec pass-through yn newid hynny, ac nid yw unrhyw faint o ffurfweddiad cleient yn ei wneud yn iawn am hynny. Yr atebion a gefnogir yw cyfeiriad sy’n gyrhaeddadwy mewn gwirionedd, pen terfyn a gynhelir, neu bensaernïaeth lle mae pob cyfranogwr yn gwneud cysylltiad allan. Mae’r manyleb amgryptio UDP yn datrys y broblem gyfieithu ar gyfer llifoedd sy’n bodoli; nid yw’n creu llwybr mewnbynnu lle nad yw’r cludwr yn cynnig un.
Felly cymharwch rwydweithiau yn hytrach na dyfalu. Ewch â’r un ddyfais a phroffil i rwydwaith a ganiateir yn wahanol a gwyliwch pa gam sy’n methu yno. Os yw’n gweithio mewn man arall, mae’r gwahaniaeth yn y llwybr, ac mae hynny’n culhau’r chwilio i’r tri cham uchod yn hytrach na’r ffurfweddiad cyfan.