Porti burim i klientit kundrejt dëgjuesit të serverit në një rrjedhë VPN
Krahasoni dy numrat e porteve në një tunel: dëgjuesin fiks të serverit dhe burimin efemer të klientit, dhe si përkthimi i ruterit qëndron midis tyre.
Në të njëjtin bisedë shfaqen dy numra dhe asnjëri nuk është i gabuar. Regjistri i serverit tregon dëgjuesin që ofron shërbimin, laptopi tregon soketin që dërgoi datagramin, dhe një ruter në mes mund ta rishkruajë të dytin në dalje. Krahasimi i skajeve të bisedës është më i dobishëm se krahasimi i shifrave. Krahasimi më poshtë mban të ndara dëgjuesin, soketin e klientit dhe burimin e përkthyer, sepse përgjigjen për pyetje të ndryshme.
Dy numra që përshkruajnë skaje të kundërta
Porti i konfiguruar i serverit është destinacioni ku klienti telefonon. Fiksohet nga politika, shfaqet në profil dhe duhet të jetë i hapur në anën e serverit. Porti burim i klientit zgjidhet lokalisht, zakonisht nga diapazoni efemer, dhe ekziston që përgjigja të ketë ku të aterojë. Mund të ndryshojë në çdo rilidhje, dhe asgjë në dizajn nuk varet nga qëndrueshmëria e tij.
Një ruter në mes mund ta rishkruajë atë burim në hartëzimin e vet 'NAT'. Prandaj numri i vëzhguar në server shpesh nuk ka asnjë lidhje me atë që zgjodhi laptopi.
Ku ndryshon numri i burimit në dalje
Merrni një shembull IPv4 të trilluar: një klient pas një ruteri që përkthen, një server me një dëgjues 'UDP' dhe një datagram që kalon të dyja. Tabela emërton çdo skaj dhe çfarë i ndodh, në vend që ta riprodhojë paketën në tre pika vëzhgimi.
| 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 |
Destinacioni është konstant në çdo rresht, dhe ndryshon vetëm identiteti i burimit. Kërkesat e UDP NAT dallojnë një adresë dhe port të brendshëm nga hartëzimi i jashtëm, që është pikërisht dallimi mes rreshtit të dytë dhe të tretë. Një ruter mund ta ruajë portin burim të klientit ose të zgjedhë një tjetër; ruajtja nuk është diçka që një aplikacion duhet ta supozojë.
Lexoni tre skajet nga vetë hostet
Listat më poshtë vijnë nga tre makina të ndryshme dhe së bashku tregojnë të gjithë bisedën. Ekzekutoni të parën në server, të dytën në klient dhe të tretën kudo ku ekziston hartëzimi. Një rresht i vetëm regjistri nuk i tregon kurrë të tre.
ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194
Lista e parë provon se serveri është i lidhur me portin e shërbimit dhe tregon cili proces e zotëron. E dyta tregon soketin lokal të klientit dhe destinacionin ku telefonoi. E treta tregon hartëzimin e krijuar nga ruteri, dhe është i vetmi vend ku shfaqet burimi i përkthyer. Lexojini në atë rend dhe dy numrat nuk duken më kontradiktorë.
Çfarë ndryshon rilidhja dhe çfarë jo
Disa ruterë e ruajnë portin burim të klientit kur është i lirë, dhe të tjerë caktojnë një tjetër çdo herë. Të dyja sjelljet janë normale, dhe një aplikacion që kërkon të parën do të thyhet në të dytën. Ndryshimi i hartëzimit pas një rilidhjeje ose një ndryshimi rrjeti nuk është defekt i serverit: klienti hap një soket të ri, ruteri cakton atë që ka, dhe serveri sheh një burim të ri në të njëjtin dëgjues. Defekt do të ishte të pritej që serveri të pranonte trafik të adresuar drejt një porti arbitrar klienti.
Klientët OpenVPN e komunitetit e marrin këtë sjellje përmes nobind, i cili lejon sistemin operativ të zgjedhë portin lokal; porti i largët ende vjen nga profili. Lidhja e qartë është një zgjedhje e vetëdijshme, jo një kërkesë e protokollit. Serveri vazhdon të ofrojë një skaj ndërsa klientët zgjedhin identitetet e tyre lokale.
Etiketoni shtresat veçmas në regjistër
Brenda tunelit zhvillohet një bisedë e dytë me porte të vetat. Një kërkesë HTTPS e transportuar nga tuneli ka destinacion TCP 443, ndërsa lidhja e kriptuar e jashtme përdor UDP 1194, prandaj ndryshimi i portit burim të jashtëm nuk ndryshon asgjë në shërbimin e brendshëm.
Edhe në shtresën e jashtme protokolli ka rëndësi. UDP 1194 dhe TCP 1194 janë skaje të ndryshme, dhe një dëgjues 'TCP' nuk do të marrë kurrë një datagram UDP vetëm sepse numri përputhet. Kur dokumentoni një vendosje, etiketoni dëgjuesin e serverit, soketin e klientit dhe burimin e përkthyer si tre gjëra të ndryshme, dhe shtoni transportin për secilin.
Pastaj lëreni politikën të ndjekë rolet. Serveri hap transportin e synuar në dëgjuesin e vet dhe ende vërteton palën; muri i zjarrit i klientit lejon përgjigjet ndaj shkëmbimit të tij dalës pa publikuar një shërbim hyrës. Një filtër pa gjendje ka nevojë për drejtimin e kthimit të shkruar qartë, dhe ky është arsyeja praktike pse dallimi ka rëndësi përtej diagrameve të rregullta.