Dans certains cas, la connexion SSH semble fonctionner correctement, mais un transfert de fichier de plus de 2 Mo (scp, sftp) se bloque vers 2112 Ko et scp affiche « stalled ».
Ce problème peut avoir plusieurs causes ; celle dont je parle ici est liée au MTU sur un lien IPsec.
Contexte
Sur le site A, un PC Linux est connecté à un pare-feu qui monte le tunnel IPsec, lui-même derrière une passerelle Internet. Le site B dispose des mêmes équipements. Depuis le PC du site A, on se connecte en SSH au PC du site B.
Les petits paquets (l’ouverture de session, les commandes) passent. Les gros paquets d’un transfert de fichier, eux, dépassent la taille maximale que le tunnel peut transporter une fois l’en-tête IPsec ajouté. Si les messages ICMP « fragmentation nécessaire » sont filtrés quelque part sur le chemin, les deux machines ne l’apprennent jamais et le transfert s’arrête.
Diagnostic
Depuis le PC A, envoyez vers le PC B des pings de taille fixe en interdisant la fragmentation. 1472 octets de données + 28 octets d’en-têtes IP et ICMP = 1500, le MTU Ethernet standard.
# Linux ping -M do -s 1472 pc-site-b # Windows ping -f -l 1472 pc-site-b
Si la réponse est une erreur (« Frag needed and DF set », « message too long ») ou si aucune réponse n’arrive, diminuez la valeur de -s jusqu’à ce que le ping passe. La plus grande valeur qui passe, plus 28, donne le MTU réel du chemin.
Correction
Deux approches, selon ce que vous maîtrisez :
- Sur le poste : baisser le MTU de l’interface à la valeur trouvée (ici 1400 en exemple) :
ip link set dev eth0 mtu 1400
- Sur le pare-feu (préférable, corrige tous les postes) : réduire le MSS annoncé dans les ouvertures de connexion TCP qui traversent le tunnel. Avec iptables :
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN \ -j TCPMSS --clamp-mss-to-pmtu
La plupart des pare-feu (OPNsense, pfSense, FortiGate…) proposent un réglage équivalent de MSS sur l’interface ou le tunnel.
Laissez aussi passer les messages ICMP de type 3 code 4 (« fragmentation needed ») : ils sont indispensables à la découverte automatique du MTU.
Laisser un commentaire
Vous devez vous connecter pour publier un commentaire.