Просто мистически непонятная проблема..
Попросили настроить на комп(обычный десктоп) шлюз с дележкой трафика..
Комп не старый,
Процессор AMD Phenom II X2 550,
Материнская плата ASRock M3A770DE (чипсет RX780)
2Гб памяти, винт, сетевухи две внешние (встроенную не пользовал - грешил на нее.)
Поставил UbuntuServer 10.04, ядро стандартное, 2.6.32-24-server
Проблема в том, что трафик не шейпится так, как настроено.. т.е. какие-то изменения от скорости все-таки происходят, но совсем не похоже на то, что должно быть...
Схема (Локальная сеть) - Подопытный сервер - Клиент подопытного сервера.
На одном компе из локалки (100Мбит) стоит веб сервер, на котором лежит тестовый файлик. При выключенном шейпере скорость скачивания стабильная, ~11.2 МБ/с. При включенном шейпере сначала с максимальной падает до ~300 Кбайт/с, потом постепенно выростает до 2.5 Мбайт/с (нестабильно).
При этом в инфе, которую tc выдает (tc -s -d -p) нет даже близких цифр..
Скрипт проверял на другой машине (ubuntu desktop 10.04) - работает отлично.
Ядра пробовал менять - нифига.
Сетевухи менял - нифига.
Мои вопросы.
1. Куда деваются пакеты?. Каким образом они идут мимо шейпера.
2. Как можно отслеживать как идет трафик?
3. Кхм.. глупый вопрос. Почему не работает..
Мой скрипт.
DOWNLINK=64kbit
SSH=70mbit
DEV=eth2
NETWORK="192.168.10.201/32"
SFQ_FLOW_OPTS=" flow hash keys nfct-dst divisor 1024 "
tc qdisc add dev $DEV root handle 1: htb default 12
tc class add dev $DEV parent 1: classid 1:1 htb rate 100mbit ceil 100mbit prio 1 # Общий
tc class add dev $DEV parent 1: classid 1:10 htb rate ${DOWNLINK} ceil ${DOWNLINK} # для интернета
tc filter add dev $DEV parent 1:0 protocol ip prio 2 u32 match ip dst $NETWORK flowid 1:10
tc filter add dev $DEV parent 1:0 protocol ip prio 2 u32 match ip src $NETWORK flowid 1:10
tc qdisc add dev $DEV parent 1:10 handle 10: sfq perturb 10
tc class add dev $DEV parent 1: classid 1:12 htb rate 100kbit ceil 100kbit prio 1
Это его результаты.
# tc -s -d -p class show dev eth2
class htb 1:10 root leaf 10: prio 0 quantum 1000 rate 64000bit ceil 64000bit burst 1600b/8 mpu 0b overhead 0b cburst 1600b/8 mpu 0b overhead 0b level 0
Sent 262295 bytes 3823 pkt (dropped 4928, overlimits 0 requeues 0)
rate 53016bit 97pps backlog 0b 126p requeues 0
lended: 3697 borrowed: 0 giants: 0
tokens: -140398 ctokens: -140398
class htb 1:1 root prio 1 quantum 200000 rate 100000Kbit ceil 100000Kbit burst 1600b/8 mpu 0b overhead 0b cburst 1600b/8 mpu 0b overhead 0b level 0
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 2000 ctokens: 2000
class htb 1:12 root prio 1 quantum 1250 rate 100000bit ceil 100000bit burst 1600b/8 mpu 0b overhead 0b cburst 1600b/8 mpu 0b overhead 0b level 0
Sent 0 bytes 0 pkt (dropped 0, overlimits 0 requeues 0)
rate 0bit 0pps backlog 0b 0p requeues 0
lended: 0 borrowed: 0 giants: 0
tokens: 2000000 ctokens: 2000000
class sfq 10:12b parent 10:
(dropped 0, overlimits 0 requeues 0)
backlog 0b 110p requeues 0
allot -18
class sfq 10:33d parent 10:
(dropped 0, overlimits 0 requeues 0)
backlog 0b 16p requeues 0
allot 1410