De bewearing dat NAT L2TP/IPsec brekt, is heal wier en dêrom nutteloas. Adresfertaalling is normaal, NAT-traversal bestiet krekt om it te oerlibjen, en miljoenen klanten ferbine har elke dei fan efter in router. Wat brekt, is in spesifike faze fan in spesifike útwikseling: IKE krijt nea in antwurd, de ynkapsulearre tunnel wurdt troch in belied weilitten dat mar ien protokol talit, of de fertaalmapping ferrint wylst de tunnel stil leit. As jo ienris witte yn hokker faze jo binne, is de oplossing meastal ien regel of in keepalive ynstee fan in nij VPN-ûntwerp.

De myte is de ferkearde fraach

De brûkbere fraach is net “brekt NAT dit”, mar “hokker part fan de útwikseling wurdt fertaald, en wat docht it apparaat dat fertaalt dermei”. L2TP/IPsec is in lagenprotokol: IKE ûnderhannelet, ESP beskermet, en L2TP ferfiert PPP binnen dy beskerming. Adresfertaalling beynfloedet elke laach oars, en de flatertekens binne te ûnderskieden as jo nei de ûnderhannelingsfaze sjogge ynstee fan nei de flaterdialooch.

In router dy't mei súkses op it web bladet, bewiist allinnich dat TCP mei boarne-poartefertaalling wurket. Hy seit neat oer UDP 500, UDP 4500 of protokol 50, en dat binne krekt de trije dingen dêr't dizze útrulling fan ôfhinklik is.

Faze 1: IKE moat hielendal in antwurd krije

De earste útwikseling giet nei de beantwurdiger op UDP 500. Komt der gjin antwurd werom, dan makket al it oare neat út: de foarôf dielde kaai, it foarstel en de oanmeldgegevens bliuwe ûnlêzen. Sjoch nei it fersyk en it antwurd ynstee fan út de timeout fan de klient te riddenearjen:

sudo tcpdump -n -i any 'udp port 500 or udp port 4500 or proto 50'
swanctl --list-sas

In fersyk sûnder antwurd betsjut meastentiids dat in firewall of de provider boppe yn it paad it pakket weismyt, net dat de server it wegere hat. In antwurd mei in meldingslading dy't in foarstel of in sertifikaatprobleem neamt, betsjut dat de pakketten oankamen en de ûnderhanneling op ynhâld mislearre, wat in hiel oare reparaasje is.

As beide kanten efter fertaalling sitte, hoecht de inisjator allinnich de beantwurdiger te berikken, sadat de measte útrullingen oan klantkant fan faze 1 ôf wurkje. Serverhosting is wêr't it ynkommende probleem begjint, en dat is de reden dat de twa situaasjes nea as ien besprutsen wurde moatte.

Faze 2: ynkapsulaasje feroaret wat de firewall sjocht

ESP is in IP-protokol, gjin TCP- of UDP-poarte, en gewoane poarteadresfertaalling hat gjin poartefjild om te wer skriuwen. Dêrom ferpleatst NAT-traversal de beskerme lading nei UDP 4500: de ynkapsulaasje jout it fertaaljende apparaat eat dat it wit hoe't it fertaald wurde moat. As dat ienris bart, sil in firewallregel dy't allinnich foar UDP 500 skreaun is de ûnderhanneling talitte en de tunnel weilitte, wat it betiizjende resultaat jout wêrby't it logboek in slagge faze 1 en gjin ferkear sjen lit.

De IKE-útwikseling sels kin nei it detektearjen fan NAT ek nei UDP 4500 ferhúzje, wat minsken ferrast dy't 500 en neat oars talitten hawwe. Talit beide poarten yn beide rjochtingen op it paad, en betink dat in stateful firewall de stream allinnich hâldt salang't er ferkear sjocht.

Protokol 50 is noch altyd wichtich op paden sûnder fertaalling, en op paden wêr't in tuskenkastke foar konfigurearre is om it ta te litten. As jo diagnostearje troch út te sluten, set dan de hypoteze út ynstee fan regels by bondels ta te foegjen: talit 500, 4500 en ESP, befêstigje dat de tunnel omheech komt, en ferwiderje dan wat oerstallich bliek te wêzen. In regel dy't gjinien ferklearje kin, is in regel dy't gjinien fuorthellet as er de oarsaak fan de folgjende útfal wurdt. Skriuw de ferneaming yn it feroaringsregister tegearre mei de faze dy't er reparearre, sadat de folgjende yngenieur fan jo bewiis útgiet ynstee fan deselde thumb-regel.

Faze 3: de mapping ferrint en de tunnel stjert

In fertaaljend apparaat hâldt steat foar de streamen dy't it trochjout, en dy steat hat in libbensdoer. In L2TP/IPsec-tunnel ferfiert mar in bytsje ferkear as gjinien him brûkt, sadat in stille tunnel syn mapping oerlibje kin en ophâldt mei it ûntfangen fan weromferkear. De klient bliuwt oertsjûge dat er ferbûn is, de server sjocht neat, en it earste symptoom is meastal in timeout fan in applikaasje ynstee fan in VPN-flater.

Deteksje fan deade partner en NAT-keepalives besteane hjirfoar, en beide kanten moatte ree wêze om se te stjoeren. As jo server efter fertaalling sit, is de eask oan Windows-kant in dokumintearre registerynstelling dy't de server oannimme lit dat UDP-ynkapsulaasje foar syn eigen útgeande pakketten jildt; sûnder dy stjoert de beantwurdiger ESP dat it fertaaljende apparaat net werom mapje kin. Dat is in serverkonfiguraasjekwestje, gjin klantkwestje.

In WAN-adresferoaring jout deselde útkomst fan in oare rjochting: de mapping wurdt wer opboud om in nij adres hinne, en de âlde feiligensassosjaasje wiist no nei in tuple dy't net mear bestiet. Werferbinenhearhing heart by de klantymplemintaasje, en dêrom wurket “wer ferbine nei it werstarten fan de router” op de iene klient en freget it op in oare om in hânmjittige skeakel.

Hosting efter carrier-grade NAT is in oar probleem

As jo thús in L2TP/IPsec-server hoste wolle en dy fan bûten berikke wolle, is de eask ûnfrege ynkommende berikberens, en dat is net wat NAT-traversal biedt. In carrier-grade NAT foar jo router betsjut dat der gjin poarte is dy't jo trochjaan kinne en dy't jo berikber makket, want it iepenbiere adres wurdt dield en de mapping is allinnich útgeand.

Gjin inkel IPsec pass-through-fakje feroaret dat, en gjin inkel bedrach oan klantkonfiguraasje makket it goed. De stipe antwurden binne in adres dat echt berikber is, in hoste einpunt, of in arsjitektuer wêrby't elke dielnimmer in útgeande ferbining makket. De UDP-ynkapsulaasjespesifikaasje lost it fertaalprobleem op foar streamen dy't bestean; hy makket gjin ynkommend paad wêr't de provider gjin ien biedt.

Fergelykje dus netwurken ynstee fan te rieden. Nim itselde apparaat en profyl mei nei in oar talitten netwurk en sjoch hokker faze dêr mislearret. As it earne oars wurket, sit it ferskil yn it paad, en dat ferneamt it sykjen ta de trije fazen hjirboppe ynstee fan de hiele konfiguraasje.

Relatearre artikelen