tc가 패킷 분류를 중지하는 원인은 무엇입니까?

tc가 패킷 분류를 중지하는 원인은 무엇입니까?

내 홈 오피스의 인터넷 대역폭은 매우 제한되어 있으므로 트래픽을 분류하기 위해 QoS를 상당히 많이 사용해야 합니다. 저는 이 작업을 수행하기 위해 FireHol과 FireQOS를 사용하는데, 이는 기본적으로 내부적으로 "iptables" 및 "tc" 명령을 생성합니다. FireQOS는 더 이상 버킷으로 분류되는 패킷을 표시하지 않기 때문에 지난 2주 동안 이 기능이 작동을 멈춘 것 같습니다.

tc가 패킷 분류를 중지하는 원인은 무엇입니까? 이 문제를 해결하려면 어떻게 해야 합니까?

라우터:마벨 에스프레소빈
운영체제:아치 리눅스 ARM
핵심:4.15.7-1(Arch Linux ARM "linux-espressobin" 패키지에서)

  • 트래픽 분류를 위한 connmark 사용
  • 방화벽이 정상적으로 작동하고 예상대로 패킷을 표시하는 것 같습니다.
  • 대역폭은 수신 QoS를 활성화하기 위해 최대 비율로 사전 조절됩니다.
  • 외부 인터페이스는 "extern"이고, 자동으로 생성된 IFB 장치는 "extern-ifb"입니다.

세부:

FIREQOS SUMMARY OF CLASSIFICATIONS:
-------------------------------------

: interface extern receive input rate 3217kbps adsl remote bridged-llc (extern-ifb, 26353kbit, mtu 1500, quantum 1500, minrate 263kbit)
:       class voip commit 90kbps prio 2 (1:11, 737/26353kbit, prio 2)
:       class work commit 40% prio 3 (1:12, 10541/26353kbit, prio 3)
:       class default (1:8000, 263/26353kbit, prio 4)
:       committed rate 11541kbit (43%), the remaining 14811kbit will be spare bandwidth.

: interface extern transmit output rate 570kbps adsl remote bridged-llc (extern, 4669kbit, mtu 1500, quantum 1500, minrate 46kbit)
:       class voip commit 90kbps prio 2 (1:11, 737/4669kbit, prio 2)
:       class work commit 55% prio 3 (1:12, 2567/4669kbit, prio 3)
:       class default (1:8000, 46/4669kbit, prio 4)
:       committed rate 3350kbit (71%), the remaining 1318kbit will be spare bandwidth.


TC QDISC SHOW DEV EXTERN
---------------------------

qdisc htb 1: root refcnt 2 r2q 3 default 32768 direct_packets_stat 1 direct_qlen 1000
qdisc fq_codel 12: parent 1:12 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc fq_codel 11: parent 1:11 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc fq_codel 13: parent 1:8000 limit 10240p flows 1024 quantum 1514 target 5.0ms interval 100.0ms memory_limit 32Mb ecn
qdisc ingress ffff: parent ffff:fff1 ----------------


TC CLASS SHOW DEV EXTERN
--------------------------

class htb 1:11 parent 1:1 leaf 11: prio rate 737Kbit ceil 4669Kbit burst 1599b cburst 1599b
class htb 1:8000 parent 1:1 leaf 13: prio rate 46Kbit ceil 4669Kbit burst 1599b cburst 1599b
class htb 1:1 root rate 4669Kbit ceil 4669Kbit burst 1599b cburst 1599b
class htb 1:12 parent 1:1 leaf 12: prio rate 2567Kbit ceil 4669Kbit burst 1599b cburst 1599b
class fq_codel 13:df parent 13:
class fq_codel 13:fd parent 13:
class fq_codel 13:3dd parent 13:
class fq_codel 13:df parent 13:
class fq_codel 13:fd parent 13:
class fq_codel 13:3dd parent 13:

TC FILTER SHOW DEV EXTERN
----------------------------

filter parent 1: protocol ip pref 10 u32 chain 0
filter parent 1: protocol ip pref 10 u32 chain 0 fh 800: ht divisor 1
filter parent 1: protocol ip pref 10 u32 chain 0 fh 800::800 order 2048 key ht 800 bkt 0 flowid 1:11 not_in_hw
  mark 0x0004 0x003f (success 0)
filter parent 1: protocol ip pref 20 u32 chain 0
filter parent 1: protocol ip pref 20 u32 chain 0 fh 801: ht divisor 1
filter parent 1: protocol ip pref 20 u32 chain 0 fh 801::800 order 2048 key ht 801 bkt 0 flowid 1:11 not_in_hw
  match 00110000/00ff0000 at 8
  match c0a8002c/ffffffff at 12
filter parent 1: protocol ip pref 30 u32 chain 0
filter parent 1: protocol ip pref 30 u32 chain 0 fh 802: ht divisor 1
filter parent 1: protocol ip pref 30 u32 chain 0 fh 802::800 order 2048 key ht 802 bkt 0 flowid 1:12 not_in_hw
  mark 0x0003 0x003f (success 0)

답변1

나는버그를 신고했습니다만약을 대비해 FireHol을 사용했지만 실제로는 제가 iproute2패키지를 업그레이드한 것이 범인인 것 같습니다. 어떤 이유로 4.15.0-1Arch Linux ARM 저장소의 버전은 내가 언급한 대로 패킷을 분류하는 데 실패했지만 버전은 4.14.1-2성공했습니다. 지금은 이전 버전만 사용하겠습니다.

관련 정보