Обработчик активации сервисов для Manad

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
Строка 58: Строка 58:
*[[Описание общих  параметров для терминальных(ssh/telnet/manad/mikrotik api) обработчиков активации сервисов ]]
*[[Описание общих  параметров для терминальных(ssh/telnet/manad/mikrotik api) обработчиков активации сервисов ]]
 +
 +
Дополнительно поддерживается параметр
 +
<source lang="bash">
 +
\t
 +
</source>
 +
 +
Означающий символ табуляции. 
 +
Также дополнительно тут поддерживается параметр
Также дополнительно тут поддерживается параметр
Строка 84: Строка 92:
В данном случае каждый макрос $paramMulti преобразуется в 7 команд.
В данном случае каждый макрос $paramMulti преобразуется в 7 команд.
-
</source>
 
-
 
Строка 96: Строка 102:
3) Запускаем и настраиваем сам Manad(перловый вариант).
3) Запускаем и настраиваем сам Manad(перловый вариант).
 +
 +
 +
== Manad FreeBSD ===
 +
Сам manad лучше взять вот этот(ссылка!!!).
 +
Вот пример конфигурации типа сервиса. 
 +
 +
<source lang="bash">
 +
speedCommands.1=add\t$servId\t
 +
speedCommands.2=<LOOP>
 +
speedCommands.3=pipe {P0} config bw $param($option,speed,100)
 +
speedCommands.4=pipe {P1} config bw $param($option,speed,100)
 +
speedCommands.5=add {N0} pipe {P0} ip from any to $ip out
 +
speedCommands.6=add {N0} pipe {P1} ip from $ip to any in
 +
speedCommands.7=</LOOP>
 +
 +
sa.command.inetOption.5.enable=$paramMulti(speedCommands)
 +
sa.command.inetOption.6.enable=$paramMulti(speedCommands)
 +
sa.command.inetOption.7.enable=$paramMulti(speedCommands)
 +
 +
sa.command.inetOption.5.disable.1=remove\t$servId
 +
sa.command.inetOption.6.disable.1=remove\t$servId
 +
sa.command.inetOption.7.disable.1=remove\t$servId
 +
</source>
 +
 +
В данном примере manad будет реагировать только на изменение опций(скорости).
 +
 +
 +
== Manad Linux ===

Версия 10:40, 9 января 2014

Обработчик активации сервисов Manad. Тот же самый Manad, который использовался в IPN. Обработчик умеет обрабатывать либо ip либо сети , указанные в сервисе.

Тут главное определится нужен ли вам Manad. Если это команды типа

iptables -A FORWARD -t filter -s 1.1.1.1 -j ACCEPT
iptables -D FORWARD -t filter -s 1.1.1.1 -j ACCEPT

Т.е достаточно использовать telnet или ssh-обработчики. Если же вы хотите в командах использовать некоторые счетчики, которые будут увеличиваться и запоминаться для каждого абонента. Например в случае ipfw(freebsd)

pipe 100 config bw 1280000
pipe 101 config bw 1280000
add 1000 pipe 100 ip from any to 1.1.1.1 out
add 1000 pipe 101 ip from 1.1.1.1 to any in
 
pipe 103 config bw 1280000
pipe 105 config bw 1280000
add 1001 pipe 103 ip from any to 2.2.2.2 out
add 1001 pipe 105 ip from 2.2.2.2 to any in

Или для iroute2(linux)

/sbin/tc class add dev eth0 parent 1:0 classid 1:1 htb rate 256kbit burst 4k prio 1
/sbin/tc qdisc add dev eth0 parent 1:1 handle 1: sfq perturb 10 quantum 1500
 
/sbin/tc class add dev eth0 parent 1:0 classid 1:2 htb rate 128kbit burst 4k prio 1
/sbin/tc qdisc add dev eth0 parent 1:2 handle 2: sfq perturb 10 quantum 1500
 
 
/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst 1.1.1.1  flowid 1:1
/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip dst 2.2.2.2  flowid 1:1
 
/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32 match ip src 1.1.1.1 flowid 1:2
/sbin/tc filter add dev eth0 parent 1:0 protocol ip prio 2 u32 match ip src 1.1.1.1 flowid 1:2


1) Заводим тип устройства Manad.

Класс обработчика активации сервисов:

ru.bitel.bgbilling.modules.inet.dyn.device.manad.ManadServiceActivator

Поставляется в стандартной поставке.


Параметры общие описаны тут:

Дополнительно поддерживается параметр

\t

Означающий символ табуляции.


Также дополнительно тут поддерживается параметр

$paramMulti

Работу которого можно показать на примере

speedCommands.1=add\t$servId\t
speedCommands.2=<LOOP>
speedCommands.3=pipe {P0} config bw $param($option,speed,100)
speedCommands.4=pipe {P1} config bw $param($option,speed,100)
speedCommands.5=add {N0} pipe {P0} ip from any to $ip out
speedCommands.6=add {N0} pipe {P1} ip from $ip to any in
speedCommands.7=</LOOP>
 
 
 
sa.command.inetOption.5.enable=$paramMulti(speedCommands)
sa.command.inetOption.6.enable=$paramMulti(speedCommands)
sa.command.inetOption.7.enable=$paramMulti(speedCommands)


В данном случае каждый макрос $paramMulti преобразуется в 7 команд.


2) Заводим устройство типа Manad. На устройстве должен быть прописан host:port Manad. Либо просто host, тогда порт может быть указан в параметре

sa.port

в конфигурации устройств.

3) Запускаем и настраиваем сам Manad(перловый вариант).


Manad FreeBSD =

Сам manad лучше взять вот этот(ссылка!!!). Вот пример конфигурации типа сервиса.

speedCommands.1=add\t$servId\t
speedCommands.2=<LOOP>
speedCommands.3=pipe {P0} config bw $param($option,speed,100)
speedCommands.4=pipe {P1} config bw $param($option,speed,100)
speedCommands.5=add {N0} pipe {P0} ip from any to $ip out
speedCommands.6=add {N0} pipe {P1} ip from $ip to any in
speedCommands.7=</LOOP>
 
sa.command.inetOption.5.enable=$paramMulti(speedCommands)
sa.command.inetOption.6.enable=$paramMulti(speedCommands)
sa.command.inetOption.7.enable=$paramMulti(speedCommands)
 
sa.command.inetOption.5.disable.1=remove\t$servId
sa.command.inetOption.6.disable.1=remove\t$servId
sa.command.inetOption.7.disable.1=remove\t$servId

В данном примере manad будет реагировать только на изменение опций(скорости).


Manad Linux =

Личные инструменты