Optimisation TCP MSS (iptables)
Ce guide explique comment configurer iptables pour optimiser automatiquement le MSS (Maximum Segment Size) TCP sur l'ensemble du serveur, évitant les problèmes de latence liés aux tunnels réseau (Gcore, VPN, etc.).
Le problème
Certains réseaux (comme Gcore) utilisent des tunnels qui réduisent le MTU disponible. Sans ajustement du MSS, les paquets TCP sont fragmentés, causant de la latence.
Solution : Clamper le MSS au PMTU
Cette règle iptables ajuste automatiquement le MSS en fonction du Path MTU découvert.
Configuration permanente
Créez un script pour appliquer les règles au démarrage :
sudo nano /etc/iptables-mss.sh
Contenu du script :
#!/bin/bash
# Optimisation MSS pour éviter la fragmentation TCP
# Nettoyer les anciennes règles MSS (évite les doublons)
iptables -t mangle -F
# Appliquer le clamp MSS sur toutes les chaînes
# INPUT : paquets entrants vers le serveur
iptables -t mangle -A INPUT -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# OUTPUT : paquets sortants du serveur
iptables -t mangle -A OUTPUT -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# FORWARD : paquets routés (conteneurs Docker)
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# POSTROUTING : après routage
iptables -t mangle -A POSTROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
# PREROUTING : avant routage
iptables -t mangle -A PREROUTING -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --clamp-mss-to-pmtu
echo "Règles MSS appliquées avec succès"
Rendre le script exécutable :
sudo chmod +x /etc/iptables-mss.sh
Exécuter au démarrage
Créez un service systemd :
sudo nano /etc/systemd/system/iptables-mss.service
[Unit]
Description=Optimisation MSS TCP globale
After=network.target docker.service
[Service]
Type=oneshot
ExecStart=/etc/iptables-mss.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Activer et démarrer le service :
sudo systemctl daemon-reload
sudo systemctl enable iptables-mss.service
sudo systemctl start iptables-mss.service
Vérifier les règles
sudo iptables -t mangle -L -v -n
Vous devriez voir les règles TCPMSS sur chaque chaîne.
Explication technique
| Option | Description |
|---|---|
-t mangle | Table pour modifier les paquets |
--tcp-flags SYN,RST SYN | Cible uniquement les paquets SYN (établissement de connexion) |
--clamp-mss-to-pmtu | Ajuste le MSS en fonction du PMTU découvert |
Cas d'utilisation
Cette optimisation est utile pour :
- Serveurs derrière une protection DDoS (Gcore, OVH Game DDoS Protection, etc.)
- VPS avec tunnels réseau
- Serveurs de jeux (FiveM, Minecraft, etc.)
- Toute infrastructure où le MTU est réduit
Si vous utilisez Pterodactyl avec Gcore, combinez cette configuration avec le MTU optimisé pour Docker.