BiTel

Форум BiTel
bgbilling.ru     docs.bitel.ru     wiki.bitel.ru     dbinfo.bitel.ru     bgcrm.ru     billing.bitel.ru     bitel.ru    
Текущее время: 04 июл 2025, 23:58

Часовой пояс: UTC + 5 часов [ Летнее время ]




Начать новую тему Ответить на тему  [ Сообщений: 12 ] 
Автор Сообщение
 Заголовок сообщения: Передача атрибутов Radius
СообщениеДобавлено: 20 мар 2009, 12:40 
Не в сети

Зарегистрирован: 06 фев 2008, 16:22
Сообщения: 18
Карма: 0
Доброго времени суток!
Работает связка mpd 4.4.1 +BgBilling 4.5, модуль VPN 4.5.
Передаем в файрволл ipfw посредством Radius атрибут mpd-table:
1=172.x.x.x 128, где 172.х.х.х - адрес, выдаваемый mpd подключившемуся клиенту.
Для этого пробиваем это правило в настройках атрибутов Radius _каждого_ договора. Вопрос в следующем - как можно сделать так, чтобы _не_ прописывать эти атрибуты в _каждом_ договоре (что довольно утомительно), а создать отдельный атрибут в конфиге модуля и подключить его к конкертному тарифному плану в справочнике? Проблема заключается в том, как выцепить этот самый IP-адрес, выданный клиенту? Т.е., по аналогии с модулем IPN сделать что-то типа
mpd-table 1= {A} 128.
Спасибо.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 21 мар 2009, 02:15 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
скриптом на событие RADIUS аутентификации не получится?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 мар 2009, 17:05 
Не в сети
Разработчик

Зарегистрирован: 27 ноя 2006, 20:36
Сообщения: 5715
Карма: 93
Такой возможности нет.
В MPD же можно правила не интерфейс клиента передавать. Чем не подходит?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 июн 2009, 01:31 
Не в сети

Зарегистрирован: 26 май 2007, 21:04
Сообщения: 9
Карма: 0
как можно передать IP в таблицу ipfw?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 19 июн 2009, 21:06 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
gate писал(а):
как можно передать IP в таблицу ipfw?

мануал MPD говорит:
MPD manual писал(а):
You can write in your RADIUS configuration something like:
Код:
mpd-table += "1=10.0.0.1",
mpd-table += "1=10.0.0.15",
mpd-pipe += "1=bw 10Kbyte/s",
mpd-pipe += "5=bw 20Kbyte/s",
mpd-rule += "1=pipe %p1 all from any to table\\(%t1\\) in",
mpd-rule += "2=pipe %p5 all from table\\(%t1\\) to any out",
mpd-rule += "100=allow all from any to any",

When mpd receives these parameters it will call ipfw(8) to create firewall rules, pipes and queues with unique numbers starting from 10000 (configurable via 'set global start...'). %rX, %pX, %qX, %tX macroses will be expanded within mpd-rule and mpd-queue. To the end of each rule will be added "via ngX" to make the rule apply only to that client's networking interface.

As a result of this example we would get these commands executed:
Код:
ipfw table 32 add 10.0.0.1
ipfw table 32 add 10.0.0.15
ipfw pipe 10000 config bw 10Kbyte/s
ipfw pipe 10001 config bw 20Kbyte/s
ipfw add 10000 pipe 10000 all from any to table\(32\) in via ng0
ipfw add 10001 pipe 10001 all from table\(32\) to any out via ng0
ipfw add 10002 allow all from any to any via ng0

When the link goes down, all created rules will be removed.

Note: As soon as mpd executes ipfw commands using shell, shell's special characters like "(" and ")" must be slashed.

Вы это пробывали?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 июн 2009, 04:06 
Не в сети

Зарегистрирован: 26 май 2007, 21:04
Сообщения: 9
Карма: 0
а каким параметром указать IP можно?
mpd-table += "1=%ip"


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 23 июн 2009, 16:51 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
gate писал(а):
а каким параметром указать IP можно?

