Estou tentando configurar a modelagem de tráfego em um gateway Linux, como está escrito aqui . O script precisa ser personalizado porque tenho várias interfaces de rede local. Então, para moldar o lado da LAN, estou planejando criar um pseudo dispositivo ifb assim:
modprobe ifb
ip link set dev ifb0 up
/sbin/tc qdisc add dev $WAN_INTERFACE ingress
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip u32 match u32 0 0 action mirred egress redirect dev ifb0
O script do repositório principal mencionado acima tem as seguintes linhas:
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip prio 1 u32 match ip sport $INTERACTIVE_PORT 0xffff flowid :1
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip prio 1 u32 match ip dport $INTERACTIVE_PORT 0xffff flowid :1
/sbin/tc filter add dev $WAN_INTERFACE parent ffff: protocol ip prio 5 0 u32 match ip src 0.0.0.0/0 police rate $MAX_DOWNRATE_INGRESS burst 20k drop flowid :2
Esse código e o código de criação da interface ifb não se dão bem. O script personalizado é executado, mas o dispositivo ifb0 não mostra nenhuma estatística de tráfego. Se eu comentar o código de repo de entrada de lista de itens essenciais (citado acima), o dispositivo ifb0 mostra o número de pacotes que são transferidos. Além disso, essas linhas não podem ser executadas juntas:
/sbin/tc qdisc add dev $WAN_INTERFACE ingress
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
Eu recebo o arquivo existe erro. Então, como posso moldar a entrada no WAN_INTERFACE e, ao mesmo tempo, também moldar o tráfego que vai para a LAN via dispositivo ifb0?