dynashape на 5.2.1-007+linux+tc на ppp

Технические вопросы по UTM 5.0
Ответить
drag0mir
Сообщения: 64
Зарегистрирован: Сб ноя 24, 2007 13:46
Откуда: Нижний Новгород

dynashape на 5.2.1-007+linux+tc на ppp

Сообщение drag0mir »

ребята подскажите, обновился недавно с 005 на 007 и до сих пор не в понятках от динашейпера. есть несколько вопросов.
1. бинарника utm5_dynashape больше не существует???
2. цисок и им подобных нет, использую в качетве NAS для VPN обыкновенные PC, раньше резал скорость конкретно на каждом интерфейсе ppp. клиент подключается, запускается скриптик, определяет на каком интерфейсе клиент, и фигачит туда правила tc, на основании лога который делался с помощью utm5_dynashape. Возможна ли сейчас подобная схема?
3. вобще какие варианты есть для того чтоб резать сразу на ppp интерфейсах? вот пишут, что с помощью радиус атрибутов. опять же повторюсь что цисок нет, и вдобавок использую freeradius, прокатит ли такая схема?

упрощенная схема состоит из 2 машин
на 1-ой машине стоит ядро utm5 и freeradius
на 2-ой машине pppoe-server, radiusclient, utm_rfw (раньше еще стоял utm5_dynashape) и хотелось бы резать скорость с момента подключения по VPN, прямо на ppp интерфейсе. очевидно, что клиенты часто переподключаются и интерфейсы у них меняются.
возможно ли это в 007?
если нет, то помогите подобрать альтернативу.
ну либо писать скриптик аналог utm5_dynashape...
либо поднимать imq и заворачивать туда весь трафик для шейпирования...

drag0mir
Сообщения: 64
Зарегистрирован: Сб ноя 24, 2007 13:46
Откуда: Нижний Новгород

Сообщение drag0mir »

ну хотя бы на первый вопрос ответьте ребят =)

Pulse
Сообщения: 945
Зарегистрирован: Вт окт 03, 2006 12:58

Сообщение Pulse »


drag0mir
Сообщения: 64
Зарегистрирован: Сб ноя 24, 2007 13:46
Откуда: Нижний Новгород

Сообщение drag0mir »

читал, там ничего конкретного нет

linx
Сообщения: 29
Зарегистрирован: Ср окт 01, 2008 12:10

Сообщение linx »

я уже писал про это т.к. сам столкнулся с этим после обновления, потратил день чтоб понять логику

В rfw5.conf есть строка:
firewall_path=/usr/bin/firewall

Создаем, исполняемый скрипт firewall, примерно такого содержания: Код:

#!/bin/bash
if="eth0"
echo $*
echo "First create: tc qdisc add dev $if root handle 1: htb"
case "$6" in
0)
iptables -t mangle -D FORWARD -s 0/0 -d $2/$3 -j MARK --set-mark $1
tc filter del dev $if parent 1: protocol ip prio 3 handle $1 fw classid 1:$1
tc class del dev $if parent 1:1 classid 1:$1 htb rate $5kbit burst 20k
;;
1)
iptables -t mangle -A FORWARD -s 0/0 -d $2/$3 -j MARK --set-mark $1
tc filter add dev $if parent 1: protocol ip prio 3 handle $1 fw classid 1:$1
tc class add dev $if parent 1:1 classid 1:$1 htb rate $5kbit burst 20k
;;
2)
tc class change dev $if parent 1:1 classid 1:$1 htb rate $5kbit burst 20k
;;
*)
echo "Usage: `basename $0` {UID UIP UBITS UMASK BANDWIDTH [0|1|2]}" >&2
exit 64
;;
esac

См. статью нетапа http://www.netup.ru/UTM5/articles.php?n=40

В правилах файрволла нужно будет последовательно передать скрипту параметры UID UIP UBITS UMASK BANDWIDTH и номер условия (добавить - 1, удалить - 0, изменить - 2)

Это для версии 007. Сами правила файрвола: Установка ширины канала, передаем UID UIP UBITS UMASK BANDWIDTH 1
Какие правила для - описано в статье что привел выше

drag0mir
Сообщения: 64
Зарегистрирован: Сб ноя 24, 2007 13:46
Откуда: Нижний Новгород

