forum.bitel.ru
http://forum.bitel.ru/

Ограничение скорости в договоре
http://forum.bitel.ru/viewtopic.php?f=44&t=8890
Страница 1 из 2

Автор:  ilinav [ 29 янв 2014, 13:03 ]
Заголовок сообщения:  Ограничение скорости в договоре

Здравствуйте.

Используем static-ip. В модуле IPN (в договоре) тип правила указывал в шлюзе и далее в скрипте выдёргивал этот параметр и резал скорость на всю сеть на устройстве.
В Inet опция скорости вешается не на договор или шлюз, а на сервис. А каждый сервис - отдельный ip.
Как сделать так, что бы опция применялась на договор/шлюз/сеть?

Автор:  ok-2004 [ 29 янв 2014, 14:58 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Ну ващета опция скорости вешается обычно в тарифном плане
Вешать опцию на всю сеть - это сильно от типа устройства зависит, у меня например это довольно просто реализовалось на микротике.

Автор:  Cromeshnic [ 29 янв 2014, 14:59 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Сделать сервис-подсеть, либо выдавать из тарифа на все сервисы договора, либо руками прописывать на все сервисы-ip.
Больше не представляю как.

Автор:  Cromeshnic [ 29 янв 2014, 15:01 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

"А каждый сервис - отдельный ip."
"В Inet опция скорости вешается ... на сервис"
Всё это звучит подозрительно криво.
Возможно, вы что-то не так делаете.

Автор:  ok-2004 [ 29 янв 2014, 15:21 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Цитата:
"А каждый сервис - отдельный ip."

ТС видимо хотел сказать что если на сервис задать диапазон ип , то они в конечном итоге должны выродиться в кучу шейпящих/открывающих правил на устройстве.
Увы , это нетак :(
В устройствах терминального типа в переменную $ip передаётся к сожалению тока первый ип из массива ипов на сервисе. Поэтому приходиться действительно для устройств терминального типа вешать кучу сервисов на договор по одному ипу на сервис. это горькая правда. Именно по этому приходится вешать в сервис сетевой адрес, а в скриптах на устройстве дописывать к нему маску в правилах.
И здесь начинается пряска на граблях - для того чтобы всё считалось это потом по нетфлоу приходиться к основному сервису добавлять дочерний с ипами внутри этой подсети.

Offtop: 2Cromeshnic - а ведь у Вас ведь сейчас рабочий день поди закончился ? А мистер skyb ваще наверно дома уже.... Вот так и живём- одни топикстартеры заводят тему, потом просыпаются те , кто им отвечают и топикстартеры уже читают ответы дома. ТОли дело в маленькой голландии. все вместе проснулись, все вместе дружно залезли на форум и в "файв-оклок" дружно из него вышли. Красота и порядок!

Автор:  barguzin2 [ 29 янв 2014, 15:33 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Соглашусь, из коробки Inet со Static-IP ой как плохо заточен, если на договор нужно несколько IPов повешать. Но благо все сервис-активаторы открыты и можно делать свои модифицированные. Для начала расскажи чем и на чем шейпишь и какие сервис-активаторы применяешь.

Автор:  skyb [ 29 янв 2014, 15:38 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

ok-2004
Да я блин утром на работе сплю, зато дома работаю часов до 12 ночи )))). Нада сменить рабочий день ))))

