Ce classificateur filtre en se basant sur les informations des
tables de routage. Quand un paquet passant à travers les classes et
en atteint une qui est marquée avec le filtre route
, il divise le paquet en se basant sur
l'information de la table de routage.
# tc filter add dev eth1 parent 1:0 protocol ip prio 100 route
Ici, nous ajoutons un classificateur route
sur le nœud parent 1:0
, avec la priorité 100
. Quand un paquet atteint ce nœud (ce qui
arrive immédiatement, puisqu'il est racine), il consulte la table
de routage et si une entrée de la table correspond, il envoie le
paquet vers la classe donnée et lui donne une priorité de
100
. Ensuite, vous ajoutez l'entrée de
routage appropriée pour finalement activer les choses.
L'astuce ici est de définir realm
en
se basant soit sur la destination, soit sur la source. Voici la
façon de procéder :
# ip route add Host/Network via Gateway dev Device realm RealmNumber
Par exemple, nous pouvons définir notre réseau de destination
192.168.10.0
avec le nombre
realm
égal à 10
:
# ip route add 192.168.10.0/24 via 192.168.10.1 dev eth1 realm 10
Quand on ajoute des filtres route
,
on peut utiliser les nombres realm
pour
représenter les réseaux ou les hôtes et spécifier quelle est la
correspondance entre les routes et les filtres.
# tc filter add dev eth1 parent 1:0 protocol ip prio 100 \ route to 10 classid 1:10
La règle ci-dessus indique que les paquets allant vers le réseau
192.168.10.0
correspondent à la classe
1:10
.
Le filtre route
peut aussi être
utilisé avec les routes sources. Par exemple, il y a un sous-réseau
attaché à notre routeur Linux sur eth2
.
# ip route add 192.168.2.0/24 dev eth2 realm 2 # tc filter add dev eth1 parent 1:0 protocol ip prio 100 \ route from 2 classid 1:2
Ici, le filtre spécifie que les paquets venant du réseau
192.168.2.0
(realm 2
) correspondront à la classe 1:2
.