Auteur Sujet: Problème étrange MTU MSS ?  (Lu 8108 fois)

0 Membres et 1 Invité sur ce sujet

simon

  • Abonné Orange Fibre
  • *
  • Messages: 1 553
Problème étrange MTU MSS ?
« Réponse #24 le: 04 juillet 2023 à 15:24:33 »
Difficile à dire sans capture/info lorsque le problème se produit car on ne peut que spéculer :)

Sur mon accès cellulaire bouygues, le MTU semble être de 1450 en IPv6 (à mon domicile). Ca semble pareil si je passe par leur NAT64 pour joindre une destination IPv4... et je n'ai pas de souci particulier de MTU ou de fragmentation de paquets quand je tente de joindre mon infra chez moi, avec un MTU de 1500 bytes.

Le path mtu discovery fonctionne bien en IPv6 et *semble* fonctionner à travers le NAT64, mais je suis comme toi dans le cas non pathologique... Je me souviens par contre d'avoir observé plus d'une fois que le NAT64 de Bouygues posait problème dans certaines zones géographiques (sur la ligne de TGV Paris-Lyon, il me semble).

Je tenterai de faire des captures si ca se reproduit. Mais si tout fonctionne en IPv6, utilise IPv6 et ne creuse pas plus :-)

À mon sens, s'il fallait appliquer du MSS clamping quelque part, ca serait côté accès mobile, pas côté FTTH. Ta connexion FTTH a un MTU de 1500, la baisser artificiellement diminuerait les performances.

cyayon

  • Abonné Orange Fibre
  • *
  • Messages: 764
  • Cordon 74 - Orange Fibre Pro
Problème étrange MTU MSS ?
« Réponse #25 le: 04 juillet 2023 à 17:11:16 »
Merci pour ta réponse.
Ce qui m'interpelle c'est que ma vm de test sur Azure n'est qu'en IPv4 et y accéder ne pose aucun problème (au même endroit).
Comment fait donc microsoft pour contourner le pb ???

En attendant d'y voir plus clair, je suis passé en full ipv6.
Merci en tout cas.

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 4 273
Problème étrange MTU MSS ?
« Réponse #26 le: 21 mai 2025 à 19:13:35 »
Hello  :)

Sujet ancien, mais toujours d'actu malheureusement, cette fois sur l'infra mobile d'Orange.

Depuis 2-3 jours (et même peut-être avant, je ne suis pas tout le temps dessus), j'ai remarqué des ratés sur les connexions HTTP avec mon VPN WG sur mon abo sosh. Ça marche 5 minutes puis plus rien, les pages web de mes services internes ne répondent plus avec un délai d'attente dépassé. Le tunnel est en IPv6 avec une MTU classique de 1420.

Une capture montre que les 2 essaient d'échanger, mais seuls les SYN/ACK arrivent à passer, dès que ça veut envoyer les pages, plus rien.

Si je déco/reco ça repart, mais fini par bloquer. Les petits paquets ne sont pas affectés, je peux avoir un flux VoIP à côté et les pages web toujours en échec. Parfois ça se débloque, j'imagine que WG refait une nouvelle connexion, mais c'est au petit bonheur la chance.

Il s'avère que la MTU est comme chez Bouygues, réduite à 1440 v4 / 1460 v6. Pire, elle varie selon la techno, en 2G/3G c'est 1500 v6 / 1440 v4 ! Ça se voit très bien quand on bascule entre les deux : un ping ipv6 coupe en 4G et repart en 3G avec une taille de 1452.

Mais bizarrement seul l'IPv6 semble déconner. J'ai switché il a quelques semaines et finalement laissé en place (pensant que ça marcherait mieux à éviter le NAT64 & cie). Je suis repassé en IPv4 à tout hasard : tout fonctionne nickel même 1h après la connexion du tunnel... voilà pourquoi je n'avais rien remarqué pendant longtemps.

J'ai refait diverses captures pour savoir d'où ça pouvait bien venir, comme si au milieu un équipement jetait l'éponge mais juste sur la partie gros paquets UDP, car vu la MTU, il y a forcément de la fragmentation quelque part.

Et c'est là que j'ai découvert la cause : Le serveur WG ! (et un peu Orange aussi qui n'est pas foutu d'avoir un réseau à 1500 partout...) C'est bien lui qui fait de la fragmentation, suite à la réception d'un packet too big de la part du réseau mobile (je pensais au départ qu'il y avait une magouille dans le cœur de réseau d'orange). SAUF QUE, en quelques minutes, il oublie la consigne et se met à envoyer des paquets de 1452 octets, qui évidemment n'arrivent jamais à destination (vérifié côté smartphone). Mais Orange de son côté, ne renvoie pas non plus de packet too big et la situation se bloque... jusqu'à ce que le tunnel soit déco/reco.

En IPv4, il y a aussi de la fragmentation mais on dirait que la consigne est retenue pendant un très long moment, car il faut que je change volontairement d'IP côté smartphone pour que ça renvoie un ICMP fragmentation needed. Sur une simple déco/reco, les paquets continuent d'êtres fragmentés.

Après avoir fouillé les paramètres de sysctl, j'ai trouvé ceux qui correspondent à la fragmentation, mais c'est presque mêmes valeurs, donc je ne comprends pas cette différence de comportement (et en v6 les valeurs sont plus élevées). D'après ce que j'ai compris ça serait secret_interval qui est important, mais il est à 0 dans les 2 cas.

Si quelqu'un veut bien m'expliquer...

net.ipv4.ipfrag_high_thresh = 4194304
net.ipv4.ipfrag_low_thresh = 3145728
net.ipv4.ipfrag_max_dist = 64
net.ipv4.ipfrag_secret_interval = 0
net.ipv4.ipfrag_time = 30
net.ipv6.ip6frag_high_thresh = 4194304
net.ipv6.ip6frag_low_thresh = 3145728
net.ipv6.ip6frag_secret_interval = 0
net.ipv6.ip6frag_time = 60

