Nit za podporo se konča z razsodbo „simetrični NAT, VPN tu ne bo deloval“, nato pa se odjemalec trikrat brez razloga znova namesti. Oznaka škoduje, ker odgovarja na vprašanje, ki ga ni nihče postavil. Odjemalec, ki se povezuje navzven s stalnim strežnikom, ustvari preslikavo v trenutku, ko pošlje prvi paket, odgovor pa se spusti nazaj po pravilih, ki jih izvaja skoraj vsako omrežje. Kar preslikava, odvisna od končne točke, res otežuje, sta dva enakovredna, ki se hkrati poskušata doseči, in to je drug preizkus.

Za eno oznako se skrivata dve vprašanji

Prvo vprašanje je, ali lahko gostitelj za tem omrežjem odpre sejo na znan javni naslov in vrata. Za odjemalca tunela je to običajen primer in odgovor je skoraj vedno da. Usmerjevalnik zabeleži notranji vir, dodeli zunanja vrata in spusti odgovor, ker pripada seji, ki se je začela od znotraj.

Drugo vprašanje je, ali lahko dva gostitelja za različnimi omrežji najdeta skupno pot in si pošiljata brez strežnika v sredini. To je odvisno od tega, kako vsako omrežje dodeljuje ta zunanja vrata, in samo tam je vedenje preslikave pomembno.

Mešanje obojega da klasično napačno diagnozo: funkcija med enakovrednimi ne uspe, nekdo zažene preizkus vrste NAT, vidi najslabšo kategorijo in sklene, da tudi običajni tunel ne more delovati. Tunel ni bil nikoli tisto, kar je spodletelo.

Preslikava in filtriranje sta ločeni lastnosti

Terminologija RFC je natančnejša od imen, ki jih uporabljajo dobavitelji, in vredi jo prenesti v zahtevek, ker razreši spore. Preslikava je način, kako se dodelijo zunanja vrata. Filtriranje je, kateri vhodni paketi se spustijo. Omrežje je lahko strogo v enem in popustljivo v drugem, in prav ta kombinacija je tisto, kar mora protokol med enakovrednimi preživeti.

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

Tretja vrstica je tisto, kar večina domačih usmerjevalnikov in mobilnih operaterjev misli s simetrično. Upoštevajte, da oznaka opisuje samo dodeljevanje. Omrežje s tako preslikavo in popustljivim filtriranjem lahko še vedno sprejema vhodne pakete na vrata, ki jih je pravkar dodelilo, zato vrtanje lukenj na nekaterih uspe in na drugih ne.

Filtriranje ima svoje tri primere in svoje ime za vsakega. Če v zahtevek napišete „simetrični NAT“, ko mislite „filtriranje, odvisno od naslova in vrat“, pošljete naslednjo osebo v napačno poglavje priročnika. Oba se na preizkusu obnašata drugače, zato napaka ni akademska.

Preslikavo izmerite, namesto da bi jo poimenovali

Dodeljena vrata lahko opazujete neposredno s strežniške strani katere koli storitve UDP, ki jo upravljate. Začnite zajem na javnem gostitelju, pošljite z odjemalca in preberite izvorna vrata, s katerimi je paket prispel:

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

Vrstica končne točke je najbolj uporabna od treh, ker WireGuard zabeleži zadnji naslov in vrata, ki jih je prejel od vsakega enakovrednega. Primerjajte ta vrata s tistimi, za katera odjemalec misli, da jih uporablja. Razlikovala se bodo vsakič, ko poteka kakršno koli prevajanje, in pomembno vprašanje je, ali vrednost ostane stabilna.

Ponovite opazovanje proti drugim ciljnim vratom ali drugemu strežniku in znova primerjajte. Če se zunanja vrata spreminjajo glede na cilj, je preslikava odvisna od naslova in vrat. Če ostanejo enaka, vam omrežje daje eno preslikavo in odkrivanje ima možnost.

Orodja, ki temeljijo na STUN, poročajo isto razvrstitev v enem koraku, in uporabiti jih je mogoče, ko omrežje dovoljuje odhodni UDP do javnega strežnika STUN. Ko tega ne dovoljuje, zgornja metoda zajema še vedno deluje in ne zahteva ničesar razen gostitelja, ki ga že upravljate.

Izberite popravek, ki ustreza okvari

Če je funkcija, ki ne uspe, med enakovrednimi, so podprti odgovori posrednik, storitev srečanja, do katere se lahko dokopata oba enakovredna, ali druga topologija. TURN obstaja prav zato, in izdelek, ki prinaša svojega posrednika, vam pove, da pričakuje sovražnost nekaterih omrežij.

Če je funkcija, ki ne uspe, običajni tunel, vedenje preslikave ni vaš problem in nič od navedenega ne velja. Preverite, ali odjemalec res pošilja, ali strežnik vidi paket in ali se odgovor vrača. To zaporedje so tri opazovanja in ne zahteva vedenja o kategoriji NAT usmerjevalnika.

Kar ne deluje, je razmetavanje sprememb lokalnih vrat, dokler se nekaj ne poveže. Sprememba izvornih vrat odjemalca ne spremeni tega, kako omrežje dodeljuje preslikave. Naključen uspeh pri petem poskusu je lažno pozitiven in mesece bo citiran kot popravek.

Zabeležite arhitekturo, ne razsodbe

Uporabna opomba pove, kateri protokol, v katero smer se seja začne, ali je na poti posrednik in kaj je bilo opaženo na žici. „simetrični NAT, ne deluje“ je neuporabno, ker je hkrati napačno glede tunela in neinformativno glede poti enakovrednega.

Če ste jih preizkusili, vključite izmerjeno stabilnost vrat in vedenje filtriranja. Ti dve dejstvi nekomu drugemu omogočata, da predvidi, ali bo nova funkcija v tem omrežju delovala, ne da bi ponovil celotno preiskavo. Tudi starata se bolje kot kategorija dobavitelja, ki na vsaki strani pomoči pomeni nekaj malo drugačnega.

Nazadnje imejte pri roki terminologijo RFC 4787, ko to pišete. Uporaba natančnih izrazov stane en stavek in prepreči naslednjemu bralcu, da bi ponovil isto napačno diagnozo, in to je ves smisel pisanja opombe.

Sorodni članki