Burada yazıldığı gibi bir Linux ağ geçidinde trafik şekillendirme kurmaya çalışıyorum . Birden fazla LAN arabirimim olduğu için komut dosyasının özelleştirilmesi gerekiyor. LAN tarafı şekillendirmek için ben böyle bir ifb sözde aygıt oluşturmayı planlıyorum:
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
Yukarıda belirtilen özgeçmiş repo betiği şu satırlara sahiptir:
/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
Bu kod ve ifb arayüzü oluşturma kodu birlikte iyi anlaşamıyor. Özelleştirilmiş komut dosyası yürütülür, ancak ifb0 cihazında trafik istatistikleri gösterilmez. Giriş gist repo kodunu (yukarıda alıntılanır) yorumlarsam, ifb0 cihazı aktarılan paket sayısını gösterir. Ayrıca bu satırlar birlikte yürütülemez:
/sbin/tc qdisc add dev $WAN_INTERFACE ingress
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
Dosya var hatası alıyorum. Peki, WAN_INTERFACE'e girişi nasıl şekillendirebilirim ve aynı zamanda ifb0 cihazı aracılığıyla LAN'a giden trafiği de şekillendirebilirim?