SSH colga sobre OpenVPN? Mida primeiro a MTU da ruta
O eco funciona e despois unha listaxe bloquea a sesión para sempre. Sondea o teito desde ambos os lados antes de tocar mssfix, fragment ou a MTU da interface.
SSH conecta, aparece o indicador e a sesión morre en canto un comando devolve algo voluminoso. O eco segue funcionando un intre e despois a conexión caduca mentres o cliente aínda mostra o túnel como activo. Unha sesión sa ata que chegan datos adoita bater cun límite de tamaño e non cun defecto de SSH. As comprobacións seguintes están ordenadas para descartar primeiro a explicación máis barata.
Le a forma do fallo antes de tocar o perfil
Os paquetes pequenos pasan e os cheos non. Un indicador, un cartel ou unha pulsación de tecla caben sen problema; unha listaxe de directorio, unha descarga ou un bloque pegado non. O tamaño no que cambia o comportamento é a pista, non o feito de que SSH sexa o programa implicado.
O mecanismo é o descubrimento da MTU da ruta, que depende da retroalimentación. TCP escolle un tamaño de segmento e, cando un encamiñador do camiño non pode reenviar o paquete resultante, supón que debe dicilo cunha mensaxe ICMP. A encapsulación fai o paquete exterior maior que o interior, así que o tamaño útil dentro dun túnel sempre queda por baixo da ligazón física. Filtra esas mensaxes ICMP en calquera punto e o emisor nunca recibe a corrección, segue enviando segmentos cheos e o paquete exterior descártase sen aviso.
Mida o teito desde ambos os lados
Compare a MTU do túnel coa ligazón física antes de cambiar calquera dos dous. Un túnel que copiou o valor físico xa lle dixo onde vive a discrepancia.
Sondea desde dentro do túnel cunha petición que prohiba fragmentar, baixando a carga útil ata que volvan respostas. O argumento de tamaño só conta a carga útil, así que a cifra que funciona sempre queda por baixo da MTU da interface. Suma de novo os tamaños das cabeceiras se necesitas a cifra da interface.
ip link show tun0
ping -M do -s 1380 10.9.0.1Repite a proba contra o enderezo público do servidor desde fóra do túnel. Se as probas grandes tamén fallan alí, o límite está no camiño ao servidor e ningunha opción do túnel o moverá. Esa comparación evítalle axustar un cliente que nunca foi o problema. Anota os dous resultados antes de abrir un ficheiro de configuración.
mssfix e fragment fan traballos distintos
mssfix limita o tamaño de segmento que as conexións TCP dentro do túnel anuncian durante o seu saúdo. É a panca correcta para SSH, HTTPS e copias de ficheiros, por iso o bloqueo adoita desaparecer en canto se define. Non toca en absoluto as cargas útiles UDP.
Un túnel que tamén transporta un servizo UDP pode seguir fallando despois de arranxar SSH, e ese resultado confunde a quen supón que unha opción o cobre todo.
fragment é o outro mecanismo e unha ferramenta distinta. Divide os paquetes sobredimensionados antes da encapsulación, só se aplica ao transporte UDP, engade sobrecarga por datagrama e está documentado como último recurso para un descubrimento roto. Os dous axustes deben coincidir nos extremos que terminan o túnel. Un lado que limita mentres o outro fragmenta produce avisos no rexistro e un comportamento que ninguén pode prever a partir dos ficheiros.
Baixar a MTU da interface é a opción burda
Reducir a MTU da interface nos dous extremos é o instrumento burdo. Di a cada emisor interno un número máis pequeno, o que funciona, e carga ese custo a todo o tráfico en lugar dos fluxos TCP que o necesitan.
Elíxea cando o túnel transporte tráfico que non pode limitar, ou cando o cliente sexa un aparello cuxo perfil non controla. Aplícaa de forma simétrica e anota o valor xunto ao perfil. Un cambio aplicado a medias é peor que ningún, porque parece unha solución.
Volve probar coa transferencia que se colgou
Reconecta para que se carguen os axustes, abre unha conexión nova e repite o comando que se conxelou. O tamaño de segmento négociase no saúdo, así que unha sesión que sobreviviu á reconexión aínda leva o valor vello. Un ping é unha mala proba aquí, porque todo o fallo é que pasan os paquetes pequenos. Usa a listaxe, a descarga ou o pegado que se rompeu.
Se o bloqueo persiste cun tamaño menor, mira noutro sitio: unha devasa con estado que caduca o fluxo, un enderezo duplicado ou unha ruta que se despraza ao reconectar. Anota o tamaño da proba que fallou e o axuste que cambiou, porque ese par é o que fai útil o informe seguinte.