O IFB é uma alternativa aos filtros tc para lidar com tráfego de ingresso, redirecionando-o para uma interface virtual e tratando como tráfego de saída. Você precisa de uma interface ifb por interface física para redirecionar o tráfego de ingresso de eth0 para ifb0, eth1 para ifb1 e assim por diante.
Ao inserir o módulo ifb, informe o número de interfaces virtuais necessárias. O padrão é 2:
modprobe ifb numifbs=1
Agora, ative todas as interfaces ifb:
ip link set dev ifb0 up # repeat for ifb1, ifb2, ...
E redirecionar o tráfego de entrada das interfaces físicas para a interface ifb correspondente. Para eth0 - > ifb0:
tc qdisc add dev eth0 handle ffff: ingress
tc filter add dev eth0 parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
Novamente, repita para eth1 - > ifb1, eth2 - > ifb2 e assim por diante, até que todas as interfaces que você deseja moldar estejam cobertas.
Agora, você pode aplicar todas as regras desejadas. As regras de saída para eth0 seguem normalmente em eth0. Vamos limitar a largura de banda, por exemplo:
tc qdisc add dev eth0 root handle 1: htb default 10
tc class add dev eth0 parent 1: classid 1:1 htb rate 1mbit
tc class add dev eth0 parent 1:1 classid 1:10 htb rate 1mbit
Escusado será dizer que repita para eth1, eth2, ...
Regras de entrada para eth0, agora vão como regras de egresso em ifb0 (o que quer que seja em ifb0 deve sair, e somente o tráfego de entrada eth0 entra em ifb0). Novamente, um exemplo de limite de largura de banda:
tc qdisc add dev ifb0 root handle 1: htb default 10
tc class add dev ifb0 parent 1: classid 1:1 htb rate 1mbit
tc class add dev ifb0 parent 1:1 classid 1:10 htb rate 1mbit
A vantagem desta abordagem é que as regras de saída são muito mais flexíveis do que os filtros de ingresso. Os filtros só permitem descartar pacotes e não introduzir tempos de espera, por exemplo. Ao manipular o tráfego de entrada como saída, você pode configurar as disciplinas da fila, com classes de tráfego e, se necessário, filtros. Você obtém acesso a toda a árvore tc, não apenas a filtros simples.