Ühes vestluses esineb kaks numbrit ja kumbki ei ole vale. Serveri logi näitab kuulajat, mis teenust pakub, sülearvuti näitab soklit, mis datagrammi saatis, ja vahepealne ruuter võib teise väljuma hakates ümber kirjutada. Vestluse otste võrdlemine on kasulikum kui numbrite endi võrdlemine. Allpool hoitakse kuulaja, kliendi sokk ja tõlgitud lähtekoht lahus, sest nad vastavad eri küsimustele.

Kaks numbrit, mis kirjeldavad vastandlikke otsi

Serveri seadistatud port on sihtkoht, millele klient helistab. Selle määrab poliitika, see esineb profiilis ja peab olema serveripoolselt avatud. Kliendi lähtepordi valib kohalik pool, tavaliselt efemeersest vahemikust, ja see on olemas selleks, et vastusel oleks kuhu maanduda. See võib iga taasühenduse korral muutuda ja miski konstruktsioonis ei sõltu selle püsimisest.

Vahepealne ruuter võib selle lähtekoha kirjutada ümber oma 'NAT'-vastendiks. Seetõttu ei ole serveris nähtaval numbril sageli mingit seost sellega, mille sülearvuti valis.

Kus lähtenumber väljumise teel muutub

Võtke väljamõeldud IPv4 näide: tõlkiv ruuter, üks 'UDP'-kuulaja serveris ja üksik datagramm, mis läbib mõlemat. Tabel nimetab iga otspunkti ja selle, mis temaga juhtub, selle asemel et paketti kolmes vaatluspunktis uuesti esitada.

EndpointWhat stays fixedWhat changes on reconnectWho owns it
Server listenerThe service port and the address the profile namesNothing; the listener does not follow the clientThe server operator
Client socketThe destination it dialsThe local source port, chosen per socketThe client, or its operating system
Translated sourceUsually the public address of the routerThe port, and sometimes the address after a network switchThe NAT device or the upstream carrier

Sihtkoht on igas reas muutumatu ja muutub ainult lähtekoha identiteet. UDP NAT-i nõuded eristavad sisemist aadressi ja porti välisest vastendist, mis on täpselt teise ja kolmanda rea vahe. Ruuter võib kliendi lähtepordi säilitada või valida teise; säilitamine ei ole midagi, mida rakendus peaks eeldama.

Lugege kolm otspunkti hostidelt endilt

Allolevad loendid pärinevad kolmelt erinevalt masinalt ja näitavad koos kogu vestlust. Käivitage esimene serveris, teine kliendis ja kolmas seal, kus vastendus eksisteerib. Üks logirida ei näita kunagi kõiki kolme.

ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194

Esimene loend tõestab, et server on seotud teenusepordiga, ja näitab, milline protsess seda omab. Teine näitab kliendi kohalikku soklit ja sihtkohta, millele see helistas. Kolmas näitab ruuteri loodud vastendit ja see on ainus koht, kus tõlgitud lähtekoht ilmub. Lugege neid selles järjekorras ja kaks numbrit ei tundu enam vastuolulised.

Mida taasühendus muudab ja mida mitte

Mõned ruuterid säilitavad kliendi lähtepordi, kui see on vaba, ja mõned eraldavad iga kord teise. Mõlemad käitumised on normaalsed ja rakendus, mis nõuab esimest, puruneb teise puhul. Vastenduse muutumine pärast taasühendust või võrguvahetust ei ole serveri viga: klient avab uue soki, ruuter annab, mis tal on, ja server näeb samas kuulajas uut lähtekohta. Viga oleks oodata, et server võtab vastu liiklust, mis on adresseeritud suvalisele kliendipordile.

Kogukonna OpenVPN kliendid saavad selle käitumise nobind kaudu, mis lubab operatsioonisüsteemil kohaliku pordi valida; kaugport tuleb endiselt profiilist. Selgesõnaline sidumine on teadlik valik, mitte protokolli nõue. Server pakub jätkuvalt üht otspunkti, samal ajal kui kliendid valivad oma kohalikud identiteedid.

Märgistage kihid kirjes eraldi

Tunneli sees on teine vestlus oma portidega. Tunneli kantud HTTPS-päringu sihtkoht on TCP 443, samas kui väline krüptitud ühendus kasutab UDP 1194, seega välise lähtepordi muutmine ei muuda sisemises teenuses midagi.

Ka väliskihis on protokoll oluline. UDP 1194 ja TCP 1194 on eri otspunktid ja 'TCP'-kuulaja ei saa kunagi UDP-datagrammi, sest number klapib. Juurutuse dokumenteerimisel märgistage serveri kuulaja, kliendi sokk ja tõlgitud lähtekoht kolme eri asjana ning lisage igale transport.

Seejärel järgigu poliitika rolle. Server avab kavandatud transpordi oma kuulajas ja autendib endiselt partnerit; kliendi tulemüür lubab vastuseid tema enda väljuvale vahetusele ilma sissetulevat teenust avaldamata. Olekuvaba filter vajab tagasisuuna selgesõnalist kirjapanekut ja see on praktiline põhjus, miks eristus loeb ka väljaspool korrektseid skeeme.

Seotud artiklid