forum.bitel.ru http://forum.bitel.ru/ |
|
Передача атрибутов Radius http://forum.bitel.ru/viewtopic.php?f=5&t=2055 |
Страница 1 из 1 |
Автор: | Vorojeikin [ 20 мар 2009, 12:40 ] |
Заголовок сообщения: | Передача атрибутов Radius |
Доброго времени суток! Работает связка 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. Спасибо. |
Автор: | snark [ 21 мар 2009, 02:15 ] |
Заголовок сообщения: | |
скриптом на событие RADIUS аутентификации не получится? |
Автор: | Администратор [ 23 мар 2009, 17:05 ] |
Заголовок сообщения: | |
Такой возможности нет. В MPD же можно правила не интерфейс клиента передавать. Чем не подходит? |
Автор: | gate [ 19 июн 2009, 01:31 ] |
Заголовок сообщения: | |
как можно передать IP в таблицу ipfw? |
Автор: | snark [ 19 июн 2009, 21:06 ] |
Заголовок сообщения: | |
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. Вы это пробывали? |
Автор: | gate [ 23 июн 2009, 04:06 ] |
Заголовок сообщения: | |
а каким параметром указать IP можно? mpd-table += "1=%ip" |
Автор: | snark [ 23 июн 2009, 16:51 ] |
Заголовок сообщения: | |
gate писал(а): а каким параметром указать IP можно?
давайте по порядку ... Вы чего именно хотите сделать? скорость поюзерно нарезать? так это можно обычными средствами сделать, без таблиц ... |
Автор: | gate [ 27 июн 2009, 00:57 ] |
Заголовок сообщения: | |
Код: 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 ); } } |
Автор: | snark [ 29 июн 2009, 15:44 ] |
Заголовок сообщения: | |
т.е. в зависимости от тарифа выдавать некий IP адрес? |
Автор: | gate [ 30 июн 2009, 12:46 ] |
Заголовок сообщения: | |
да (в нужную table на NAS), просто уже есть написанный софт, который распределяет полосу... |
Автор: | snark [ 30 июн 2009, 16:04 ] | ||||
Заголовок сообщения: | |||||
в дополнение к выше перечисленным атрибутам у Вас есть некий атрибут: Код: attrset.4.title=Скорость 128k/128k
attrset.4.attributes=foo;bar;baz который в т.ч. закинет нужные адреса в нужную таблицу, тогда Ваш тариф пример вид: P.S. на скринах видно что пулами адресов Вы можете управлять прямо из радиуса (даны все 3 пула) ... с атрибутами точно так же
|
Страница 1 из 1 | Часовой пояс: UTC + 5 часов [ Летнее время ] |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |