Посмотрите, пожалуйста, где может быть ошибка.
Шлюз на FreeBSD 9.0, собрано ядро с PF и ALTQ. Два физических интерфейса ($int_if - локальный) + ADSL-туннель. На tun0 ($wan_if) сделан NAT средствами самого PF.
Конфиг PF (не относящиеся к HFSC строки вынул):
Код: Выделить всё
altq on $int_if hfsc bandwidth 99Mb queue { local internet }
queue local bandwidth 98Mb hfsc (upperlimit 98% default)
queue internet bandwidth 247Kb hfsc { ack ssh bulk web }
queue ack bandwidth 10% hfsc (realtime 10%)
queue ssh bandwidth 50% hfsc (realtime 50%)
queue bulk bandwidth 15% hfsc
queue web bandwidth 25% hfsc (realtime 25%)
nat on $wan_if from <lan> to any -> ($wan_if)
# Пробовал делать pass out on $wan_if - не рассовывает по очередям совсем
pass in on $int_if from <lan> to ($int_if) queue local
pass in on $int_if from <lan> to !<lan> queue bulk
pass in on $int_if proto tcp from <lan> to !<lan> port http queue (web ack)
pass in on $int_if proto tcp from <lan> to !<lan> port ssh queue ssh
Код: Выделить всё
pfTop: Up Queue 1-8/8, View: queue, Cache: 10000 14:22:46
QUEUE BW SCH PR PKTS BYTES DROP_P DROP_B QLEN BORR SUSP P/S B/S
root_xl1 99M hfsc 0 0 0 0 0 0 0 0
local 98M hfsc 430 117K 0 0 0 1.0 177
internet 247K hfsc 0 0 0 0 0 0 0
ack 24700 hfsc 241 14562 0 0 0 0 0
dns 12350 hfsc 7 1529 0 0 0 0 0
ssh 123K hfsc 1962 2828K 0 0 0 0 0
bulk 37050 hfsc 762 586K 0 0 0 0 0
web 49400 hfsc 2819 3861K 0 0 0 0 0