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.

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

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.

Sorodni članki