In stipe-ried einiget mei it oardiel „symmetrysk NAT, de VPN sil hjir net wurkje”, en dan wurdt de client trije kear sûnder reden opnij ynstallearre. It label docht skea om’t it in fraach beantwurdet dy’t nimmen steld hat. In client dy’t nei bûten ta ferbynt mei in fêste tsjinner makket in mapping op it stuit dat er it earste pakket stjoert, en it antwurd mei weromkomme neffens regels dy’t hast elk netwurk ymplemintearret. Wat mapping dy’t fan it einpunt ôfhinget echt komplisearret, is twa peers dy’t tagelyk byinoar komme wolle, en dat is in oare test.

Twa fragen ferskûlje har efter ien label

De earste fraach is oft in host efter dit netwurk in sesje iepenje kin nei in bekend iepenbier adres en in poarte. Foar in tunnelclient is dat it gewoane gefal, en it antwurd is hast altyd ja. De router registrearret de ynterne boarne, jout in eksterne poarte ta en lit it antwurd troch, om’t it heart by in sesje dy’t fan binnenút begûn is.

De twadde fraach is oft twa hosts efter ferskillende netwurken in mienskiplik paad fine kinne en nei inoar stjoere kinne sûnder in tsjinner yn ’t midden. Dat hinget ôf fan hoe’t elk netwurk dy eksterne poarten tawiist, en dat is it iennige plak dêr’t it gedrach fan de mapping fan belang is.

De twa trochinoar helje jout de klassike ferkearde diagnoaze: in peer-nei-peer-funksje mislearret, immen draait in NAT-type-test, sjocht de minste kategory en konkludearret dat de gewoane tunnel ek net wurkje kin. De tunnel wie nea datjinge dat mislearre.

Mapping en filterjen binne aparte eigenskippen

De terminology fan RFC is krekter as de nammen dy’t leveransiers brûke, en it is de muoite wurdich om dy yn ’e kaart te setten, om’t er diskusjes beslist. Mapping is hoe’t de eksterne poarte tawiisd wurdt. Filterjen is hokker ynkommende pakketten trochlitten wurde. In netwurk kin strang wêze yn it iene en liberaal yn it oare, en dy kombinaasje is wat in peer-nei-peer-protokol oerlibje moat.

BehaviourWhat it meansEffect on a direct peer path
Endpoint-independent mappingOne external port for every destinationDiscovery works if the port is advertised
Address-dependent mappingNew port per remote addressWorks only if both sides probe the same pair
Address-and-port-dependentNew port per remote address and portUsually needs a relay

De tredde rigel is wat de measte konsuminterûters en mobile operators mei symmetrysk bedoele. Tink derom dat it label allinnich de tawizing beskriuwt. In netwurk mei dy mapping en liberaal filterjen kin noch altyd ynkommende pakketten oannimme nei de poarte dy’t it krekt tawiisd hat, en dêrom slagget gatten boarjen by guon en mislearret by oaren.

Filterjen hat syn eigen trije gefallen en syn eigen namme foar elk. „symmetrysk NAT” yn in kaart skriuwe as jo „filterjen ôfhinklik fan adres en poarte” bedoele, stjoert de folgjende persoan nei it ferkearde haadstik fan ’e hânlieding. De twa gedrage har oars ûnder test, dus de flater is net akademysk.

Mjit de mapping ynstee fan dy te beneamen

Jo kinne de tawiisde poarte direkt fan ’e tsjinnerkant fan elke UDP-tsjinst ôf observearje dy’t jo beheare. Start in opname op ’e iepenbiere host, stjoer fan ’e client en lês de boarnepoarte dêr’t it pakket mei oankaam:

sudo tcpdump -ni eth0 -c 10 'udp port 51820'
sudo wg show wg0 endpoints
sudo conntrack -L -p udp --dport 51820

De einpunt-rigel is de nuttichste fan ’e trije, om’t WireGuard it lêste adres en de lêste poarte fêstleit dy’t er fan elke peer ûntfongen hat. Fergelykje dy poarte mei dy’t de client tinkt te brûken. Se sille ferskille wannear’t der ek mar ien oersetting bart, en de wichtige fraach is oft de wearde stabyl bliuwt.

Werhelje de observaasje tsjin in twadde bestimmingspoarte of in twadde tsjinner en fergelykje wer. As de eksterne poarte per bestimmingsplak feroaret, hinget de mapping ôf fan adres en poarte. As er itselde bliuwt, jout it netwurk jo ien mapping en hat ûntdekking in kâns.

STUN-basearre ark rapportearje deselde klassifikaasje yn ien stap, en se binne goed te brûken as it netwurk útgeande UDP nei in iepenbiere STUN-tsjinner talit. As it dat net docht, wurket de opnamemetoade hjirboppe noch en freget er neat oars as in host dy’t jo al beheare.

Kies in oplossing dy’t by de flater past

As de mislearjende funksje peer-nei-peer is, binne de stipe antwurden in relay, in moetingstsjinst dy’t beide peers berikke kinne, of in oare topology. TURN bestiet krekt hjirfoar, en in produkt dat syn eigen relay leveret, fertelt jo dat it ferwachtet dat guon netwurken fijannich binne.

As de mislearjende funksje in gewoane tunnel is, is it gedrach fan de mapping net jo probleem en jildt neat fan it boppesteande. Kontrolearje dat de client echt stjoert, dat de tsjinner it pakket sjocht en dat it antwurd weromkomt. Dy folchoarder is trije observaasjes en freget neat oer de NAT-kategory fan ’e router te witten.

Wat net wurket, is lokale poartewizigings om te struien oant der wat ferbynt. It feroarjen fan ’e boarnepoarte fan ’e client feroaret net hoe’t it netwurk mappings tawiist. In tafallich súkses by de fyfde poging is in falsk posityf, en it sil moannenlang as oplossing sitearre wurde.

Registrearje de arsjitektuer, net it oardiel

In nuttige notysje seit hokker protokol, yn hokker rjochting de sesje begjint, oft der in relay yn it paad sit en wat der op ’e tried waarnommen is. „symmetrysk NAT, wurket net” is ûnbrûkber, om’t it tagelyk ferkeard is oer de tunnel en neat seit oer it paad fan ’e peer.

Nim de metten poartestabiliteit en it filtergedrach op as jo dy test hawwe. Dy twa feiten litte in oar foarsizze oft in nije funksje op dat netwurk wurkje sil sûnder it hiele ûndersyk te werheljen. Se ferâldzje ek better as in leveransierskategory dy’t op elke help-side wat oars betsjut.

Hâld úteinlik de terminology fan RFC 4787 by de hân as jo dit opskriuwe. It brûken fan ’e krekte termen kostet ien sin en foarket dat de folgjende lêzer deselde ferkearde diagnoaze werhellet, en dat is it hiele doel fan it skriuwen fan ’e notysje.

Relatearre artikelen