Le Mon, 06 Jun 2005 09:19:07 +0200 Emmanuel Doguet <[EMAIL PROTECTED]> a écrit:
> Salut à tous, > > N'ayant une qu'une connectivité RNIS chez moi ( 64 Kbits symetrique ), > j'aurais voulu mettre un système de QoS afin d'avoir tjrs SSH/ICMP de > rapide meme si les emails se telechargent. > > J'ai essayé plusieurs script (wondershaper, htb, etc...) qui se lance > sans erreurs, voir me donne des stats ... mais je ne ressent aucune > difference. > > Ma debit est trop petit peut etre pour la QoS ? > Deux choses, l'estimation de l'upload est moins fiable avec le ppp, par ailleurs, pour que ça soit efficace, il faut réserver une bande passante en marge de sécurité de 10% (peut être + en ppp mais dans la pratique ça marchait). Donc avec 64Kbits symétrique, cela fait un upload max de 8K, il faut faire tes scripts pour gérer une bande maximale de 7K. Je suggère un script comme suit(adapté d'un de mes scripts). Bien évidemment, il faut adapter avec la fonction affecte qui est de la forme affecte Nom_du_service type_du_port port priorité avec Nom_du_service = chaine de caractères pour l'affichage lors du lancement type_du_port = d ou s suivant que le port spécifié soit celui en réception (sur la machine distante) où émission (sur la machine locale) port = numéro du port (si) priorité = numéro de la file de priorité J'avais des scripts découpant la bande passante en deux étanches mais si en fait, si tes paramètres sont bien fait, la gestion des priorités peut suffire: Avec 3 téléchargement sur le serveur, le ping ne bouge pas d'un iota sur «Counter Strike», ce qui est le meilleur des tests. Par contre si tu essayes de te passer de la marge de sécurité de 10%, ça devient moins efficace. --------- le script ---------- #!/bin/sh # Limiteur de bande passante inspiré du travail de # Dan Singletary lui meme inspiré de # Inspiré de WonderShaper (www.lartc.org) # François Boisson (2003-2005) DEV=ppp0 P0=2 P1=5 P2=5 P3=2 P4=6 P5=6 P6=2 PART=$[$P0+$P1+$P2+$P3+$P4+$P5+$P6] UNITE=2 RATEUP=$[$PART*$UNITE] # ça doit faire 56Kbits/s affecte() { iptables -t mangle -A MONLIMITEUR-OUT -p $4 --$2port $3 \ -j MARK--set-mark 2$5} if [ "$1" = "status" ] then echo "[qdisc]" tc -s qdisc show dev $DEV echo "[class]" tc -s class show dev $DEV echo "[filter]" tc -s filter show dev $DEV echo "[iptables]" iptables -t mangle -L MONLIMITEUR-OUT -v -x 2> /dev/null exit fi tc qdisc del dev $DEV root 2> /dev/null > /dev/null iptables -t mangle -D POSTROUTING -o $DEV -j MONLIMITEUR-OUT \ 2> /dev/null > /dev/null iptables -t mangle -F MONLIMITEUR-OUT \ 2>/dev/null> /dev/null iptables -t mangle -X MONLIMITEUR-OUT 2> /dev/null > /dev/null if [ "$1" = "stop" ] then echo "Limitation de débit désactivée sur $DEV." exit fi ip link set dev $DEV qlen 30 tc qdisc add dev $DEV root handle 1: htb default 26 tc class add dev $DEV parent 1: classid 1:1 htb rate ${RATEUP}kbit tc class add dev $DEV parent 1:1 classid 1:20 htb \ rate $[($RATEUP*$P0)/$PART]kbit \ ceil ${RATEUP}kbit prio 0 tc class add dev $DEV parent 1:1 classid 1:21 htb \ rate $[($RATEUP*$P1)/$PART]kbit \ ceil ${RATEUP}kbit prio 1 tc class add dev $DEV parent 1:1 classid 1:22 htb \ rate $[($RATEUP*$P2)/$PART]kbit \ ceil ${RATEUP}kbit prio 2 tc class add dev $DEV parent 1:1 classid 1:23 htb \ rate $[($RATEUP*$P3)/$PART]kbit \ ceil ${RATEUP}kbit prio 3 tc class add dev $DEV parent 1:1 classid 1:24 htb \ rate $[($RATEUP*$P4)/$PART]kbit \ ceil ${RATEUP}kbit prio 4 tc class add dev $DEV parent 1:1 classid 1:25 htb \ rate $[($RATEUP*$P5)/$PART]kbit \ ceil ${RATEUP}kbit prio 5 tc class add dev $DEV parent 1:1 classid 1:26 htb \ rate $[($RATEUP*$P6)/$PART]kbit \ ceil ${RATEUP}kbit prio 6 tc qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10 tc qdisc add dev $DEV parent 1:21 handle 21: sfq perturb 10 tc qdisc add dev $DEV parent 1:22 handle 22: sfq perturb 10 tc qdisc add dev $DEV parent 1:23 handle 23: sfq perturb 10 tc qdisc add dev $DEV parent 1:24 handle 24: sfq perturb 10 tc qdisc add dev $DEV parent 1:25 handle 25: sfq perturb 10 tc qdisc add dev $DEV parent 1:26 handle 26: sfq perturb 10 tc filter add dev $DEV parent 1:0 prio 0 \ protocol ip handle 20 fw flowid 1:20 tc filter add dev $DEV parent 1:0 prio 0 \ protocol ip handle 21 fw flowid 1:21 tc filter add dev $DEV parent 1:0 prio 0 \ protocol ip handle 22 fw flowid 1:22 tc filter add dev $DEV parent 1:0 prio 0 \ protocol ip handle 23 fw flowid 1:23 tc filter add dev $DEV parent 1:0 prio 0 \ protocol ip handle 24 fw flowid 1:24 tc filter add dev $DEV parent 1:0 prio 0 \ protocol ip handle 25 fw flowid 1:25 tc filter add dev $DEV parent 1:0 prio 0 \ protocol ip handle 26 fw flowid 1:26 iptables -t mangle -N MONLIMITEUR-OUT iptables -t mangle -I POSTROUTING -o $DEV -j MONLIMITEUR-OUT # Trafic sur les ports bas affecte "port bas" s 0:1024 tcp 3 affecte "port bas" d 0:1024 tcp 3 # Petits paquets (des ACK probablement) iptables -t mangle -A MONLIMITEUR-OUT -p tcp -m length --length :64 -j MARK \ --set-mark 21 iptables -t mangle -A MONLIMITEUR-OUT -p tcp -m length --length 65:128 \ -j MARK --set-mark 22 # Port ftp-data, faible priorité affecte "FTP data" s 20 tcp 4 affecte "FTP data" d 20 tcp 4 affecte "FTP" s 21 tcp 3 affecte "FTP" d 21 tcp 3 # Messagerie Immédiate AOL affecte AOL d 5190 tcp 3 # Messagerie Immédiate MSN affecte "MSN" d 1863 tcp 3 affecte "MSN" d 6891 udp 4 affecte "MSN" d 6891 tcp 4 affecte "MSN" s 1863 tcp 3 affecte "MSN" s 6891 udp 4 affecte "MSN" s 6891 tcp 4 # ICMP (ping) - forte priorité (impressionnez vos amis) iptables -t mangle -A MONLIMITEUR-OUT -p icmp -j MARK \ --set-mark 20 # DNS (petits paquets) affecte "DNS" d 53 udp 1 # shell sécurisé affecte "SSH" d ssh tcp 2 affecte "SSH" s ssh tcp 2 # telnet affecte "telnet" d telnet tcp 2 affecte "telnet" s telnet tcp 2 # Serveur WWW local affecte "Apache" s http tcp 5 # Serveur WWW local affecte "Apache jury agreg" s 344 tcp 3 affecte "X11" d 6000 tcp 2 affecte "X11" d 6000 udp 2 affecte "VNC" s 5901:5905 tcp 2 affecte "VNC" s 5901:5905 udp 2 affecte "BattleNet" d 6112:6119 tcp 1 affecte "BattleNet" d 6112:6119 udp 1 affecte "BattleNet" s 6112:6119 tcp 1 affecte "BattleNet" s 6112:6119 udp 1 affecte "BattleNet" s 4000 tcp 1 affecte "BattleNet" d 4000 tcp 1 affecte "BattleNet" d 4000 udp 1 affecte "BattleNet" s 4000 udp 1 affecte "CounterStrike" d 27000:27045 udp 0 affecte "CounterStrike" s 27000:27030 udp 0 affecte "Quake3" d 27960 udp 1 affecte "Quake3" s 27960 udp 1 affecte "Xmule" s 3662 tcp 6 affecte "Xmule" s 3672 udp 6 affecte "Xmule" d 5259 udp 2 # reste iptables -t mangle -A MONLIMITEUR-OUT -m mark --mark 0 -j MARK \ --set-mark 26 echo "Limitation de trafic sortant activé sur $DEV.\ Débit: ${RATEUP}kbit/sec." François Boisson -- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench Pensez à rajouter 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]