Этот классификатор тесно связан с таблицами маршрутизации. Когда пакет достигает такого фильтра, то дальнейшая его судьба зависит от информации, находящейся в таблицах маршрутизации.
# tc filter add dev eth1 parent 1:0 protocol ip prio 100 routeВ данном случае, к узлу 1:0 добавлен классификатор с приоритетом 100. Когда пакет достигнет этого узла (поскольку он является корневым, то это произойдет немедленно), то классификатор проанализирует таблицу маршрутизации. Если совпадение будет подтверждено, то пакет будет передан данному классу с приоритетом, равным 100. Однако, для того, чтобы все это заработало, необходимо добавить соответствующую запись в таблицу маршрутизации:
Тут вся хитрость состоит в том, чтобы определить некую 'область' (realm), основываясь на адресе отправителя или получателя. Примерно таким образом:
# ip route add Host/Network via Gateway dev Device realm RealmNumberДля примера зададим номер 'области', равным 10, для нашей сети 192.168.10.0.
# ip route add 192.168.10.0/24 via 192.168.10.1 dev eth1 realm 10В фильтрах, основанных на классификаторе route, мы можем использовать номер 'области' (realm) для представления сетей или отдельных узлов сети.
# tc filter add dev eth1 parent 1:0 protocol ip prio 100 \ route to 10 classid 1:10Под действие данного правила попадут пакеты, направляющиеся в сеть 192.168.10.0
Фильтры данного типа можно строить и на основе адреса отправителя. Рассмотрим пример, когда к маршрутизатору, под управлением Linux, через интерфейс 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Этот фильтр говорит о том, что пакеты из подсети 192.168.2.0 (область 2) будут отнесены к идентификатору класса 1:2.
Назад | В начало документа | Вперед |
Расширенная фильтрация. | К началу раздела | Фильтры-ограничители трафика. |