Suite aux autres bonnes réponses, j'ai récemment dû utiliser la table mangle pour ajuster les écarts MTU (unité de transmission maximale) causés par le trafic acheminé via PPPoE, PPP et ATM, chacun ajoutant des frais généraux qui réduisent la charge utile disponible pour IP à partir des 1500 octets habituels d'une trame Ethernet.
Les systèmes à chaque extrémité du tuyau, comme c'est normal, auraient leur MTU à la valeur par défaut régulière de 1500 et ils essaieraient donc d'envoyer des trames IP aussi grandes. Étant donné que la taille réelle de la charge utile disponible était plus petite, cela aurait causé la fragmentation des paquets, sauf que souvent l'expéditeur demanderait que les paquets ne soient pas fragmentés et, en tant que tels, ils finissent par être entièrement supprimés.
Dans un monde idéal, la découverte de MTU de chemin aurait permis aux points d'extrémité d'ajuster leur MTU au besoin, mais cette découverte dépend d'ICMP, et les réseaux hors de mon contrôle étaient souvent configurés pour supprimer ICMP pour des raisons de sécurité.
Le seul choix était d'utiliser le désamorçage de paquets dans mon routeur afin de modifier les paquets TCP SYN pour réduire la taille maximale des segments au niveau de la couche transport:
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452
Ce genre de chose est désordonné et devrait idéalement être évité, mais je n'avais pas d'autres options et cela a résolu le problème.
J'espère que ces exemples vous aideront, ainsi que la page de manuel.
iptables(8)
page de manuel contient toutes les informations que vous souhaitez, y compris plusieurs bons exemples d'utilisation de la table mangle.