Imagineu un navegador que carrega una pàgina HTTPS mentre un client SSH arriba a un altre servidor i un resolutor respon una consulta, tot a través d’una sola sessió OpenVPN. A la interfície física veieu una conversa; dins del túnel en veieu tres. Totes dues visions són correctes, i saber per què és la diferència entre una captura útil i una de confusa. Seguiu un flux interior des del sòcol fins al cable i la capa deixa de ser abstracta.

Una conversa exterior, molts fluxos interiors

Cada aplicació obre el seu propi sòcol, i el nucli li dona una tupla de cinc elements: adreça d’origen, port d’origen, adreça de destinació, port de destinació i protocol. Aquestes tuples existeixen abans que hi intervingui cap túnel. Després l’encaminament decideix que totes surten pel dispositiu de túnel, de manera que el paquet lliurat a OpenVPN encara porta les capçaleres originals a dins. OpenVPN xifra aquest paquet interior i embolcalla el resultat en una única conversa exterior UDP o TCP amb el parell. La conversa exterior és, doncs, una, mentre que els fluxos que hi ha a dins són tants com aplicacions s’han obert.

Res no col·lapsa. Les tuples interiors sobreviuen d’un extrem a l’altre, i per això la banda remota encara distingeix els tres fluxos.

El port que no canvia

El que es manté constant és la tupla exterior: la vostra adreça, el port local que el client ha lligat, l’adreça del parell i el port de servei configurat. Aquesta tupla és la que ha de permetre un tallafocs o un NAT al camí, i és la que mostrarà una captura a l’enllaç ascendent. També és la que canvia després d’una reconnexió o d’un canvi de xarxa, perquè el client pot lligar un port local diferent. Un túnel no implica un port d’origen fix per sempre.

Els ports interiors són el que importa als extrems. Un flux HTTPS conserva el port de destinació 443 dins del túnel encara que el transport exterior se situï en el port que hagi configurat l’operador. Els extrems de l’aplicació no saben mai res del port exterior.

Què canvia la desencapsulació a la banda remota

Al parell la capa exterior s’elimina i el que queda és el paquet interior. A partir d’aquí, el reenviament i la política d’accés s’apliquen a la destinació i el protocol interiors. El servidor web encara rep una connexió HTTPS, el dimoni SSH encara rep SSH i el resolutor encara rep una consulta.

Per això una regla que permet el transport exterior no és la mateixa regla que permetre un servei intern. La primera descriu un camí; la segona descriu una autorització.

Un TCP exterior significa un sol flux, no una sola connexió

Quan el transport exterior és UDP, el destí de cada flux interior és independent: un datagrama perdut afecta un sol enviament fins a la seva pròpia retransmissió. Quan el transport exterior és TCP, tots els fluxos interiors comparteixen un sol flux de bytes fiable.

Aquest flux compartit és la part que la gent passa per alt. La recuperació passa una vegada, per a tot, de manera que un sol segment perdut endarrereix el trànsit de cada aplicació multiplexada a dins. Segueixen sent moltes connexions als extrems i una connexió al cable, i és al cable on viu l’efecte de cap de línia. El nombre de ports en escolta no us diu res sobre això, i per això comptar ports és una mala manera de raonar sobre el rendiment del túnel.

Descriviu la vostra pròpia configuració amb precisió

Anomeneu el trànsit interior seleccionat i el transport exterior concret que el porta, en lloc de dir que la màquina ho envia tot per un sol port. Els serveis locals, un segon túnel i l’altra família d’adreces creen fluxos que no entren mai en aquesta conversa. Una captura a l’enllaç ascendent mostra la tupla exterior; una captura dins del túnel mostra les interiors.

Preneu totes dues i poseu les marques de temps l’una al costat de l’altra. Si us cal provar quina aplicació va generar quin flux interior, la taula de sòcols de l’amfitrió és el millor instrument, perquè relaciona els ports amb els processos directament. Després anoteu la tupla exterior que heu observat i el moment en què l’heu observada, perquè la captura següent després d’una reconnexió pot mostrar legítimament xifres diferents.

Articles relacionats