давайте по порядку ... Вы чего именно хотите сделать? скорость поюзерно нарезать? так это можно обычными средствами сделать, без таблиц ...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 27 июн 2009, 00:57 
Не в сети

Зарегистрирован: 26 май 2007, 21:04
Сообщения: 9
Карма: 0
Код:
import bitel.billing.server.call.bean.Login;
import bitel.billing.server.radius.*;
import bitel.billing.server.contract.bean.*;
import bitel.billing.server.script.event.*;
import bitel.billing.server.tariff.bean.*;
import bitel.billing.common.IPUtils;
import bitel.billing.server.util.*;
import java.util.*;
import java.math.*;

errCode = event.getErrorCode();

if (errCode == 0) {
  cid = event.getContractID();
  evdate=event.getGenerateTime();
  ctm =  new ContractTariffManager( con );
  currentTariff = ctm.getContractTariff( cid, evdate).getTariffPlanID();
  if( currentTariff == null ) { error( "Current tariff not found" ); return; }
  if (currentTariff == 1) {
    response = event.getResponse();
    ip = response.getIntAttribute(RadiusStandartAttributes.Framed_IP_Address);
    ipaddr = IPUtils.convertIpToString( ip );
    rva = new RadiusVendorAttribute( 12341, 4 );
    rva.setStringValue("1="+ipaddr);
    response.addVendorAttribute( rva );
  }
}


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 29 июн 2009, 15:44 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
т.е. в зависимости от тарифа выдавать некий IP адрес?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 июн 2009, 12:46 
Не в сети

Зарегистрирован: 26 май 2007, 21:04
Сообщения: 9
Карма: 0
да (в нужную table на NAS), просто уже есть написанный софт, который распределяет полосу...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 июн 2009, 15:59 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
в конфиге модуля dialup прописываем пулы адресов:
Код:
pools.tbl1=1.1.1.1-1.1.1.255
pools.tbl2=2.2.2.1-2.2.2.255
pools.tbl3=3.3.3.1-3.3.3.255

там же прописываем RADIUS атрибуты для этих пулов
Код:
attrset.1.title=IP адреса для таблицы 1
attrset.1.attributes=Framed-Pool=tbl1

attrset.2.title=IP адреса для таблицы 2
attrset.2.attributes=Framed-Pool=tbl2

attrset.3.title=IP адреса для таблицы 3
attrset.3.attributes=Framed-Pool=tbl3

ну и добавляете RADIUS атрибуты в тариф (см. скрины):


Вложения:
howto_1.jpg
howto_1.jpg [ 20.62 КБ | Просмотров: 5858 ]
howto_2.jpg
howto_2.jpg [ 13.34 КБ | Просмотров: 5858 ]
howto_3.jpg
howto_3.jpg [ 14.53 КБ | Просмотров: 5858 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения:
СообщениеДобавлено: 30 июн 2009, 16:04 
Не в сети
Клиент

Зарегистрирован: 12 фев 2008, 18:10
Сообщения: 3951
Карма: 249
в дополнение к выше перечисленным атрибутам у Вас есть некий атрибут:
Код:
attrset.4.title=Скорость 128k/128k
attrset.4.attributes=foo;bar;baz

который в т.ч. закинет нужные адреса в нужную таблицу, тогда Ваш тариф пример вид:

P.S. на скринах видно что пулами адресов Вы можете управлять прямо из радиуса (даны все 3 пула) ... с атрибутами точно так же


Вложения:
tbl1.jpg
tbl1.jpg [ 11.97 КБ | Просмотров: 5858 ]
tbl2.jpg
tbl2.jpg [ 12.71 КБ | Просмотров: 5858 ]
tbl3.jpg
tbl3.jpg [ 12.77 КБ | Просмотров: 5858 ]
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Часовой пояс: UTC + 5 часов [ Летнее время ]


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
POWERED_BY
Русская поддержка phpBB
[ Time : 0.049s | 42 Queries | GZIP : On ]