여기에 작성된 것처럼 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
위에서 언급 한 요지 리포지토리의 스크립트는 다음과 같습니다.
/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 장치에는 트래픽 통계가 표시되지 않습니다. 위에서 인용 한 수신 gist repo 코드를 주석 처리하면 ifb0 장치에 전송 된 패킷 수가 표시됩니다. 또한이 줄들은 함께 실행할 수 없습니다 :
/sbin/tc qdisc add dev $WAN_INTERFACE ingress
/sbin/tc qdisc add dev $WAN_INTERFACE handle ffff: ingress
파일에 오류가 있습니다. 그렇다면 어떻게 WAN_INTERFACE에서 수신을 형성하고 동시에 ifb0 장치를 통해 LAN으로가는 트래픽을 형성 할 수 있습니까?