Skip to main content

J'ai récemment eu une discussion avec quelqu'un qui avait eu des problèmes avec les paramètres de son pare-feu d'entreprise. Le pare-feu efface de sa table d'état toute connexion qui est restée inactive pendant plus de 10 minutes. Malheureusement, son comportement lorsqu'il reçoit un segment pour une connexion qui ne figure pas dans sa table d'état est de laisser tomber ce segment en silence. Cela signifie qu'il peut falloir jusqu'à 8 minutes à une application STCP pour réaliser qu'elle ne peut plus communiquer avec son point d'extrémité et rétablir la connexion. Cela agaçait ses utilisateurs.

À ce stade, j'ai suggéré que l'application soit modifiée pour inclure un message de maintien de la couche d'application configurable. Malheureusement, la modification de l'application n'est pas une option. L'application ne définit pas non plus l'option de socket SO_KEEPALIVE, de sorte que même la modification du délai de maintien en activité à l'échelle du système, qui passe de 2 heures par défaut à 9 minutes, ne résoudra pas le problème.

La solution est un segment de maintien en vie de la couche TCP d'une tierce partie. Il s'agit d'un segment de la couche TCP qui semble provenir de l'application (en utilisant l'adresse IP du module comme adresse source et le port TCP de l'application comme port source) et qui est envoyé à l'adresse IP et au port de l'hôte distant. Le pare-feu note cette activité et conserve la connexion dans sa table d'état.

L'explication et les exemples de mon outil 3rd_party_keep_alive sont trop longs pour ce billet de blog, vous pouvez donc trouver les détails ici.

2024 Stratus Technologies.