Jump to content
Калькуляторы

Проблема с шейпингом (HTB) на CentOS 5.2 скорость в 2 раза выше чем указываю

Конфигурация оборудования следующая:

Сервер на базе: MB Intel S3000AH, CPU Intel Core 2 Quad, 4 Gb RAM, 2 встроенные гигабитные сетевушки e1000 и e1000e.

ОС: CentOS 5.2 i386

Драйвера сетевушек:

driver: e1000e
version: 0.2.0
firmware-version: 3.1-7

 

driver: e1000
version: 7.3.20-k2-NAPI
firmware-version: N/A

 

Еще один ньюанс, обе сетевушки объединены в бридж br0. Сервер должен быть прозрачным мостом между VPN-серверами и бордером, ставится исключительно под шейпинг и фильтрацию.

 

Скорфигурировал htb через настройки htb.init, запустил, проверил сгенерированный скрипт, все ОК. Проверил tc qdisc, tc class ls <dev>, tc filter ls <dev>, тоже все ОК.

Скорость для своего IP установил 512 Кбит/c, реально имею скорость чуть больше 1 Мбит/c. Тестировал с помощью iperf. Подумал было что iperf глючит, попробовал просто слить файлик по sftp и получил те же результаты.

 

У кого какие мысли? Может ли такое быть из-за того что CONFIG_HZ у ядра равен 1000? У меня просто уже есть один сервер и там CONFIG_HZ=250 и нормально шейпит.

Edited by SokolovS

Share this post


Link to post
Share on other sites

А не в брижде ли дело?? Умеет ли tc работать с мостами? И почему именно бридж?? Что мешает сделать рутер? Там уж точно проблем не будет. Насчет конфига ядра.. Не знаю.. Обычно этот параметр всегда оставлял по дефолту (250 как раз вроде).

 

Share this post


Link to post
Share on other sites

tc умеет работать с физическими интерфесами, на мост ему наплевать. У многих я знаю работает именно мост.

Edited by SokolovS

Share this post


Link to post
Share on other sites

Самое интересное что CBQ работает правильно, похоже это к разработчикам HTB нужно обращаться.

Share this post


Link to post
Share on other sites

У меня еще на 4-ке htb с бриджом нормально работало из каробки - скорее всего у вас какие-то проблемы с настройкой бриджа. Для начала попробуйте пойти от простого - соберите стенд, настройте роутинг, а не бридж - настройте шейпинг, проверьте что пакеты попадают именно под нужные правила фильтров (tc -s filter - и вам пакажет сколько пакетов попало под вильтр а сколько нет) и т.д. Потом перестройте на бридж. Кстати опять же попробуйте прописать правила tc ручками а не автоматическими скриптами.

Share this post


Link to post
Share on other sites

Пакеты попадают под правила, уже смотрел tc -s. Пробовал убрать бридж и просто шейпить исходящий трафик, результат тот же. Изменение HZ ни на что не влияет, уже пробовал пересбирать ядро из src.rpm с измененным конфигом. Зарегался в лист рассылки LARTC и на CentOS, буду пробвоать там узнать в чем проблема.

Share this post


Link to post
Share on other sites

у меня похожий сервер, только мать s3200, тоже выбрал CentOS 5.2 i386 и тоже шейпится через tc htb, но бриджа нету, шейпится достаточно точно, особенно на маленьких скоростях, около мегабита, десять мегабит немного занижает, процентов на 5

Share this post


Link to post
Share on other sites

Проблема фиксится если после ребута выполнить service network restart, тогда все начинает работать правильно, настроен один интерфейс br0 с двумя сетевушками. Что такого происходит после выполнения этой команды и не происходит при старте системы? Может есть какие-то идеи?

 

у меня похожий сервер, только мать s3200, тоже выбрал CentOS 5.2 i386 и тоже шейпится через tc htb, но бриджа нету, шейпится достаточно точно, особенно на маленьких скоростях, около мегабита, десять мегабит немного занижает, процентов на 5
С R2Q попробуй поиграться, влияет на точность шейпинга.

Share this post


Link to post
Share on other sites

да меня в принципе устраивает и не про это хотел сказать, а что работает всё правильно, без лишних телодвижений.

Share this post


Link to post
Share on other sites
Скорость для своего IP установил 512 Кбит/c, реально имею скорость чуть больше 1 Мбит/c. Тестировал с помощью iperf. Подумал было что iperf глючит, попробовал просто слить файлик по sftp и получил те же результаты.

У кого какие мысли? Может ли такое быть из-за того что CONFIG_HZ у ядра равен 1000? У меня просто уже есть один сервер и там CONFIG_HZ=250 и нормально шейпит.

У коллег была похожая (но только похожая - у них бриджа не было) проблема. Шейпинг шел с завышением раза 2-3...

Поковырялся я в Инете и нашел следуюший хинт:

ethtool -k <интерфейс>

И вот если там встречается что либо из

tcp segmentation offload: on

udp fragmentation offload: off

generic segmentation offload: off

включенное, то выключить.

У них выключил tcp segmentation offload, презагрузил скрипт нарезки и поехало как часы.

Edited by Jugernault

Share this post


Link to post
Share on other sites

2Jugernault: огромное спасибо, помогло :)

Нашел полезную опцию в настройках интерфейса в RedHat подобных системах: ETHTOOL_OPTS

Edited by SokolovS

Share this post


Link to post
Share on other sites

У меня тоже проблема с шейпером на мосту, не режет скорость вообще.В ethtool gso отключил так как был включен но не помогло, помогите пожалуйста решить проблему.

Share this post


Link to post
Share on other sites

Понимаю, что вопрос глупый, но я все-таки пионер. :)

Может кто-нибудь подскажет, как поделить аплинк PPPoE (ppp0) на локальную сеть (eth0)? Читал много умных инструкций, но там все больно сложно, с приоритетами по типу трафика и т.д. Мне же пока нужно просто поделить равноправно полосу, чтобы качальщики с регетами в 100 потоков не мешали остальным сидеть в интернете. Т.е. скажем выходят в инет 2 IP - значит полосу 512 кбит делить на двоих, трое выходят - на троих. Если кто-то всю полосу не использует - излишки отдавать остальным (я так понимаю, что для этого нужен HTB). И надо это как-то со сквидом скооперировать. (я так понимаю, что просто порт сервера 3128 фильтровать). Потом будет еще и NAT, но это потом - еще руки не дошли.

Система тоже CentOS 5.3

 

Тьфу блин, только сейчас заметил, что тема то в оффтопике. Я просто ее поиском нашел и на раздел не посмотрел. :(

Edited by пионер

Share this post


Link to post
Share on other sites

Тоже етсь такая проблема, сокрсоть даёт в 2-3 раза выше указанной.

Топик по этому поводу тут: http://forum.nag.ru/forum/index.php?showtopic=54131

 

Vorlog, ты справился у себя с проблемой, если да, то как?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this