dynashape на 5.2.1-007+linux+tc на ppp
dynashape на 5.2.1-007+linux+tc на ppp
ребята подскажите, обновился недавно с 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 и заворачивать туда весь трафик для шейпирования...
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 и заворачивать туда весь трафик для шейпирования...
http://www.netup.ru/download/utm5_20101214.pdf страница 311
я уже писал про это т.к. сам столкнулся с этим после обновления, потратил день чтоб понять логику
В 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
Какие правила для - описано в статье что привел выше
В 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
Какие правила для - описано в статье что привел выше
такая схема к сожалению не прокатит, так как надо резать на ppp интерфейсах. и правила должны срабатывать непосредственно при подключении клиента по VPN, а параметр BANDWIDTH передается только когда событие с шириной канала происходит...
мысль такая: можно написать скрипт, который будет при установке и изменении ширины канала формировать отдельный файлик с этими данными на сервере доступа. а в /etc/ppp/ip-up.d/ засунуть скриптик который уже будет на основании этого файлика вешать правила на ppp интерфейс. как то так
мысль такая: можно написать скрипт, который будет при установке и изменении ширины канала формировать отдельный файлик с этими данными на сервере доступа. а в /etc/ppp/ip-up.d/ засунуть скриптик который уже будет на основании этого файлика вешать правила на ppp интерфейс. как то так
В таблице dynashape_date есть всё что Вам нужно.
Сам столкнулся с проблемой установки ширины канала. Если событие наступило - ширина устанавливается. Но стоит ребутнуть машину то при перезапуске ядра, правила устанавливающие ограничение по dynashapе не устанавливаются ;(
Написал разработчикам. Может конечно, что то я не так делаю.
Но смысл следующий:
В этой таблице имеем на slink_id 21601 стоит ограничение 3500 в обе стороны:
При очередном прохождении dynashapе в логах видим:
Т.е. он оставляет его без изменений.
Передергиваем интернет у клиента, правило устанавливающее ширину канала не устанавливается, а вот если в табличке убрать записи - то при следующем прохождении оно его установит, а хотелось бы чтобы оно дергалось при включении и выключении статуса интернета.
Сам столкнулся с проблемой установки ширины канала. Если событие наступило - ширина устанавливается. Но стоит ребутнуть машину то при перезапуске ядра, правила устанавливающие ограничение по 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.
Передергиваем интернет у клиента, правило устанавливающее ширину канала не устанавливается, а вот если в табличке убрать записи - то при следующем прохождении оно его установит, а хотелось бы чтобы оно дергалось при включении и выключении статуса интернета.
Свою проблему решил с помощью сотрудника фирмы НетАП (Руслан Капра) за, что ему человеческое спасибо.
В rfw5.cfg
было:
стало:
Согласно мануалу (страницы 169, 170)
из модуля запуска safe_utm5_rfw был убран флаг -f.
В rfw5.cfg
было:
Код: Выделить всё
sync_flags=enable
Код: Выделить всё
sync_flags=enable:shaping
из модуля запуска safe_utm5_rfw был убран флаг -f.
Подскажите, у меня такая беда.
создал временной диапазон тестовый поставил ему границу трафика 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...
создал временной диапазон тестовый поставил ему границу трафика 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...
?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)
?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)
drag0mir как решили проблему dynashape на ppp интерфесе? очень актуально
Последний раз редактировалось f0ma Пн май 02, 2011 19:37, всего редактировалось 1 раз.