Автор:  ilinav [ 29 янв 2014, 15:54 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

ok-2004 писал(а):
Ну ващета опция скорости вешается обычно в тарифном планеВешать опцию на всю сеть - это сильно от типа устройства зависит, у меня например это довольно просто реализовалось на микротике.

У меня циска. Режу скорость по сети, блокирую по ip.
Подскажите плиз каким классом из текущего тарифа опцию выдирать.

ok-2004 писал(а):
В устройствах терминального типа в переменную $ip передаётся к сожалению тока первый ип из массива ипов на сервисе. Поэтому приходиться действительно для устройств терминального типа вешать кучу сервисов на договор по одному ипу на сервис. это горькая правда. Именно по этому приходится вешать в сервис сетевой адрес, а в скриптах на устройстве дописывать к нему маску в правилах.И здесь начинается пряска на граблях - для того чтобы всё считалось это потом по нетфлоу приходиться к основному сервису добавлять дочерний с ипами внутри этой подсети.

Добавить сервис-сеть сразу пришла в голову. Сделал тип сервиса - статическая сеть. Попытался в договоре добавить сервис-сеть. Ошибка - не указан диапазон адресов. как я понял, биллинг проверяет в ip-ресурсах, а там диапазоны, а не сети.
Подскажите плиз как вы это сделали: "приходится вешать в сервис сетевой адрес, а в скриптах на устройстве дописывать к нему маску в правилах.И здесь начинается пряска на граблях - для того чтобы всё считалось это потом по нетфлоу приходиться к основному сервису добавлять дочерний с ипами внутри этой подсети."

Автор:  ilinav [ 29 янв 2014, 16:03 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

barguzin2 писал(а):
Соглашусь, из коробки Inet со Static-IP ой как плохо заточен, если на договор нужно несколько IPов повешать. Но благо все сервис-активаторы открыты и можно делать свои модифицированные. Для начала расскажи чем и на чем шейпишь и какие сервис-активаторы применяешь.

Сейчас блокирую и шейпу на Cisco C4507 так: viewtopic.php?f=7&t=2646#p61715 На С4507 для каждого юзера(договора) создал собственный class-map, благо их мало. Все ip в договоре из одной сети. редко из двух.
На Инет задумал блокировку оставить на С4507, а шейпить на Cisco ASA. надеюсь на АСА автоматизировать создание класс-мапов для шейпера. Но это топикстартовую проблему не отменяет.
Что бы модифицировать очередной активатор и осуществить задуманное мне надо откуда-то выдрать опцию договора и сеть.

Автор:  ok-2004 [ 29 янв 2014, 16:13 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

на счёт ошибки при выборе - это скорее гдето не прописали ipresourcecategory...
Как делал ? да просто ( ещё раз - у меня микротик!!!!)
1. Тип основного сервиса - статическая подсеть.(id например 3 )
1. Тип дочернего сервиса - статический диапазон.(id например 4)

2. В ип-ресурсах создаю ресурс ( id например 777) ( для выбора из основного сервиса )
3. Внутри этого ресурса начинаю вбивать диапазоны ( для сети с маской 29):
192.168.0.0 - 192.168.0.0
192.168.0.8 - 192.168.0.8
192.168.0.16 - 192.168.0.16
.....
и.т.д
4. В этот ресурс вкладываю ип-ресурс для выбора в дочернем сервисе ( id например 888 ) ( для наглядности, чтоб получилась "лесенка" )
5. внутри его начинаю забивать диапазоны:
192.168.0.2 - 192.168.0.6
192.168.0.10 - 192.168.0.14
192.168.0.18 - 192.168.0.22

5.На устройстве задаю
Код:
ip.resource.category=777
ip.resource.categoryId.4=888


6.При создании основного сервиса выбираю "подсеть" и ставлю "1"
При создании дочернего выбираю "диапазон" и ставлю "5"

Конечно геморно вбывать стока диапазонов, но под пиво вродь ничего...

Автор:  skyb [ 29 янв 2014, 16:14 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

ilinav http://bgbilling.ru/v6.0/doc/ch17s10.html

Автор:  ilinav [ 29 янв 2014, 16:28 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

ok-2004 писал(а):
Конечно геморно вбывать стока диапазонов, но под пиво вродь ничего...

Т.е. фактически создаёшь столько ip-ресурсов, сколько используешь статических ip у юзеров. Двойная работа. Ручками.

skyb писал(а):

Читал, настроил, работает. Но полностью нужного мне функционала там нет.

Автор:  ok-2004 [ 29 янв 2014, 16:33 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Цитата:
Т.е. фактически создаёшь столько ip-ресурсов, сколько используешь статических ip у юзеров. Двойная работа. Ручками.Т.е. фактически создаёшь столько ip-ресурсов, сколько используешь статических ip у юзеров. Двойная работа. Ручками.

Да, ручками...
как гриться - знал бы прикуп яву - жил бы в сочи

Автор:  skyb [ 29 янв 2014, 17:03 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

ok-2004 писал(а):
Цитата:
Т.е. фактически создаёшь столько ip-ресурсов, сколько используешь статических ip у юзеров. Двойная работа. Ручками.Т.е. фактически создаёшь столько ip-ресурсов, сколько используешь статических ip у юзеров. Двойная работа. Ручками.

Да, ручками...
как гриться - знал бы прикуп яву - жил бы в сочи уфе

fixed

Автор:  skyb [ 29 янв 2014, 17:04 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

skyb писал(а):

ilinav писал(а):
Читал, настроил, работает. Но полностью нужного мне функционала там нет.

Вы спрашивали про опции, где и как их писать. Тут все рссказано

Автор:  ilinav [ 29 янв 2014, 17:14 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

skyb писал(а):
Вы спрашивали про опции, где и как их писать. Тут все рссказано

А ещё я говорил почему меня стандартное решение не устраивает.

Автор:  Amir [ 29 янв 2014, 17:40 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Цитата:
В Inet опция скорости вешается не на договор или шлюз, а на сервис. А каждый сервис - отдельный ip.
Зачем, если хотите работать с сетями - задавать в каждом сервисе отдельный IP-адрес, а не сразу подсеть?
Не уверен на 100%, что подойдет вам, но если аналогично с IPN:

создаете тип сервиса Шлюз, указываете галочку Устройство, интерфейс?, тип адреса - не выделять, тип инициации - по трафику;
создаете тип сервиса Сеть, указываете галочку Сеть, тип адреса - статическая сеть, тип инициации - по трафику, на вкладке Родительские типы ставите галочку на Шлюз;
в конфигурации устройства указываете категории IP-ресурсов, которые будут назначаться статически, через запятую ip.resource.categoryId=<id_категорий_через_запятую> или отдельно для типов сервиса ip.resource.categoryId.<id_типов_сервиса_через_запятую>=<id_категорий_через_запятую>

При синхронизации выполняется всегда синхронизация родительских сервисов, при этом передается информация о дочерних.
Дальше посложнее, т.к. стандартного ServiceActivator для такой синхронизации пока нет (ServiceActivator - более универсальный вариант скриптового шлюза).
Есть TelnetServiceActivator(AbstractTerminalServiceActivator), но он предназначен для указания команд в конфигурации устройства через макросы. Если добавление подсетей на шлюз можно описать несложным макросом - можем добавить поддержку такого макроса. Или можно расширить TelnetServiceActivator.

В том скриптовом шлюзе у вас классы именовались комментариями договора. Таким образом происходила группировка на уровне договоре. Здесь нужно будет через id родительского сервиса (макрос $servId), т.е. группировка на уровне родительского сервиса в договоре.

Автор:  ilinav [ 29 янв 2014, 17:55 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Amir писал(а):
Зачем, если хотите работать с сетями - задавать в каждом сервисе отдельный IP-адрес, а не сразу подсеть?

Потому что схема сети сложилась исторически ещё до меня и по другому не переделаешь.
Потому что сеть - полукорпоратив-полупровайдинг для госоргана.
Поэтому в интранете рутятся сети без ограничений, а в интернет надо пускать избранных по IP, и скорость резать по сетям.
И модуль Inet увы хуже подходит для этой схемы, чем IPN.
Мы бы дальше сидели на IPN, но расширение лицензии идёт под новый Inet.

Автор:  ilinav [ 29 янв 2014, 19:58 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Amir писал(а):
создаете тип сервиса Сеть, указываете галочку Сеть, тип адреса - статическая сеть, тип инициации - по трафику, на вкладке Родительские типы ставите галочку на Шлюз;

Гм. Галочки Сеть нет.
Сервер: вер. 6.0 сборка 1660 от 23.01.2014 13:59:35
os: Linux; java: Java HotSpot(TM) Server VM, v.1.6.0_35

Автор:  Amir [ 29 янв 2014, 20:01 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Цитата:
Гм. Галочки Сеть нет.
Да, опечатка. Вроде бы не надо других галочек.

Автор:  ilinav [ 30 янв 2014, 12:38 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Amir, если БЫ была ещё одна служебная переменная http://wiki.bitel.ru/index.php/Описание_общих_параметров_для_терминальных(ssh/telnet/manad/mikrotik_api)_обработчиков_активации_сервисов, например комментарий сервиса, то проблема решилась легко :)

Автор:  skyb [ 30 янв 2014, 12:42 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

ilinav писал(а):
Amir, если БЫ была ещё одна служебная переменная http://wiki.bitel.ru/index.php/Описание_общих_параметров_для_терминальных(ssh/telnet/manad/mikrotik_api)_обработчиков_активации_сервисов, например комментарий сервиса, то проблема решилась легко :)

э, так он же там есть

Автор:  ilinav [ 30 янв 2014, 12:44 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

skyb писал(а):
ilinav писал(а):
Amir, если БЫ была ещё одна служебная переменная http://wiki.bitel.ru/index.php/Описание_общих_параметров_для_терминальных(ssh/telnet/manad/mikrotik_api)_обработчиков_активации_сервисов, например комментарий сервиса, то проблема решилась легко :)

э, так он же там есть

о_О
ip - ip адрес сервиса или сессии (192.168.1.1)
net - сеть сервиса (192.168.1.1/32)
mask,bitmask - битовая маска сервиса (32)
netmask - маска сервиса в виде (255.255.255.255)
netmaskWild - маска wildcard сервиса (0.0.0.0)
vlan - vlan сервиса
iface, port - интерфейс сервиса
ifaceTitle - наименование интерфейса сервиса
mac - MAC-адрес сервиса (00:14:fd:11:dd:79)
macBytes - MAC-адрес сервиса (0014fd11dd79)
servTitle - наименование сервиса
contractId - код договора
servId - код сервиса

Где?

Автор:  skyb [ 30 янв 2014, 12:58 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

или я не про то подумал?

Вложения:
Выделение_030.png
Выделение_030.png [ 10.58 КБ | Просмотров: 12588 ]

Автор:  ilinav [ 30 янв 2014, 13:10 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Не про то. Вот если БЫ этот комментарий (в нём опишем сеть типа 192.168.30.0 255.255.255.0) БЫ можно было БЫ запихнуть в переменную, которую укажем в настройках типа устроуства в строке sa.command.inetOption..., то да, было БЫ счастье :)

Автор:  ilinav [ 30 янв 2014, 13:34 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Решено, хоть и некрасиво.

Создаём тип сервиса. Название: "Клиент-скорость"; галочка - устройство; title.pattern=192.168.30.0 255.255.255.0 (сеть клиента).

Добавляем в договор сервис с этим типом.

В конфиге типа устройства пишем например: sa.command.inetOption.25.enable=access-list $contractId extended permit ip $servTitle any;access-list $contractId extended permit ip any $servTitle;class-map $contractId;match access-list $contractId;exit;policy-map rate-limit;class $contractId;police input 20000000;police output 20000000

Т.е. сеть возьмётся из $servTitle.

Недостаток решения - для каждого юзера-безлимитчика делаем тип сервиса. Но это по трудоёмкости всё равно лучше решения ok-2004 с мозаичной структурой ip-ресурсов.

Эх, если БЫ была переменная-комментарий у сервиса, можно бы было сделать красиво и не городить кучу типов сервисов.

Автор:  ok-2004 [ 30 янв 2014, 13:53 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Если чесно, у меня давно работает ( ещё со времён модуля ipn ) решение, аналогичное вашему,намеренно о нём не говорил, потому как костыль, но телодвижений будет меньше даже по сравнению с Вашим решением.
Пишите в коментарий сервиса ип сети и скорость для неё. Так как у вас эти значения более-менее статичные ( посравнению с опциями скорости в тарифных планах ) - ничто не мешает например по хрону залезать в таблицу inet_serv_mid мускульным запросом, пропарсить значения комментариев и превратить это всё в набор команд, отправляемых по терминальной сессии Вашему устройству.

Автор:  Amir [ 30 янв 2014, 14:37 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

В динамическом коде, в классе ru.bitel.bgbilling.modules.inet.dyn.device.terminal.AbstractTerminalServiceActivator можно посмотреть все макросы.
Можно добавить и свой (но при обновлении класс заменяется нашим).
Мне кажется, что вместо $servTitle можно использовать $ip $netmask или $ip $netmaskWild.
И в типе сервиса в title.pattern не нужно указывать адреса напрямую, типов сервисов не должно быть много. Сейчас для title.pattern есть только шаблон $addressRange, который в название поставит диапазон адресов, но название сервиса можно, например, изменять в скрипте на событие сохранения сервиса.

Автор:  barguzin2 [ 30 янв 2014, 15:18 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

ilinav писал(а):
Amir, если БЫ была ещё одна служебная переменная http://wiki.bitel.ru/index.php/Описание_общих_параметров_для_терминальных(ssh/telnet/manad/mikrotik_api)_обработчиков_активации_сервисов, например комментарий сервиса, то проблема решилась легко :)


Так может нужную информацию прописать в идентификатор сервиса и использовать макрос $identifier в командах сервис-активатора? Только нужно, как уже было сказано, немного подправить код сервис-активатора AbstractTerminalServiceActivator.

как-то так...
Код:
...
else if( "identifier".equals( macros ) )
{
    return serv.getIdentifierList().get(0);
}
...

Автор:  ilinav [ 30 янв 2014, 16:01 ]
Заголовок сообщения:  Re: Ограничение скорости в договоре

Amir писал(а):
Мне кажется, что вместо $servTitle можно использовать $ip $netmask или $ip $netmaskWild.

Заработало!

Страница 1 из 2 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/