다음 테스트 규칙 설정을 가져옵니다.
tc qdisc add dev wlan0 root handle 1: htb
tc class add dev wlan0 parent 1: classid 1:1 htb rate 1000Mbps
tc class add dev wlan0 parent 1:1 classid 1:5 htb rate 50Kbps ceil 50Kbps burst 1kbit cburst 1kbit
tc qdisc add dev wlan0 parent 1:5 handle 5:0 sfq perturb 5
tc filter add dev wlan0 parent 1:0 protocol ip u32 match ip dport 80 0xffff classid 1:5
tc filter add dev wlan0 parent 1:0 protocol ip u32 match ip sport 80 0xffff classid 1:5
(저는 또한 아무런 행운도 없이 iptables --set-mark를 사용해 보았습니다. 그래서 기본적으로 간단한 "간단한" tc 규칙으로 돌아갔습니다.)
이 예일하다어떤 의미에서,내 :80 패키지를 표시했습니다.그리고 그것들을 제한해라하지만 50Kbps 미만...
wget
설명하다:0% [ ] 4,142,336 490K/s
tc -s class show dev wlan0
설명하다:root@bt:~/Desktop/tk_net# tc -s class show dev wlan0 class htb 1:5 parent 1:1 leaf 5: prio 0 rate 400000bit ceil 400000bit burst 128b cburst 128b Sent 7234 bytes 113 pkt (dropped 0, overlimits 0 requeues 0) rate 3584bit 7pps backlog 0b 0p requeues 0 lended: 113 borrowed: 0 giants: 0 tokens: 17500 ctokens: 17500 class htb 1:1 root rate 8000Mbit ceil 8000Mbit burst 0b cburst 0b Sent 7234 bytes 113 pkt (dropped 0, overlimits 0 requeues 0) rate 3584bit 7pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 15 ctokens: 15
변화:
classid 1:5 htb rate 50Kbps ceil 50Kbps
도착하다
classid 1:5 htb rate 1Kbps ceil 1Kbps
wget에서 생성됨 ~ 34.7K/s
그리고
tc
말했다:root@bt:~/Desktop/tk_net# tc -s class show dev wlan0 class htb 1:5 parent 1:1 leaf 5: prio 0 rate 8000bit ceil 8000bit burst 127b cburst 127b Sent 44799 bytes 644 pkt (dropped 112, overlimits 0 requeues 0) rate 2544bit 4pps backlog 0b 0p requeues 0 lended: 641 borrowed: 0 giants: 0 tokens: 1124984 ctokens: 1124984 class htb 1:1 root rate 8000Mbit ceil 8000Mbit burst 0b cburst 0b Sent 44601 bytes 641 pkt (dropped 0, overlimits 0 requeues 0) rate 4208bit 7pps backlog 0b 0p requeues 0 lended: 0 borrowed: 0 giants: 0 tokens: 15 ctokens: 15
나는 다음 지침을 따랐습니다.
- http://lartc.org/howto/lartc.cookbook.fullnat.intro.html
- http://luxik.cdi.cz/~devik/qos/htb/manual/userg.htm
- http://www.adeptus-mechanicus.com/codex/tshape/tshape.html
- http://www.rlogix.com/node/16
인바운드/아웃바운드:80 트래픽을 제한하려고 할 때 내가 뭘 잘못하고 있나요?
답변1
셰이핑을 사용하여 들어오는 트래픽의 속도를 제한할 수 없습니다. 이렇게 하려면 감독 기능을 사용해야 하지만 그 효과는 제한될 수 있습니다.
쉐이핑은 네트워크 인터페이스에서 패킷이 전송되는 속도를 제어합니다. 설정한 규칙은 네트워크 송신을 제어합니다.
패킷은 상대방이 보낸 속도로 도착합니다. 정책은 지정된 속도를 초과하는 패킷을 삭제하여 패킷이 입력 대기열에 공급되는 속도를 제한할 수 있습니다. 그런 다음 TCP는 전송 속도를 조정해야 합니다. 혼잡 제어가 없는 프로토콜(UDP 및 이를 기반으로 하는 프로토콜)은 패킷이 손실될 때 속도가 느려지지 않으므로 정책은 발신자의 속도에 영향을 미치지 않습니다.
Linux 트래픽 셰이핑의 규제는 수신 필터를 통해 수행됩니다. 에서 시작하다http://lartc.org/howto/lartc.adv-qdisc.ingress.html.