Сообщение drag0mir »

такая схема к сожалению не прокатит, так как надо резать на ppp интерфейсах. и правила должны срабатывать непосредственно при подключении клиента по VPN, а параметр BANDWIDTH передается только когда событие с шириной канала происходит...

мысль такая: можно написать скрипт, который будет при установке и изменении ширины канала формировать отдельный файлик с этими данными на сервере доступа. а в /etc/ppp/ip-up.d/ засунуть скриптик который уже будет на основании этого файлика вешать правила на ppp интерфейс. как то так

kirush
Сообщения: 699
Зарегистрирован: Пт фев 04, 2005 13:58

Сообщение kirush »

В таблице dynashape_date есть всё что Вам нужно.
Сам столкнулся с проблемой установки ширины канала. Если событие наступило - ширина устанавливается. Но стоит ребутнуть машину то при перезапуске ядра, правила устанавливающие ограничение по dynashapе не устанавливаются ;(
Написал разработчикам. Может конечно, что то я не так делаю.
Но смысл следующий:
В этой таблице имеем на slink_id 21601 стоит ограничение 3500 в обе стороны:
При очередном прохождении dynashapе в логах видим:

Код: Выделить всё

?Debug : Jan 18 21:45:14 28a01bf0 DynaShapePlugin: slink_id: 21601 total downloaded: 48091380620 direction: 1
?Debug : Jan 18 21:45:14 28a01bf0 DynaShapePlugin: calculated border 26843545600 limit 3500
?Debug : Jan 18 21:45:14 28a01bf0 DynaShapePlugin: set_curr_limit: BW_NONE
?Debug : Jan 18 21:45:14 28a01bf0 DynaShapePlugin: slink_id=21601 BW limit unchanged. Done.
?Debug : Jan 18 21:45:14 28a01bf0 DynaShapePlugin: SUM tclass_id: 2000 downloaded: 207847920674
?Debug : Jan 18 21:45:14 28a01bf0 DynaShapePlugin: slink_id: 21601 total downloaded: 207847920674 direction: 2
?Debug : Jan 18 21:45:14 28a01bf0 DynaShapePlugin: calculated border 26843545600 limit 3500
?Debug : Jan 18 21:45:14 28a01bf0 DynaShapePlugin: set_curr_limit: BW_NONE
?Debug : Jan 18 21:45:14 28a01bf0 DynaShapePlugin: slink_id=21601 BW limit unchanged. Done.
Т.е. он оставляет его без изменений.
Передергиваем интернет у клиента, правило устанавливающее ширину канала не устанавливается, а вот если в табличке убрать записи - то при следующем прохождении оно его установит, а хотелось бы чтобы оно дергалось при включении и выключении статуса интернета.

kirush
Сообщения: 699
Зарегистрирован: Пт фев 04, 2005 13:58

Сообщение kirush »

Свою проблему решил с помощью сотрудника фирмы НетАП (Руслан Капра) за, что ему человеческое спасибо.
В rfw5.cfg
было:

Код: Выделить всё

sync_flags=enable
стало:

Код: Выделить всё

sync_flags=enable:shaping
Согласно мануалу (страницы 169, 170)
из модуля запуска safe_utm5_rfw был убран флаг -f.

kkadd
Сообщения: 7
Зарегистрирован: Сб апр 02, 2011 14:07
Откуда: 206

Сообщение kkadd »

Подскажите, у меня такая беда.
создал временной диапазон тестовый поставил ему границу трафика 1b
и поставил скорость 1111.
в дебаг логе следующее:

?Debug : Apr 02 15:12:03 28a019d0 DynaShapePlugin: slink_id: 1782 total downloaded: 16532819 direction: 1
?Debug : Apr 02 15:12:03 28a019d0 DynaShapePlugin: calculated border 1 limit 1111
?Debug : Apr 02 15:12:03 28a019d0 DBCtx: <681623552> SQL query: INSERT INTO dynashape_data(slink_id,direction,curr_limit) VALUES ('1782','1','1111')
?Debug : Apr 02 15:12:03 28a017b0 DBCtx: DB transaction commit
?Debug : Apr 02 15:12:03 28a017b0 TransactionFilter: transaction sent to the internal queue
?Debug : Apr 02 15:12:03 28a017b0 TransactionQueueManager: pushing transaction <0x2915f220> into queue <0> (default)
?Debug : Apr 02 15:12:03 28a019d0 DynaShapePlugin: set_curr_limit: BW_INIT
?Debug : Apr 02 15:12:03 28a017b0 TransactionHandlerImpl: push: empty transaction ptr <0x2915f220> dropped
?Debug : Apr 02 15:12:03 28a019d0 PluginManagerImpl: Got RfwPlugin plugin for event EventSetBandwidth/83
?Debug : Apr 02 15:12:03 28a017b0 DummyTransactionQueue: commit: 0 transactions
?Debug : Apr 02 15:12:03 28a019d0 PluginManagerImpl: Got FwRulesPlugin plugin for event EventGetFWRules/8
?Debug : Apr 02 15:12:03 28a017b0 DBA:Ctx: Pushing back free context (system=1)
?Debug : Apr 02 15:12:03 28a019d0 FwRulesPlugin: get_fwrules: got <0> rules
?Debug : Apr 02 15:12:03 28a017b0 TransactionHandlerImpl: incoming transaction ptr <0x29ebb880> done
?Debug : Apr 02 15:12:03 28a019d0 RfwPlugin: rules list is empty, nothing to exec
?Debug : Apr 02 15:12:03 28a019d0 DynaShapePlugin: BW limit for slink 1782 set to 1111kbps (direction 1)
?Debug : Apr 02 15:12:03 28a019d0 DynaShapePlugin: slink_id=1782 shaping Done

Ну и соответственно не шейпит ... shaping Done...

kkadd
Сообщения: 7
Зарегистрирован: Сб апр 02, 2011 14:07
Откуда: 206

Сообщение kkadd »

?Debug : Apr 02 15:13:55 28a017b0 DynaShapePlugin: SUM tclass_id: 10 downloaded: 19219233
?Debug : Apr 02 15:13:55 28a017b0 DynaShapePlugin: slink_id: 1782 total downloaded: 19219233 direction: 1
?Debug : Apr 02 15:13:55 28a017b0 DynaShapePlugin: calculated border 1 limit 1111
?Debug : Apr 02 15:13:55 28a017b0 DynaShapePlugin: set_curr_limit: BW_NONE
?Debug : Apr 02 15:13:55 28a017b0 DynaShapePlugin: slink_id=1782 BW limit unchanged. Done.
?Debug : Apr 02 15:13:55 28a017b0 DBCtx: <681621504> SQL query: COMMIT
?Debug : Apr 02 15:13:55 28a019d0 DBCtx: <681620480> SQL query: COMMIT
?Debug : Apr 02 15:13:55 29120040 DBCtx: <681622528> SQL query: BEGIN
?Debug : Apr 02 15:13:55 28a017b0 DBCtx: DB transaction commit
?Debug : Apr 02 15:13:55 28a017b0 TransactionFilter: transaction sent to the internal queue
?Debug : Apr 02 15:13:55 28a017b0 TransactionQueueManager: pushing transaction <0x2915f1c0> into queue <1> (default)

kkadd
Сообщения: 7
Зарегистрирован: Сб апр 02, 2011 14:07
Откуда: 206

Сообщение kkadd »

Что пока не занесется первая запись в таблицу dynashape_data шепинг что ли не шейпит??? так я заметил только первый диапазон пренебрегается а в дальнейшем шейпится нормально. Но это ведь не кашерно...

f0ma
Сообщения: 29
Зарегистрирован: Чт июн 05, 2008 11:23
Откуда: г.Екатеринбург

Сообщение f0ma »

drag0mir как решили проблему dynashape на ppp интерфесе? очень актуально
Последний раз редактировалось f0ma Пн май 02, 2011 19:37, всего редактировалось 1 раз.

f0ma
Сообщения: 29
Зарегистрирован: Чт июн 05, 2008 11:23
Откуда: г.Екатеринбург

Сообщение f0ma »

drag0mir как решили проблему dynashape на ppp интерфесе? очень актуально

Аватара пользователя
kamae1ka
Сообщения: 142
Зарегистрирован: Пн окт 04, 2010 05:14

Сообщение kamae1ka »

бери лучше mpd

Ответить