URL: https://linuxfr.org/forums/linuxfrquestions/posts/resoluproxybandwidth-shaping-iptables-et-connbytes Title: [RESOLU][PROXY+bandwidth shaping]: iptables et connbytes Authors: nico002 Date: 2011年03月14日T10:10:31+01:00 Tags: Score: 5 Bonjour a tous, Je dois installer un serveur proxy sur le réseau. Tous les utilisateurs devront utilisé le proxy pour pouvoir surfer sur Internet. La raison de l'installation de ce serveur est de pouvoir empêché qu'un utilisateur ne monopolisé la bande passante vers Internet pour des téléchargements inutiles. **EXISTANT:** - Serveur proxy Squid tournant sur un serveur Linux Centos. - iptables 5.3.2.el5 fraichement installer avec le fichier .so pour connbytes qui va bien dans le dossier /lib64/iptables. **OBJECTIF:** Réduire le débits de téléchargements des utilisateurs qui télécharge un fichier de plus de 100MB. Le reste n'a pas de limite. **PRINCIPE:** Après de longue recherche j'ai trouvé que la meilleur façon de le faire était la suivante: 1. Marqué tous les paquets en 0x10. 2. Marqué tous les paquets issue d'un téléchargement de plus de 100MB en 0x20. 3. En utilisant la commande tc, faire deux classes, une avec un débits trés grand, l'autre avec un débits plus petit. 4. Faire en sorte que tous les paquets marqué 0x10 soit appliqué à la classe 10 (pas de limite) et tous les paquets marqué 0x20 à l'autre classe 20. **SOURCES:** C'est quoi connbytes ? [ici](http://luxik.cdi.cz/~devik/connbytes/) Commandes tc : [ici](http://www.andybev.com/index.php/Fair_traffic_shaping_an_ADSL_line_for_a_local_network_using_Linux) **CONFIG:** $IPTABLES -t mangle -A PREROUTING -i eth0 -j MARK --set-mark 10 # 50Mb = 52428800 #$IPTABLES -t mangle -A OUTPUT -p tcp -o eth0 --sport 3128 -j MARK --set-mark 20 $IPTABLES -t mangle -A OUTPUT -p tcp -o eth0 --sport 3128 -m connbytes --connbytes 5242880: --connbytes-dir both --connbytes-mode bytes -j MARK --set-mark 20 tc qdisc add dev eth0 root handle 1: htb default 10 tc class add dev eth0 parent 1:1 classid 1:10 htb \ rate 99999kbit ceil 9999999999kbit prio 1 tc class add dev eth0 parent 1:1 classid 1:20 htb \ rate 80kbit ceil 80kbit prio 2 #tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 10 #tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 20 tc filter add dev eth0 parent 1:0 protocol ip handle 10 fw flowid 1:10 tc filter add dev eth0 parent 1:0 protocol ip handle 20 fw flowid 1:20 **RESULTAT:** Aucune limitation ne se fait quand un utilisateur télécharge. Quand j'essaye la règle iptables sans les options connbytes, tous le trafic est réduit a +/- 80kbits. Ce qui n'est pas ce que je veux. Donc a priori, les commande tc fonctionne correctement mais les options connbytes ne semble pas fonctionné :( Donc, Est ce que la logique est correct ? Est ce que la règles iptables est correctement utilisé ? Est ce que c'est bien en OUPUT ? Merci d'avance

AltStyle によって変換されたページ (->オリジナル) /