Kliendi lähtepordi ja serveri kuulaja vastandus VPN-voos
Võrrelge ühe tunnelis kahte pordnumbrit: serveri püsivat kuulajat ja kliendi lühiajalist lähtekohta ning kuidas ruuteri tõlge nende vahele jääb.
Ü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.
| Endpoint | What stays fixed | What changes on reconnect | Who owns it |
|---|---|---|---|
| Server listener | The service port and the address the profile names | Nothing; the listener does not follow the client | The server operator |
| Client socket | The destination it dials | The local source port, chosen per socket | The client, or its operating system |
| Translated source | Usually the public address of the router | The port, and sometimes the address after a network switch | The 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.