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