[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: équivalent de nice pour la bande passante



> Ma foi, ça m'a l'air d'être bien compliqué tout ça... Je vais devoir
> regarder un peu
> plus longtemps que ce que j'avais prévu.....
> 
> J'en prend note, je le regarde et je m'instruis....
> 

Pas si compliqué. Ce script organise 7 files de priorités, chacune dispose
d'une tranche minimale de bande passante (mais si c'est possible, elle en
prenne plus dans le cas où une autre n'est pas utilisé). Ces tranches ont des
priorités
P0 prioritaire devant P1 prioritaire devant P2 etc...

Les lignes
P0=40
P1=1
P2=1
P3=1
P4=1
P5=1
P6=1
indiquent ces tranches minimales (en K/s)
C'est une première partie à paramétrer.
Plus loin, tu trouve des lignes
affecte "port bas" s 0:1024 tcp 3
affecte "port bas" d 0:1024 tcp 3
[...]
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

ces lignes indique en fonction du port source (s) ou destination (d) et du
protocole à quelle file de priorité appartient le traffic correspondant.

Exemple: Tu veux absolument que ton serveur ssh réponde, tu fais

affecte "SSH" s 22 tcp 2

("SSH" est pour le commentaire, d 22 = traffic destination source 22 de
ta machine), priorité 2 ce qui est pas mal.

Ton fils exige d'avoir un ping qui n'augmente pas plus de 10 si quelqu'un
télécharge 100M chez toi:

C'est du traffic udp sur des ports de la plage 27000:27045. Tu fais
affecte "CounterStrike" d 27000:27045 udp 0
affecte "CounterStrike" s 27000:27030 udp 0
(priorité 0, question de survie du joueur :))

Tu peux occasionnelemnt faire des règles particulière: exemple le ping
iptables -t mangle -A MONLIMITEUR-OUT -p icmp -j MARK --set-mark 20

- icmp signifie protocole icmp, l'important est le set-mark qui marque le
paquet de 20=20+0 soit pour la file P0 (la plus prioritaire).

Tu as également une règle pour les petits paquets guère couteux et qui peuvent
partir vite:
iptables -t mangle -A MONLIMITEUR-OUT -p tcp -m length --length :64 -j MARK \
	--set-mark 21

La dernière régle met les paquets restants dans la file 6:
iptables -t mangle -A MONLIMITEUR-OUT -m mark --mark 0 -j MARK \
	--set-mark 26

Attention, l'ordre compte, je me suis fait un peu avoir.

Dans la pratique, si tu as un upload de 500Kb/s, tu répartis une bande
passante de 50K/s entre P0,...,P6 et rédige les règles «affecte», tu lances le
script et tu testes. Ça marchera.

François Boisson



Reply to: