Imaginați-vă un browser care încarcă o pagină HTTPS în timp ce un client SSH ajunge la alt server și un resolver răspunde la o interogare, totul printr-o singură sesiune OpenVPN. Pe interfața fizică vedeți o conversație; în interiorul tunelului vedeți trei. Ambele perspective sunt corecte, iar a ști de ce este diferența dintre o captură utilă și una derutantă. Urmați un flux interior de la socket la cablu și stratificarea încetează să mai fie abstractă.

O conversație exterioară, multe fluxuri interioare

Fiecare aplicație își deschide propriul socket, iar nucleul îi dă un tuplu de cinci elemente: adresa sursă, portul sursă, adresa destinație, portul destinație și protocolul. Aceste tupluri există înainte de a intra în joc vreun tunel. Apoi rutarea decide că toate ies prin dispozitivul de tunel, așa că pachetul predat lui OpenVPN mai poartă antetele originale în interior. OpenVPN criptează acel pachet interior și înfășoară rezultatul într-o singură conversație UDP sau TCP exterioară cu partenerul. Așadar conversația exterioară este una, în timp ce fluxurile din ea sunt tot atâtea câte aplicații s-au deschis.

Nimic nu se prăbușește. Tuplurile interioare supraviețuiesc de la un capăt la altul, și de aceea partea îndepărtată încă distinge cele trei fluxuri.

Portul care rămâne fix

Constant rămâne tuplul exterior, adică adresa dumneavoastră, portul local pe care clientul l-a legat, adresa partenerului și portul de serviciu configurat. Acest tuplu este cel pe care un firewall sau un NAT de pe traseu trebuie să îl permită, și este cel pe care îl va arăta o captură pe legătura ascendentă. El este și cel care se schimbă după o reconectare sau o schimbare de rețea, pentru că clientul poate lega alt port local. Un tunel nu implică un port sursă fix pentru totdeauna.

Porturile interioare sunt cele care contează pentru punctele finale. Un flux HTTPS păstrează portul destinație 443 în interiorul tunelului, chiar dacă transportul exterior stă pe portul configurat de operator. Punctele finale ale aplicației nu află niciodată despre cel exterior.

Ce schimbă decapsularea la capătul îndepărtat

La partener stratul exterior este îndepărtat, iar pachetul interior este ce rămâne. De acolo, forwardingul și politica de acces se aplică destinației și protocolului interioare. Serverul web primește în continuare o conexiune HTTPS, demonul SSH primește în continuare SSH, iar resolverul primește în continuare o interogare.

De aceea o regulă care permite transportul exterior nu este aceeași regulă ca permiterea unui serviciu intern. Prima descrie o cale; a doua descrie o autorizare.

Un TCP exterior înseamnă un singur flux, nu o singură conexiune

Când transportul exterior este UDP, soarta fiecărui flux interior este independentă: un datagram pierdut afectează o singură transferare până la retransmisia proprie. Când transportul exterior este TCP, toate fluxurile interioare împart un singur flux de octeți de încredere.

Acest flux partajat este partea pe care oamenii o ratează. Recuperarea are loc o singură dată, pentru tot, așa că un singur segment pierdut întârzie traficul fiecărei aplicații multiplexate în interior. Sunt în continuare multe conexiuni la punctele finale și o conexiune pe cablu, iar pe cablu trăiește efectul de cap de coadă. Numărul de porturi în ascultare nu vă spune nimic despre asta, și de aceea numărarea porturilor este o modalitate slabă de a raționa despre performanța tunelului.

Descrieți propria configurare cu precizie

Numiți traficul interior selectat și transportul exterior specific care îl poartă, în loc să spuneți că mașina trimite totul printr-un singur port. Serviciile locale, un al doilea tunel și cealaltă familie de adrese creează fluxuri care nu intră niciodată în această conversație. O captură pe legătura ascendentă arată tuplul exterior; o captură în interiorul tunelului le arată pe cele interioare.

Luați ambele și puneți marcajele de timp alături. Dacă trebuie să demonstrați ce aplicație a generat ce flux interior, tabelul de socketuri de pe gazdă este instrumentul mai bun, pentru că asociază porturile direct proceselor. Apoi notați tuplul exterior pe care l-ați observat și momentul în care l-ați observat, pentru că următoarea captură după o reconectare poate arăta în mod legitim alte numere.

Articole similare