Cher journal,
J'essai depuis deja 2 jours de modifier l'ordonnancement de certains packets et je galere, ca ne marche pas. Alors je me demandais, si toi mon vieil ami, tu pouvais peut être me filer un coup de main.
Mon pb est simple, je cherche à simuler differentes bandes passantes en localhost, et ce ds le but de verifier si mon appli fonctionne comme prevu avec differentes connections. Je ne dispose que d'une carte réseau (eth0).
On a:
+1 socket UDP qui lit sur eth0:1234 et ecrit sur eth0:2345
+1 socket UDP qui lit sur eth0:2345 et ecrit sur eth0:1234
On souhaite:
+ definir la bande passante de eth0:1234 vers eth0:2345
+ definir la bande passante de eth0:2345 vers eth0:1234
J'ai lu de nombreux tutorials, essayé differentes methodes... le resultat reste le meme: march po.
Voici ce que j'ai pondu et qui cherche a limiter la bande à 1kbit:
tc qdisc del dev eth0 root 2> /dev/null > /dev/null
tc qdisc add dev eth0 root handle 1: cbq bandwidth 100Mbit avpkt 1000
tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 1kbit rate 1kbit allot 1514 prio 8 avpkt 1000
tc filter add dev eth0 parent 1:0 prio 8 protocol ip u32 \
match ip protocol 17 0xff \
match udp dst 1234 0xffff \
flowid 1:1
tc filter add dev eth0 parent 1:0 prio 8 protocol ip u32 \
match ip protocol 17 0xff \
match udp src 1234 0xffff \
flowid 1:1
tc filter add dev eth0 parent 1:0 prio 8 protocol ip u32 \
match ip protocol 17 0xff \
match udp dst 2345 0xffff \
flowid 1:1
tc filter add dev eth0 parent 1:0 prio 8 protocol ip u32 \
match ip protocol 17 0xff \
match udp src 2345 0xffff \
flowid 1:1
Merci d'avance pour ton aide.
# Re: Traffic shaping
Posté par Frédéric Desmoulins (site web personnel) . Évalué à 4.
tc qdisc del dev eth0 root 2> /dev/null > /dev/null
iptables -F -t mangle
tc qdisc add dev eth0 root handle 1: cbq bandwidth 100Mbit avpkt 1000
tc class add dev eth0 parent 1:0 classid 1:1 cbq bandwidth 1kbit rate 1kbit allot 1514 prio 8 avpkt 1000 bounded isolated
iptables -t mangle -A OUTPUT -o eth0 -p udp --dport 1234 -j MARK --set-mark 5
iptables -t mangle -A OUTPUT -o eth0 -p udp --dport 2345 -j MARK --set-mark 5
iptables -t mangle -A OUTPUT -o eth0 -p udp --sport 1234 -j MARK --set-mark 5
iptables -t mangle -A OUTPUT -o eth0 -p udp --sport 2345 -j MARK --set-mark 5
tc filter add dev eth0 parent 1:0 prio 8 protocol ip handle 5 fw classid 1:1
Par contre ca marche uniquement entre 2 machines. J'arrive pas à le faire sur la meme interface (j'ai essayé aussi avec une virtuelle).
Donc, journal, à defaut de me donner la réponse sur un plateau d'argent, peut tu m'indiquer, dans ton immense générosité, une piste à suivre (changer de route ? :) ?
[^] # Re: Traffic shaping
Posté par -=[ silmaril ]=- (site web personnel) . Évalué à 3.
tu mets des filtres qui semblent corrects et ca ne marche pas ...
la premiere chose que j'aurais teste (si je ne connaissait pas la reponse) est:
par ou vont passer les paquets destinés a l'adresse IP de la machine ?
La reponse est variable en fonction du kernel utilisé mais pour la série 2.4 au moins la reponse est: par l'interface lo (loopback) (surement pour eviter d'avoir a faire le meme boulot dans la gestion des interfaces ethernet alors que c deja pret et tres optimisé pour lo.
Donc (je ne parie pas mais l'esprit y est) test tes modif sur lo, tout en faisant attention parce que si tu limite trop a tord et a travers y a pas mal d'applis qui vont plus etre contentes.
[^] # Re: Traffic shaping
Posté par Frédéric Desmoulins (site web personnel) . Évalué à 3.
tu es le plus grand des journaux.
Effectivement, c'etait pas bien malin de ma part.
Merci :)
# Re: Traffic shaping
Posté par Nico_206 (site web personnel) . Évalué à 1.
J'ai vu pleins de site et d'exemples, rarement très clair
Merci
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.