Bonsoir, Dans beaucoup de scripts, on propose d'utiliser la cible MARK pour marquer tous les paquets un par un lors de leur passage dans la table mangle de la chaîne POSTROUTING.
Je n'aime pas beaucoup cela, et je voulais savoir ce que vous pensiez de faire de la façon suivante : Le marquage des paquets est fait : priorité 1 => flag 0x81 priorité 2 => flag 0x82 priorité 3 => .... Le mask 0x80 servant à reconnaître un paquet marqué peu importe la priorité. Par défaut, si aucune _mark_ n'est présente, la priorité la plus basse est utilisée. [code] # Priorité 1 pour le traffic non tcp, l'icmp et les aknowledges TCP # On marque ici les paquets et non pas la connexion entière iptables -t mangle -A traffic_shaping -p ! tcp -j MARK --set-mark 0x81 iptables -t mangle -A traffic_shaping -p icmp -j MARK --set-mark 0x81 iptables -t mangle -A traffic_shaping -p tcp -m length --length :64 \ -j MARK --set-mark 0x81 # Restaurer la mark pour les paquets faisant parti d'une connexion # marquée auparavant depuis la table nat. # On travaille sur tous les paquets. iptables -t mangle -A traffic_shaping -m connmark --mark 0x80/0x80 \ -j CONNMARK --restore-mark # Donner une priorité au service présent sur le serveur. La mark est # associée à la connexion entière. La table nat ne vois passé que le # premier paquet d'une connexion. iptables -t nat -A ts_whole -p tcp --dport 22 -j CONNMARK --set-mark 0x82 iptables -t nat -A ts_whole -p tcp --dport 80 -j CONNMARK --set-mark 0x83 iptables -t nat -A ts_whole -p tcp --dport 21 -j CONNMARK --set-mark 0x84 iptables -t nat -A ts_whole -p tcp --dport 2000:2020 -j CONNMARK \ --set-mark 0x84 [/code] avec [code] iptables -t nat -i $LAN_IFACE -A PREROUTING -j ts_whole iptables -t mangle -o $LAN_IFACE -A POSTROUTING -j traffic_shaping [/code] La chaîne ts_whole est basée sur le traffic _entrant_ initié par un utilisateur externe, et ne traite pas les connexions initiées par le serveur. C'est comme cela que j'ai fait les tests depuis mon réseau local avec du téléchargement en HTTP, SFTP et FTP, et un petit ping en mode flood. J'ai graphé mes résultats et cela à l'air de fonctionner correctement. Cela me paraît moins gourmand au niveau iptables bien que dans mon exemple il faudrait aussi traiter les connexions initiées par le serveur. Vous en pensez quoi ? --- Franck Joncourt http://www.debian.org/ - http://smhteam.info/wiki/ -- Lisez la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Vous pouvez aussi ajouter le mot ``spam'' dans vos champs "From" et "Reply-To:" To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]