Pour le moment, la seule parade efficace que j'ai trouvé consiste à créer une autre instance de WG avec une MTU de 1360 dédiée aux mobiles, ce qui permet de laisser mes autres tunnels à 1420. Et ça fonctionne pas trop mal. Mais j'aimerais bien pouvoir régler ce soucis et n'exploiter qu'un seul tunnel...

Merci

Mastah

  • Abonné Orange Fibre
  • *
  • Messages: 693
  • XGS-PON et G-PON
Problème étrange MTU MSS ?
« Réponse #27 le: 21 mai 2025 à 20:58:59 »
Si vous avez un LAN en jumbo virer moi cette merde qui sert à rien :)
Si c'est le cas vos problèmes viennent de là.

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 4 273
Problème étrange MTU MSS ?
« Réponse #28 le: 22 mai 2025 à 04:25:44 »
Pas de jumbo, je l'aurais précisé sinon...

renaud07

  • Abonné Orange adsl
  • *
  • Messages: 4 273
Problème étrange MTU MSS ?
« Réponse #29 le: 22 mai 2025 à 20:17:26 »
J'ai à priori trouvé un truc avec la commande :
# ip route get 2a01:cb1e:31:1a0e:6030:6fff:fefe:d6f8

2a01:cb1e:31:1a0e:6030:6fff:fefe:d6f8 from :: via fe80::d284:b0ff:xxxx:xxxx dev ens18 src 2a01:cb1x:xxx:xxx:407:9264:1a4f:51ad metric 1024 expires 1180sec mtu 1460 hoplimit 64 pref medium

Je vois bien la MTU de 1460 et un compteur de 1800s, sauf que ça à l'air de couper bien avant. Et l'adresse source est la temporaire du système alors que j'utilise une IP définie manuellement pour atteindre le serveur, mais ça n'a peut-être pas d'importance dans ce cas ?

Y'a moyen d'augmenter le compteur pour voir ? Mais je ne sais pas comment... J'ai trouvé le paramètre net.ipv6.route.mtu_expires, que j'ai défini à 3600, mais ça ne change rien.

EDIT : Nouvelle découverte WTF.

La commande ip get montre également la MTU de 1440 en IPv4 avec un compteur de 600s soit en gros le délai bloquant que j'avais remarqué en IPv6.
# ip route get 92.184.112.82
92.184.112.82 via 192.168.2.1 dev ens18 src 192.168.2.45 uid 0
    cache expires 585sec mtu 1440

Mais, si sur la première connexion IPv4, le réseau envoie bien un ICMP pour fragmenter, à l'expiration du cache, le serveur se remet à envoyer à 1452, sauf que là stupeur : ils passent sans problème ! Voilà pourquoi ça fonctionne en toutes circonstances.

Est-ce que le PGW d'orange se mettrait à fragmenter à la place du serveur ? Mais alors à quoi ça sert d'envoyer un ICMP frag needed si c'est pour le faire par la suite ? Bizarre leur configuration  ???

Serveur :
# tcpdump -i ens18 host 92.184.112.82 or icmp | grep 1452
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on ens18, link-type EN10MB (Ethernet), capture size 262144 bytes
20:43:49.936537 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452
20:43:49.936544 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452
20:43:51.535838 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452
20:43:51.535847 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452
20:43:51.535848 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452
20:43:51.535849 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452
20:43:51.535851 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452
20:43:51.719366 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452
20:43:51.719374 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452
20:43:51.719376 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452
20:43:51.719377 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452
20:43:52.110937 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452
20:43:52.110946 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452
20:43:52.302530 IP 192.168.2.45.51820 > 92-184-112-82.mobile.fr.orangecustomers.net.48807: UDP, length 1452

Smartphone :
bangkk:/data/local # tcpdump -i rmnet_data2 udp port 51820 | grep 1452                                                                                                                 
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on rmnet_data2, link-type LINUX_SLL (Linux cooked v1), snapshot length 262144 bytes
20:43:51.045121 IP ip-publique.abo.wanadoo.fr.51820 > 192.0.0.2.48807: UDP, length 1452
20:43:51.055893 IP ip-publique.abo.wanadoo.fr.51820 > 192.0.0.2.48807: UDP, length 1452
20:43:52.643632 IP ip-publique.abo.wanadoo.fr.51820 > 192.0.0.2.48807: UDP, length 1452
20:43:52.655623 IP ip-publique.abo.wanadoo.fr.51820 > 192.0.0.2.48807: UDP, length 1452
20:43:52.668592 IP ip-publique.abo.wanadoo.fr.51820 > 192.0.0.2.48807: UDP, length 1452
20:43:52.681658 IP ip-publique.abo.wanadoo.fr.51820 > 192.0.0.2.48807: UDP, length 1452
20:43:52.695711 IP ip-publique.abo.wanadoo.fr.51820 > 192.0.0.2.48807: UDP, length 1452
20:43:52.832648 IP ip-publique.abo.wanadoo.fr.51820 > 192.0.0.2.48807: UDP, length 1452
20:43:52.838669 IP ip-publique.abo.wanadoo.fr.51820 > 192.0.0.2.48807: UDP, length 1452
20:43:52.859955 IP ip-publique.abo.wanadoo.fr.51820 > 192.0.0.2.48807: UDP, length 1452
20:43:52.870289 IP ip-publique.abo.wanadoo.fr.51820 > 192.0.0.2.48807: UDP, length 1452
« Modifié: 22 mai 2025 à 21:03:19 par renaud07 »