Bonjour,
j'ai vu que pour mettre en place la QOS il fallait marquer les paquets.
j'ai bien compri le marque avec le champ TOS, en revanche je ne comprend pas le marquage avec MARK, ou se situe ce champ dans un trame IP ?
Forum général.général QOS : marquage des paquets
1
mar.
2007
# À vos marks
Posté par pas_moi . Évalué à 1.
# Marque MARK
Posté par C. OB (site web personnel) . Évalué à 1.
En fait, le champ MARK ne se situe pas dans le paquet:
C'est un champ virtuel, attaché au paquet par linux lorsque le paquet est accepté par le noyau. (A l'occasion de la lecture sur une carte réseau, ou bien de la génération d'un paquet par une application locale).
C'est simplement un champ numérique, en lecture/écriture.
Par défault il n'est pas initialisé.
IPTable permet de mettre la MARK à une valeur arbitraire,
Par exemple, pour marquer tous les paquets sortant vers le port 80:
iptables -t mangle -A POSTROUTING -p tcp --dport 80 -j MARK --set-mark 6
Bon jusque là, on est d'accord ca ne sert pas à grand chose.
Par contre, ce qu'il faut savoir, c'est que la QoS, dans la chaine de sortie du paquet, interviens *APRES* netfilter, y compris POST- routing. Et "tc filter" sait utiliser les MARK placés avant par Netfilter (iptables)...
L'idée est donc de définir ses qdisc et classes avec tc, comme d'habitude, puis ensuite, par une ou plusieurs commandes, intégrer les paquets dans les Class QoS comme ceci:
tc filter add dev eth1 parent 1:0 prio 1 handle 6 fw flowid 1:1
Cette ligne spécifie:
- l'interface de sortie où la QoS doit être appliqué (dev eth1),
- la QDisc parente, qui doit avoir été crée avec tc qdisc [...] handle 1: [..]
(parent 1:0)
- la priorité au cas ou plusieurs filtres sur le même qdisc existent (prio 1). Ceci défini l'ordre de parcourd des filtres si il y en a plusieurs.
- la MARK de iptables à utiliser (handle 6 fw) -> correspond, numériquement, au set-mark du iptables
- la classe à utilser en dessous de la QDisc, au cas ou le filter matche le paquet
(flowid 1:1). La classe doit avoir été crée auparavant avec tc class.
Voilà!
J'avais fabriqué (avec un ami) un script basé sur ces notions pour une colloc, ca marchais nickel: Les personnes pouvaint surfer sans problèmes, sur une ligne ADSL, alros que il y avait en permanence plus de 4 ordis avec emule/torrent en permanence. La même machine, un pautre Pentium 300, gérait aussi un webmail, et un site LAMP sans aucun soucis.
C'était basé autour de HTB, que j'avais trouvé très efficace.
Si tu veux, ce soir j'essaye de retrouver ce script et de le poster !
Un site avec un bon exemple:
http://www.knowplace.org/pages/howtos/traffic_shaping_with_l(...)
A+
OB
PS: Si tu pense que TC est incompréhensible à utiliser, sache que tout le monde est d'accord avec toi :-)
[^] # Re: Marque MARK
Posté par Raphaël G. (site web personnel) . Évalué à 2.
Ça permettrais au débutant de comprendre un peu ça sous un angle simplifié
(fichier de conf simpliste, pas de commandes, etc)
[^] # Re: Marque MARK
Posté par zak . Évalué à 1.
et je cherche également un logiciel qui me permetterai de voir graphiquement le traffic de chaque file d'attente que j'ai créer, est ce que vous en connaisez un ?
[^] # Re: Marque MARK
Posté par C. OB (site web personnel) . Évalué à 1.
J'ai pas compris: dans quel contexte ? Via un tcpdump par exemple ?
La marque est interne au noyau: dès que le paquet sort du noyau, elle n'existe plus. Elle n'existe que dans le contexte de netfilter.
Par contre avec iptables -t mangle -L on peux voir les stats des paquets pour chaques règles.
et je cherche également un logiciel qui me permetterai de voir graphiquement le traffic de chaque file d'attente que j'ai créer, est ce que vous en connaisez un ?
alors j'ai jamais fait (perso je me contente des chiffres) mais je sais que les solutions mises en places par ipcop & compagnie tournent autour de MRTG/rrdb et des scripts lancés périodiquement.
ob
[^] # Re: Marque MARK
Posté par C. OB (site web personnel) . Évalué à 1.
(bon c'est déjà pas mal)
[^] # Re: Marque MARK
Posté par C. OB (site web personnel) . Évalué à 1.
Le script rc.firewall est:
Voila !
[^] # Re: Marque MARK
Posté par zak . Évalué à 1.
pour la question de visualiser la bande passante de chaque file, j'utilise la commande : tc -s -d class ls dev eth0
mais j'aurai bien aimer trouver un programme pour représenter graphiquement l'utilisation de la bande passante pour pourvoir le mettre dans mon rapport, sa aurai fait plus folie :) mais c'est pas grave.
et merci pour le script je vais regarder sa, et si je comprend pas je te dirai.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.