Здравствуйте! Помогите, пожалуйста, разобраться с HTB.
Тестирую на vmware ограничение скорости. Необходимо на канале 2Mbit выделить гарантированную полосу 128Kbit для IP1 и 256Kbit для IP2. IP1 и IP2 не должны заимствовать друг у друга полосы.
Приблизительная схема сети:192.168.159.130\ eth1 eth0
192.168.159.128/192.168.185.129 - 192.168.185.128
192.168.159.129/
--------------------------------------------
iptables:
--------------------------------------------
#!/bin/bash
IPTABLES=/sbin/iptables
POLICY=ACCEPT
echo 1 > /proc/sys/net/ipv4/ip_forward
$IPTABLES -t nat -P PREROUTING ACCEPT
$IPTABLES -t nat -P POSTROUTING ACCEPT
$IPTABLES -t nat -P OUTPUT ACCEPT
$IPTABLES -t mangle -P PREROUTING ACCEPT
$IPTABLES -t mangle -P OUTPUT ACCEPT
$IPTABLES -F
$IPTABLES -t nat -F
$IPTABLES -t mangle -F
$IPTABLES -X
$IPTABLES -t nat -X
$IPTABLES -t mangle -X
$IPTABLES -P INPUT ACCEPT
$IPTABLES -P OUTPUT ACCEPT
$IPTABLES -P FORWARD ACCEPT
IP1="192.168.159.129"
IP2="192.168.159.130"
iptables -t mangle -A PREROUTING -s $IP1 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -s $IP1 -j RETURN
iptables -t mangle -A PREROUTING -s $IP2 -j MARK --set-mark 2
iptables -t mangle -A PREROUTING -s $IP2 -j RETURN
------------------------------------------------------
Скрипт с htb:
------------------------------------------------------
#!/bin/sh
DEV=eth0
tc qdisc del dev $DEV root >/dev/null
tc qdisc add dev $DEV root handle 1: htb default 15
tc class add dev $DEV parent 1: classid 1:1 htb rate 2048kbit
tc class add dev $DEV parent 1:1 classid 1:11 htb rate 128kbit ceil 128kbit prio 1
tc class add dev $DEV parent 1:1 classid 1:12 htb rate 128kbit ceil 256kbit prio 2
tc filter add dev $DEV parent 1: protocol ip prio 1 handle 1 fw flowid 1:11
tc filter add dev $DEV parent 1: protocol ip prio 2 handle 2 fw flowid 1:12
tc qdisc add dev $DEV parent 1:11 handle 11: pfifo limit 10
tc qdisc add dev $DEV parent 1:12 handle 12: pfifo limit 10
--------------------------------------------------------------
Проверяю c 192.168.159.129:
---------------------------------------------------------------
# wget -c ftp://192.168.185.128/file
--16:37:17-- ftp://192.168.185.128/file
=> `file'
Connecting to 192.168.185.128:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD not needed.
==> PASV ... done. ==> RETR file ... done.
Length: 655,071,232 (625M) (unauthoritative)
2% [=> ] 14,043,984 1019.26K/s ETA 12:21^
------------------------------------------
Проверяю с 192.168.159.130:
-------------------------------------------
# wget -c ftp://192.168.185.128/file
--21:06:57-- ftp://192.168.185.128/file
=> `file'
Connecting to 192.168.185.128:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done. ==> PWD ... done.
==> TYPE I ... done. ==> CWD not needed.
==> PASV ... done. ==> RETR file ... done.
Length: 655,071,232 (625M) (unauthoritative)
3% [===> ] 23,009,216 1.17M/s ETA 08:33^
--------------------------------------------------
Содержание статистики:
--------------------------------------------------
tc -s class show dev eth0
class htb 1:11 parent 1:1 leaf 11: prio 1 rate 128000bit ceil 128000bit burst 1599b cburst 1599b
Sent 374135 bytes 5669 pkt (dropped 459, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 5669 borrowed: 0 giants: 0
tokens: -54223 ctokens: -54223
class htb 1:1 root rate 2048Kbit ceil 2048Kbit burst 1599b cburst 1599b
Sent 1000816 bytes 15165 pkt (dropped 0, overlimits 0 requeues 0)
rate 720bit 1pps backlog 0b 0p requeues 0
lended: 4736 borrowed: 0 giants: 0
tokens: 4834 ctokens: 4834
class htb 1:12 parent 1:1 leaf 12: prio 2 rate 128000bit ceil 256000bit burst 1599b cburst 1599b
Sent 626681 bytes 9496 pkt (dropped 0, overlimits 0 requeues 0)
rate 712bit 1pps backlog 0b 0p requeues 0
lended: 4760 borrowed: 4736 giants: 0
tokens: -15163 ctokens: -21357
-----------------------------------------------------
Что я делаю не так?