MPD5 Radius атрибуты
MPD5 Radius атрибуты
Помогите с настройкой радиус атрибутов для MPD5.
Вопрос:
Кто знает, напишите пример настройки атрибутов для ограничения скорости в разное время суток, например днем одна скорость ночью другая.
И разная скорость с разных адресов, например внешний интернет и внутрення сеть
Возможно ли такое.?
За ранее спасибо.
Вопрос:
Кто знает, напишите пример настройки атрибутов для ограничения скорости в разное время суток, например днем одна скорость ночью другая.
И разная скорость с разных адресов, например внешний интернет и внутрення сеть
Возможно ли такое.?
За ранее спасибо.
Последний раз редактировалось VooDoo Пт сен 24, 2010 07:58, всего редактировалось 1 раз.
Нашел как делать с разных ресурсов разную скорость.
Пример
mpd-filter += "1#1=nomatch dst net 10.0.0.0/24",
mpd-filter += "1#2=match dst net 10.0.0.0/8",
mpd-filter += "2#1=nomatch src net 10.0.0.0/24",
mpd-filter += "2#2=match src net 11.0.0.0/8",
mpd-limit += "in#1=flt1 pass",
mpd-limit += "in#2#Biz=all shape 64000 4000",
mpd-limit += "out#1=flt2 pass",
mpd-limit += "out#2#Biz=all rate-limit 1024000 150000 300000"
взято сайта документции по mpd
http://mpd.sourceforge.net/doc5/mpd30.html#30
Вот про время не нашел. Кто настраивал отзовитесь
Пример
mpd-filter += "1#1=nomatch dst net 10.0.0.0/24",
mpd-filter += "1#2=match dst net 10.0.0.0/8",
mpd-filter += "2#1=nomatch src net 10.0.0.0/24",
mpd-filter += "2#2=match src net 11.0.0.0/8",
mpd-limit += "in#1=flt1 pass",
mpd-limit += "in#2#Biz=all shape 64000 4000",
mpd-limit += "out#1=flt2 pass",
mpd-limit += "out#2#Biz=all rate-limit 1024000 150000 300000"
взято сайта документции по mpd
http://mpd.sourceforge.net/doc5/mpd30.html#30
Вот про время не нашел. Кто настраивал отзовитесь
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
читайте в мануале mpd5 про radius COA и POD. Там есть возможность каждому пользователю менять скорость http://mpd.sourceforge.net/doc5/mpd32.html#32 . Альтернативы - или dummynet и крон(скриптом менять скорости пайпов) или скрипт по крону, который будет обходить все подключения и менять им скорость. Есть еще вариант - подменять таблицу радиус-аттрибутов по крону, заставлять всех переподключаться. Но это неправильно с точки зрения абонента.
-
- Сообщения: 1612
- Зарегистрирован: Пт ноя 10, 2006 15:23
1. Не поддерживает ни тот ни другой. Управление ведется с помощью radius-client. Можно взять из состава freeradius.
Можно воспользоваться вот этим:
Соответственно слать что-нить в духе -a 0:1:0:user1 -a 12341:7:0:in#1=all rate-limit 1 pass -a 12341:7:0:out#1=all rate-limit 100000 pass
Возможно потребуются кавычки.
Можно воспользоваться вот этим:
Код: Выделить всё
./utm5_radgen -h
utm5_radgen: option requires an argument -- h
NetUP UTM billing radius packet generator. Compile date: Dec 5 2008 17:35:10
Copyright (c) 2001-2008 NetUP Inc. www.netup.ru
usage: utm5_radgen
[-p port] Port to send radius packet
[-h ip] IP-address to send radius packet
[-s secret] Shared radius secret
[-c code] Radius packet code (Access-Request default - 1)
[-u user_password] User password (vendor 0, attribute 2)
[-a attr_info] Custom radius attributes. vendor_id:attr_id:is_digit:value. For example: 0:1:0:testlogin
[-b attr_info] Custom radius binary attributes in hex ascii. vendor_id:attr_id:1:value. For example: 0:1:1:bb1e6816178602135990dd9b05e9d508
[-v] Version info
Возможно потребуются кавычки.
В любом случае для моего вопроса это все не подходит.
Все равно атрибуты должны передаваться в момент подключения, чтоб на интерфейсе создавалась определенная полоса пропускания. С помощью это утилиты поменять уже на созданном интерфейсе без переподключения ширину канала не получится!
Или я не прав ?
Все равно атрибуты должны передаваться в момент подключения, чтоб на интерфейсе создавалась определенная полоса пропускания. С помощью это утилиты поменять уже на созданном интерфейсе без переподключения ширину канала не получится!
Или я не прав ?
Код: Выделить всё
shape.pl
Код: Выделить всё
use DBI;
$mysqlAHost = 'localhost';
$mysqlADb = 'UTM5';
$mysqlAUser = 'xxx';
$mysqlAPassword = 'xxx';
$mysqlAConnect = "dbi:mysql:$mysqlADb;$mysqlAHost";
$Adbh = DBI->connect($mysqlAConnect, $mysqlAUser, $mysqlAPassword);
$Aquery = "SELECT dialup_service_links.login AS user_name, nigth_speed.speed_in AS s_in, nigth_speed.speed_out AS s_out, nigth_speed.nas_ip AS nas_ip, nigth_speed.nas_pass AS nas_pass
FROM accounts, service_links, dialup_service_links, nigth_speed
WHERE service_links.service_id=63
AND service_links.account_id=accounts.id
AND dialup_service_links.id=service_links.id;";
$Asth = $Adbh->prepare($Aquery);
$Aresults = $Adbh->selectall_hashref($Aquery, 'user_name');
foreach $user_name (keys %$Aresults) {
$speed_in = $Aresults->{$user_name}->{s_in} * 2;
$speed_out = $Aresults->{$user_name}->{s_out} * 2;
$nasip = $Aresults->{$user_name}->{nas_ip};
$naspw = $Aresults->{$user_name}->{nas_pass};
$burst_in = $speed_in * 2 / 16;
$burst_out = $speed_out * 2 / 16;
system ("/bin/echo User-Name=$user_name,mpd-limit+=\\\"in\#1=all shape $speed_in $burst_in pass\\\",mpd-limit+=\\\"out\#1=all shape $speed_out $burst_out pass\\\"|/usr/bin/radclient -x $nasip:3799 coa $naspw");
}
$Adbh->disconnect();
Код: Выделить всё
startup:
set radsrv peer xxx.xxx.xxx.xxx secret
set radsrv self xxx.xxx.xxx.xxx 3799
set radsrv open