Por que moitas conexións de aplicacións comparten unha soa sesión OpenVPN
Unha conversa UDP exterior transporta cada fluxo interior que lle envían as rutas. Os portos e protocolos interiores sobreviven; só a tupla exterior permanece fixa.
Imaxine un navegador que carga unha páxina HTTPS mentres un cliente SSH chega a outro servidor e un resolutor responde a unha consulta, todo a través dunha soa sesión OpenVPN. Na interface física ve unha conversa; dentro do túnel ve tres. Ambas as vistas son correctas, e saber por que é a diferenza entre unha captura útil e unha confusa. Siga un fluxo interior desde o socket ata o cable e a estratificación deixa de ser abstracta.
Unha conversa exterior, moitos fluxos interiores
Cada aplicación abre o seu propio socket, e o núcleo dálle unha tupla de cinco elementos: enderezo de orixe, porto de orixe, enderezo de destino, porto de destino e protocolo. Esas tuplas existen antes de que interveña ningún túnel. Despois o encamiñamento decide que todas saen polo dispositivo de túnel, así que o paquete entregado a OpenVPN aínda leva dentro as cabeceiras orixinais. OpenVPN cifra ese paquete interior e envolve o resultado nunha única conversa exterior UDP ou TCP co par. A conversa exterior é, por tanto, unha, mentres que os fluxos que contén son tantos como aplicacións se abriron.
Nada colapsa. As tuplas interiores sobreviven de extremo a extremo, e por iso o lado remoto aínda distingue os tres fluxos.
O porto que permanece fixo
O que permanece constante é a tupla exterior: o seu enderezo, o porto local que vinculou o cliente, o enderezo do par e o porto de servizo configurado. Esa tupla é a que debe permitir un firewall ou un NAT no camiño, e é a que mostrará unha captura no enlace ascendente. É tamén a que cambia tras unha reconexión ou un cambio de rede, porque o cliente pode vincular outro porto local. Un túnel non implica un porto de orixe fixo para sempre.
Os portos interiores son o que importa aos extremos. Un fluxo HTTPS conserva o porto de destino 443 dentro do túnel aínda que o transporte exterior se sitúe no porto que configurase o operador. Os extremos da aplicación nunca saben nada do exterior.
Que cambia a desencapsulación no extremo remoto
No par retírase a capa exterior e o que queda é o paquete interior. A partir de aí, o reenvío e a política de acceso aplícanse ao destino e ao protocolo interiores. O servidor web segue recibindo unha conexión HTTPS, o daemon SSH segue recibindo SSH e o resolutor segue recibindo unha consulta.
Por iso unha regra que permite o transporte exterior non é a mesma regra que permitir un servizo interno. A primeira describe un camiño; a segunda describe unha autorización.
Un TCP exterior significa un só fluxo, non unha soa conexión
Cando o transporte exterior é UDP, o destino de cada fluxo interior é independente: un datagrama perdido afecta unha transferencia ata a súa propia retransmisión. Cando o transporte exterior é TCP, todos os fluxos interiores comparten un único fluxo de bytes fiable.
Ese fluxo compartido é a parte que a xente pasa por alto. A recuperación ocorre unha vez, para todo, así que un só segmento perdido atrasa o tráfico de cada aplicación multiplexada dentro. Seguen sendo moitas conexións nos extremos e unha conexión no cable, e é no cable onde vive o efecto de cabeza de liña. O número de portos á escoita non lle di nada sobre isto, e por iso contar portos é unha mala forma de razoar sobre o rendemento do túnel.
Describa a súa propia configuración con precisión
Nomee o tráfico interior seleccionado e o transporte exterior concreto que o transporta, en lugar de dicir que a máquina o envía todo por un só porto. Os servizos locais, un segundo túnel e a outra familia de enderezos crean fluxos que nunca entran nesta conversa. Unha captura no enlace ascendente mostra a tupla exterior; unha captura dentro do túnel mostra as interiores.
Tome ambas e poña as marcas de tempo unha ao lado da outra. Se necesita demostrar que aplicación xerou que fluxo interior, a táboa de sockets do equipo é o mellor instrumento, porque relaciona os portos cos procesos directamente. Despois anote a tupla exterior que observou e o momento en que a observou, porque a seguinte captura tras unha reconexión pode mostrar lexitimamente outras cifras.