Вот фильтры:
Код: Выделить всё
mpd-filter += "1#1=match dst net 10.0.0.0/8"
mpd-filter += "2#1=match src net 10.0.0.0/8"
mpd-filter += "1#2=match dst net ХХХ.ХХХ.181.0/24"
mpd-filter += "2#2=match src net ХХХ.ХХХ.181.0/24"
mpd-limit += "in#1#1=flt1 pass"
mpd-limit += "out#1#1=flt2 pass"
mpd-limit += "out#2#0=all shape 262144 4000"
mpd-limit += "in#2#0=all shape 262144 4000"
Код: Выделить всё
Acct-Session-Time = 123
Acct-Input-Octets = 36904
Acct-Input-Packets = 511
Acct-Input-Gigawords = 0
Acct-Output-Octets = 16476
Acct-Output-Packets = 249
Acct-Output-Gigawords = 0
mpd-input-octets = "1:14390"
mpd-input-packets = "1:240"
mpd-input-octets = "0:18332"
mpd-input-packets = "0:262"
mpd-output-octets = "1:14390"
mpd-output-packets = "1:240"
mpd-output-octets = "0:0"
mpd-output-packets = "0:0"
Код: Выделить всё
mpd-input-octets = "1:14390"
mpd-input-packets = "1:240"
mpd-output-octets = "1:14390"
mpd-output-packets = "1:240"
Но в биллинг эти данные не попадают. Попадают только
Чем это вызвано? (Я так думаю в Acct.pm можно подправить. )Acct-Input-Octets = 36904
Acct-Input-Packets = 511
Acct-Input-Gigawords = 0
Acct-Output-Octets = 16476
Acct-Output-Packets = 249
Использование mpd5 для учета трафика оправдано? Или все-же лучше использовать mpd+IPN+netflow?
Одновременных пользователей предполагается 200-300 в онлайне с фильтрами скорости через mpd5.
upd.
файл /abills/libexec/racct.pl строчка 229,230 строка
Код: Выделить всё
$RAD->{INBYTE} = $RAD->{ACCT_OUTPUT_OCTETS} || 0; # FROM client
$RAD->{OUTBYTE} = $RAD->{ACCT_INPUT_OCTETS} || 0; # TO client
upd.
Код: Выделить всё
if ($nas->{NAS_TYPE} eq 'mpd5' && $RAD->{MPD_INPUT_OCTETS}) {
<---> if (ref $RAD->{MPD_INPUT_OCTETS} eq 'ARRAY') {
print asd "MPD = $RAD->{MPD_INPUT_OCTETS}\n";
foreach my $line (@{ $RAD->{MPD_INPUT_OCTETS} }) {
my($class, $byte)=split(/:/, $line);
$class = ($class == 0) ? '' : $class + 1;
$RAD->{'INBYTE'. $class }<--->= $byte;
print "IN = $RAD->{'INBYTE'. $class }<--->= $byte\n";
}
foreach my $line (@{ $RAD->{MPD_OUTPUT_OCTETS} }) {
my($class, $byte)=split(/:/, $line);
$class = ($class == 0) ? '' : $class + 1;
$RAD->{'OUTBYTE' . $class}<-->= $byte;
}
в радиусе:
Код: Выделить всё
mpd-input-octets = "1:1198237"
mpd-input-octets = "0:50225"
mpd-output-octets = "1:1197130"
mpd-output-octets = "0:338430"
Подскажите как исправить ?!