Izvorna vrata odjemalca proti vratom strežnika, ki posluša, v toku VPN
Primerjajte dve številki vrat v enem tunelu: nespremenljiva vrata strežnika, ki poslušajo, in kratkotrajni vir odjemalca ter kako med njima stoji prevajanje usmerjevalnika.
V istem pogovoru se pojavita dve številki in nobena ni napačna. Dnevnik strežnika kaže vrata, ki poslušajo in ponujajo storitev, prenosnik kaže vtičnico, ki je poslala podatkovni gram, usmerjevalnik vmes pa lahko drugo številko ob izhodu prepiše. Primerjanje koncev pogovora je bolj koristno kot primerjanje števk. Spodnja primerjava ločuje vrata, ki poslušajo, odjemalčevo vtičnico in prevedeni vir, ker odgovarjajo na različna vprašanja.
Dve številki, ki opisujeta nasprotna konca
Nastavljena vrata strežnika so cilj, ki ga odjemalec kliče. Določa jih politika, pojavijo se v profilu in morajo biti na strani strežnika odprta. Izvorna vrata odjemalca se izberejo lokalno, običajno iz efemernega obsega, in obstajajo zato, da ima odgovor kam pristati. Lahko se spremenijo ob vsaki ponovni povezavi in nič v zasnovi ni odvisno od tega, da ostanejo stabilna.
Usmerjevalnik vmes lahko ta vir prepiše v svoje lastno preslikavo 'NAT'. Zato številka, opažena na strežniku, pogosto nima nobene zveze s tisto, ki jo je izbral prenosnik.
Kje se številka vira na poti ven spremeni
Vzemite izmišljen primer IPv4: odjemalec za usmerjevalnikom, ki prevaja, strežnik z enimi vrati, ki poslušajo 'UDP', in en sam podatkovni gram, ki prečka oba. Tabela poimenuje vsak konec in kaj se z njim zgodi, namesto da bi paket znova predvajala na treh opazovalnih točkah.
| 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 |
Cilj je v vsaki vrstici nespremenjen, spreminja se le identiteta vira. Zahteve UDP NAT razlikujejo notranji naslov in vrata od zunanje preslikave, kar je natanko razlika med drugo in tretjo vrstico. Usmerjevalnik lahko izvorna vrata odjemalca ohrani ali izbere druga; ohranitev ni nekaj, kar bi aplikacija smela predpostaviti.
Preberite tri konce na samih gostiteljih
Spodnji seznami prihajajo s treh različnih strojev in skupaj kažejo cel pogovor. Zaženite prvega na strežniku, drugega na odjemalcu in tretjega tam, kjer preslikava obstaja. Ena vrstica dnevnika nikoli ne pokaže vseh treh.
ss -lunp 'sport = :1194'
ss -unp | grep 1194
conntrack -L -p udp | grep 1194
Prvi seznam dokazuje, da je strežnik vezan na vrata storitve, in kaže, kateri proces jih ima. Drugi kaže lokalno vtičnico odjemalca in cilj, ki ga je klical. Tretji kaže preslikavo, ki jo je ustvaril usmerjevalnik, in to je edino mesto, kjer se prevedeni vir pojavi. Preberite jih v tem vrstnem redu in številki ne bosta več videti protislovni.
Kaj ponovna povezava spremeni in kaj ne
Nekateri usmerjevalniki ohranijo izvorna vrata odjemalca, ko so prosta, drugi vsakič dodelijo druga. Oba načina sta običajna in aplikacija, ki zahteva prvega, se bo zlomila na drugem. Sprememba preslikave po ponovni povezavi ali menjavi omrežja ni napaka strežnika: odjemalec odpre novo vtičnico, usmerjevalnik dodeli, kar ima, in strežnik vidi nov vir na istih vratih, ki poslušajo. Napaka bi bila pričakovati, da bo strežnik sprejel promet, naslovljen na poljubna odjemalčeva vrata.
Odjemalci OpenVPN iz skupnosti dobijo to vedenje prek nobind, kar operacijskemu sistemu prepusti izbiro lokalnih vrat; oddaljena vrata še vedno prihajajo iz profila. Izrecna vezava je zavestna izbira, ne zahteva protokola. Strežnik še naprej ponuja en konec, medtem ko si odjemalci izbirajo lastne lokalne identitete.
V zapisu označite plasti ločeno
Znotraj tunela poteka drug pogovor z lastnimi vrati. Zahteva HTTPS, ki jo nosi tunel, ima cilj TCP 443, medtem ko zunanja šifrirana povezava uporablja UDP 1194, zato sprememba zunanjih izvornih vrat ne spremeni ničesar v notranji storitvi.
Tudi na zunanji plasti je protokol pomemben. UDP 1194 in TCP 1194 so različni konci in vrata, ki poslušajo 'TCP', nikoli ne bodo prejela podatkovnega grama UDP samo zato, ker se številka ujema. Ko dokumentirate uvedbo, označite vrata strežnika, ki poslušajo, odjemalčevo vtičnico in prevedeni vir kot tri različne stvari in vsakemu dodajte transport.
Nato naj politika sledi vlogam. Strežnik odpre predvideni transport na svojih vratih, ki poslušajo, in še vedno preverja identiteto partnerja; požarni zid odjemalca prepusti odgovore na njegovo lastno odhodno izmenjavo, ne da bi objavil dohodno storitev. Brezstanjni filter potrebuje izrecno zapisano povratno smer in to je praktični razlog, da je razlikovanje pomembno tudi zunaj urejenih diagramov.