ฉันพยายามที่จะติดตั้งการปรับการจราจรบนเกตเวย์ Linux เป็นลายลักษณ์อักษรที่นี่ สคริปต์ต้องได้รับการปรับแต่งเพราะฉันมีอินเตอร์เฟส LAN หลายอัน ดังนั้นเพื่อรูปร่างด้าน LAN ฉันวางแผนที่จะสร้างอุปกรณ์หลอก ifb เช่น:
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
สคริปต์จาก repo ส่วนสำคัญดังกล่าวข้างต้นมีบรรทัดเหล่านี้:
/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
รหัสนี้และรหัสการสร้างส่วนต่อประสาน ifb นั้นเข้ากันไม่ได้ สคริปต์ที่กำหนดเองได้รับการดำเนินการ แต่อุปกรณ์ ifb0 ไม่แสดงสถิติการเข้าชมใด ๆ ถ้าฉันใส่เครื่องหมายเอาความในส่วนของรหัส repo (ที่ยกมาข้างต้น) อุปกรณ์ ifb0 จะแสดงจำนวนของแพ็คเก็ตที่ถูกถ่ายโอน ด้วยบรรทัดเหล่านี้ไม่สามารถดำเนินการร่วมกัน:
/sbin/tc qdisc add dev $WAN_INTERFACE ingress
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
ฉันได้รับไฟล์ข้อผิดพลาด ดังนั้นฉันจะกำหนดรูปทรงให้เข้ากับ WAN_INTERFACE ได้อย่างไรและในขณะเดียวกันก็กำหนดรูปแบบการรับส่งข้อมูลที่ไปยัง LAN ผ่านอุปกรณ์ ifb0