debian 7, шлюз, интернет eth0, локалка eth2
делаю шейпер на eth2, исходящий, входящий заворачиваю на ifb0 и на нем делаю ограничения.
#!/bin/bash
TC="/sbin/tc"
########## Исходящий в локалку
echo Создаем корневую дисциплину на интерфейсе eth2
$TC qdisc del dev eth2 root
$TC qdisc add dev eth2 root handle 1: htb default 800
echo Создаем общий для клиентов класс
$TC class add dev eth2 parent 1: classid 1:1 htb rate 30Mbit ceil 30Mbit
echo Создаем корневой класс клиента
$TC class add dev eth2 parent 1:1 classid 1:10 htb rate 5Mbit ceil 30Mbit
$TC class add dev eth2 parent 1:1 classid 1:20 htb rate 5Mbit ceil 30Mbit
echo Создаем дисциплины шейпирования для конечных классов
$TC qdisc add dev eth2 parent 1:10 handle 10: sfq perturb 5
$TC qdisc add dev eth2 parent 1:20 handle 20: sfq perturb 5
echo Создаем фильтры
$TC filter add dev eth2 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.0.8/32 flowid 1:10
$TC filter add dev eth2 parent 1:0 protocol ip prio 2 u32 match ip dst 192.168.0.7/32 flowid 1:20
echo Дефолтный класс 800
$TC class add dev eth2 parent 1:1 classid 1:800 htb rate 1Mbit ceil 30Mbit prio 3
$TC qdisc add dev eth2 parent 1:800 handle 800: sfq perturb 5
########## Исходящий в инет
echo Подключаем модуль ядра для ifb
modprobe ifb
echo Поднимаем интерфейсы ifb
ip link set dev ifb0 up
echo Создаем корневую дисциплину для входящего трафика на локальных интерфейсах
tc qdisc add dev eth2 ingress
echo Теперь непосредственно заворачиваем трафик в ifb0
tc filter add dev eth2 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
echo Создаем корневую дисциплину на интерфейсе ifb0
$TC qdisc del dev ifb0 root
$TC qdisc add dev ifb0 root handle 1: htb default 800
echo Создаем общий для клиентов класс
$TC class add dev ifb0 parent 1: classid 1:1 htb rate 30Mbit ceil 30Mbit
echo Создаем корневой класс клиента
$TC class add dev ifb0 parent 1:1 classid 1:10 htb rate 5Mbit ceil 30Mbit
$TC class add dev ifb0 parent 1:1 classid 1:20 htb rate 5Mbit ceil 30Mbit
echo Создаем дисциплины шейпирования для конечных классов
$TC qdisc add dev ifb0 parent 1:10 handle 10: sfq perturb 5
$TC qdisc add dev ifb0 parent 1:20 handle 20: sfq perturb 5
echo Создаем фильтры
$TC filter add dev ifb0 parent 1:0 protocol ip prio 2 u32 match ip src 192.168.0.8/32 flowid 1:10
$TC filter add dev ifb0 parent 1:0 protocol ip prio 2 u32 match ip src 192.168.0.7/32 flowid 1:20
echo Дефолтный класс 800
$TC class add dev ifb0 parent 1:1 classid 1:800 htb rate 1Mbit ceil 30Mbit prio 3
$TC qdisc add dev ifb0 parent 1:800 handle 800: sfq perturb 5
на eth2 работает нормально - в дефолтный класс ничего не попадает, а вот на ifb0 в дефолтном классе есть трафик. Откуда он там берется? как посмотреть тип трафика в этом класе?