La cible TOS sert à disposer le champ Type de Service dans une en-tête IP. Le champ TOS consiste en 8 bits utilisés pour aider au routage de paquets. C'est un des champs qui peut être utilisé directement dans iproute2 et son sous-système pour les stratégies de routage. Notez de plus, que si vous maintenez plusieurs pare-feux et routeurs séparés, c'est le seul moyen pour propager les informations de routage dans les paquets entre ces routeurs et pare-feux. Comme noté précédemment, la cible MARK - laquelle dispose un MARK associé à un paquet spécifique - est disponible seulement dans le noyau, et ne peut pas être propagée avec le paquet. Si vous avez besoin de propager des informations de routage pour un paquet spécifique ou un flux, vous devrez donc placer le champ TOS, qui a été créé pour ça.
Il existe un grand nombre de routeurs sur Internet qui font du mauvais travail à ce sujet, ce qui fait qu'il peut être moins utile maintenant d'essayer de faire de l'analyse TOS avant d'envoyer les paquets sur Internet. Dans le meilleur des cas les routeurs ne font pas attention au champ TOS. Dans le pire, ils examineront le champ TOS et feront de mauvaises choses. Cependant, le champ TOS peut être placé avec une grande utilité si vous avez un grand WAN ou LAN avec de multiples routeurs. Vous avez la possibilité de donner aux paquets différentes routes et préférences, basées sur leur valeur TOS.
La cible TOS ne place que des valeurs spécifiques, ou valeurs nommées sur des paquets. Ces valeurs prédéfinies peuvent être trouvées dans les fichiers include du noyau, ou plus précisément le fichier Linux/ip.h. Les raisons sont multiples, et vous n'aurez actuellement besoin de placer aucune autre valeur; cependant, il existe d'autres moyens par rapport à cette limitation. Pour contourner cette limitation de ne pouvoir placer que des valeurs nommées sur les paquets, vous pouvez utiliser le patch FTOS disponible sur le site Paksecured Linux Kernel patches maintenu par Matthew G. Marsh. Attention, soyez prudents avec ce patch ! Vous ne devriez pas avoir besoin d'autre chose que les valeurs par défaut, sauf dans des cas extrêmes. |
Cette cible n'est valide que dans la table mangle et ne peut être utilisée hors de celle-ci. |
Notez aussi que certaines anciennes versions (1.2.2 ou avant) d'Iptables fournissaient une implémentation de cette cible qui ne fixait pas la somme de contrôle dans l'analyse, ce qui corrompait les paquets et provoquait des connexions qui n'aboutissaient pas. |
TOS ne prend qu'une option décrite ci-dessous.
Tableau 14. Cible TOS
Option | --set-tos |
Exemple | iptables -t mangle -A PREROUTING -p TCP --dport 22 -j TOS --set-tos 0x10 |
Explication | L'option --set-tos indique à l'analyseur TOS quelle valeur placer sur les paquets qui sont appariés. L'option prend une valeur numérique, soit en hexadécimal soit en décimal. Comme la valeur TOS consiste en 8 bits, la valeur peut être 0-255, ou en hexadécimal 0x00-0xFF. Notez que dans la cible TOS standard vous êtes limités à l'utilisation des valeurs nommées disponibles (qui sont plus ou moins standards), comme mentionné précédemment. Ces valeurs sont Minimize-Delay (valeur décimale 16, valeur hexadécimale 0x10), Maximize-Throughput (valeur décimale 8, valeur hexadécimale 0x08), Maximize-Reliability (valeur décimale 4, valeur hexadécimale 0x04), Minimize-Cost (valeur décimale 2, valeur hexadécimale 0x02), ou Normal-Service (valeur décimale 0, valeur hexadécimale 0x00). La valeur par défaut pour la plupart des paquets est Normal-Service, ou 0. Notez que vous pouvez, bien sûr, utiliser les noms au lieu des valeurs hexadécimales pour placer la valeur TOS; en fait, c'est généralement recommandé, car les valeurs associées avec les noms peuvent être changées par la suite. Pour une liste complète des "valeurs descriptives", tapez la commande : iptables -j TOS -h. |
Fonctionne avec les noyaux 2.3, 2.4, 2.5 et 2.6. |
Précédent | Sommaire | Suivant |
Cible TCPMSS | Niveau supérieur | Cible TTL |