Resuelto el problema con las conexiones TLS eternas

Han sido dos semanas espantosas. Pocas veces me he encontrado con tan poca ayuda en la red, aunque supongo que el problema era rarito.

En la entrada anterior me lamentaba de un problema que teníamos con las conexiones seguras con algunas páginas web porque los navegadores, de todo pelaje y condición, se quedaban atascados en las mismas mientras que en otras iban tan fluidas como siempre.

Dada la variedad de sistemas operativos y navegadores sospechaba que el problema estaría en el punto de salida a Internet. Un ordenador con la versión estable de Debian (con Linux pues) que llevaba haciendo esa tarea varios años.

Lo que había cambiado era que el router del ISP (Movistar) se había muerto y decidí hace unas semanas integrar su funcionalidad dentro del sistema con varias tarjetas de red.

Al hacerlo seguí las instrucciones de esta página pero me olvidé de un detalle importante. Bueno, no me olvidé de ponerlo, me olvidé de que sobreviviera a un reinicio del sistema por lo que lo di por hecho y no volví a fijarme más. Hasta el reinicio todo funcionó correctamente, después aparecieron los problemas y aunque revisé los registros no inspeccioné correctamente los cambios.

La solución estaba en añadir la siguiente regla al cortafuegos:

iptables -I FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu

O dejar que el programa que lo configura (shorewall) lo haga por ti cambiando su configuración en /etc/shorewall/shorewall.conf:

CLAMPMSS=Yes

No puedo decir que entienda exactamente cuál es el problema real con la conexión porque no soy experto en redes, no a ese nivel ni muchos menos, pero al parecer existe la posibilidad de que los paquetes TCP en una conexión se pierdan porque son demasiado grandes para pasar debido a que no se ha calculado correctamente el valor máximo para ese tipo de medio. Pueden crearse conexiones pero no ir más allá y entrar en lo que se denomina una conexión de agujero negro de la que no se vuelve a saber más.

Referencias

2 thoughts on “<span>Resuelto el problema con las conexiones TLS eternas</span>”

  1. Qué intuitivo y divertido.
    ¿No se supone que si el paquete es más pequeño que el MTU entra en funcionamiento la fragmentación TCP y bla bla bla? ¿O es algo mucho más complejo y oscuro? Creo que prefiero quedarme con la duda.

    • Eso es lo que pensaba yo en mi inocencia. Parece ser que no es exactamente así cuando se transmite con otros transportes como el PPPoE y hay que quitar bytes de encabezado que añade una de las partes.

      Viene bastante explicado en las referencias que he puesto y no he querido meterme más porque no termino de captarlo. Eso sí, las evidencias son claras: conexiones cifradas que funcionan y otras que no.

Comments are closed.