1 votes

SSL Connexion expirant pendant la poignée de main (retransmission de l'échange client)

Nous avons un client LDAP Java établissant une connexion SSL à AD. Parfois, la connexion se bloque avec le client et le serveur réémettant continuellement les paquets Client Key Exchange et ACK comme indiqué ci-dessous et termine par expirer après environ 5 minutes. Toute explication possible et solution à ce comportement.

client ------ Échange de clés client ----------------------> Serveur 
client ------ Échange de clés client (Réémission) --------> Serveur 
client <----- ACK --------------------------------------- Serveur   
client ------ Échange de clés client (Réémission) --------> Serveur 
client <------ Dup ACK --------------------------------- Serveur 
client ------ Échange de clés client (Réémission) --------> Serveur 
client <------ Dup ACK --------------------------------- Serveur

Capture d'écran WireShark: http://img59.imageshack.us/img59/6431/p63e.png

0 votes

Niveau TCP ACK, ou ACK de niveau 7 ? Les données brutes seraient beaucoup plus utiles ici.

0 votes

C'est son ACK TCP. J'ai également vérifié SeqNum.

0 votes

On dirait que l'ACK n'atteint pas le client. S'agit-il d'une connexion particulièrement bruyante, sujette à des pertes ou lente? Encore une fois, les données brutes sont vraiment nécessaires ici.

0voto

mc0e Points 5736

Donc, en supposant que vous avez raison que l'ACK est à un niveau TCP :

Si le client reçoit un ACK TCP, mais continue à renvoyer le contenu qui a été ACK-é, alors il en découle que le serveur a reçu et enregistré le contenu mais que le client n'a pas reçu et enregistré l'ACK.

Où collectez-vous vos données sur l'échange ? Au client, au serveur, ou entre les deux. Vous devriez probablement collecter aux deux extrémités, et aussi près que possible des extrémités, pour pouvoir les comparer et vérifier si le problème se situe dans le réseau (comme il semble probable).

Sur la base de ce que vous nous avez dit, y compris que les ACK ne parviennent pas à passer pendant une période prolongée, il semble peu probable que ce soit simplement une perte de paquets. Je regarderais très attentivement la configuration de tous les tunnels SSL ou pare-feu impliqués.

Pouvez-vous collecter et partager la sortie tcpdump de chaque extrémité de la connexion ?

0 votes

Le tracer de paquets est collecté côté client. Je vais envoyer une capture d'écran de Wireshark et un dump. Quels sont les cas où un ACK ne sera pas enregistré par le client. Une autre chose que j'ai remarquée est que ACK et DupACK ont des options SACK.

0 votes

J'ai attaché des captures d'écran de Wireshark.

0 votes

Étant donné les temps de trajet aller-retour, vous êtes extrêmement proches. Je me demande si le client et le serveur sont même sur des hôtes physiques séparés ? La virtualisation apporte différentes possibilités. Ou peut-être utilisez-vous une sorte de tunnel, et les acks viennent de l'extrémité proche du tunnel ? Si vous avez un pare-feu installé sur votre machine cliente, sachez que tcpdump capture efficacement les paquets à l'extérieur de ce pare-feu.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X