>tc qdisc add dev imq0 parent 1:20 handle 20: sfq
>tc filter add dev imq0 parent 10:0 protocol ip prio 1 u32 match \
> ip dst 10.0.0.230/32 flowid 1:10
В этом примере для классификации пакетов используется селектор u32, однако, при работе с imq, могут использоваться и другие селекторы.
Отбираемый трафик маркируется средствами iptables:
>iptables –t mangle –A PREROUTING –i eth0 –j IMQ –todev 0
>ip link set imq0 up
Действие IMQ в iptables
допускается использовать только в цепочках PREROUTING и POSTROUTING, таблицы mangle. Его синтаксис:
>IMQ [ -–todev n ]
где n – это номер устройства imq.
Это действие существует и в ip6tables.
Обратите внимание: трафик попадает на интерфейс не в тот момент, когда переходит к цели IMQ, а после обработки соответствующей цепочки. Точное место входа на устройство imq зависит от типа трафика (входящий/исходящий).
Для входящего трафика imq регистрируется с приоритетом NF_IP_PRI_MANGLE + 1. Это означает, что пакеты попадают на устройство сразу после прохождения цепочки PREROUTING. Для исходящего трафика, imq использует приоритет NF_IP_PRI_LAST, который гарантирует, что пакеты, уничтоженные пакетным фильтром не будут занимать полосу пропускания устройства.
Дополнительные сведения и "заплаты" вы найдете на сайте http://luxik.cdi.cz/~patrick/imq/