2 баги в 0.51 и мпд5

Вопросы и пожелания
Ответить
mr_gfd
Сообщения: 129
Зарегистрирован: Пт ноя 03, 2006 8:34 am

2 баги в 0.51 и мпд5

Сообщение mr_gfd »

Итак, бага нумеро 1.

libexec/racct.pl

Код: Выделить всё

    if ($nas->{NAS_TYPE} eq 'mpd5' && $RAD->{MPD_INPUT_OCTETS}) {
      foreach my $line  (@{ $RAD->{MPD_OUTPUT_OCTETS} }) {
         my($class, $byte)=split(/:/, $line);
         $class = ($class == 0) ? '' : $class + 1;
         $RAD->{'INBYTE'. $class }      = $byte;
        }

      foreach my $line  (@{ $RAD->{MPD_INPUT_OCTETS} }) {
         my($class, $byte)=split(/:/, $line);
         $class = ($class == 0) ? '' : $class + 1;
         $RAD->{'OUTBYTE' . $class}     = $byte;
        }
     }
Проблема, что, судя по коду и диагностике, mpd-input-octets считается как OUTBYTE и наоборот. Соответственно, в биллинге видим перепутанные направления.

2. Уже писал, что есть вопрос при $CONF->{mpd_filters}, ! $CONF->{ng_car} и нулевой скорости в ТП для основного направления мы имеем шейп следующего вида:

Код: Выделить всё

Sending Access-Request of id 66 to 127.0.0.1 port 1812
        User-Name = "test"
        User-Password = "test"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 0
        Framed-Protocol = PPP
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=66, length=404
        Session-Timeout = 613148
        Framed-IP-Address = 172.16.0.45
        mpd-filter = "1#1=match dst net 172.16.0.0/24"
        mpd-filter = "2#1=match src net 172.16.0.0/24"
        mpd-filter = "1#2=match dst net 10.100.0.0/30"
        mpd-filter = "2#2=match src net 10.100.0.0/30"
        Framed-IP-Netmask = 255.255.255.255
        mpd-limit = "in#1#1=flt1 pass"
        mpd-limit = "out#1#1=flt2 pass"
        mpd-limit = "out#2#0=all shape 0 4000"
        mpd-limit = "in#2#0=all shape 0 4000"
Проблема - вот в этом:

Код: Выделить всё

        mpd-limit = "out#2#0=all shape 0 4000"
        mpd-limit = "in#2#0=all shape 0 4000"
Короче, при нулевой скорости в фильтре получается кака )). Набросал следующий патч:

Код: Выделить всё

*** Auth.pm.ORIG      Sun Jan 24 21:53:01 2010
--- Auth.pm     Sun Jan 24 22:46:12 2010
***************
*** 533,542 ****

      if ($class_id == 0 && $line->[1] && $line->[1] =~ /0.0.0.0/) {
         if (! $CONF->{ng_car}) {
!          push @{$RAD_PAIRS->{'mpd-limit'} }, "out#$self->{TOTAL}#0=all shape ". ($line->[2] * 1024)." 4000";
!          push @{$RAD_PAIRS->{'mpd-limit'} }, "in#$self->{TOTAL}#0=all shape ". ($line->[3] * 1024) ." 4000";
!         }
!
           next ;
        }
      elsif($line->[1]) {
--- 533,549 ----

      if ($class_id == 0 && $line->[1] && $line->[1] =~ /0.0.0.0/) {
         if (! $CONF->{ng_car}) {
!               if ( $line->[2] == 0 ) {
!               push @{$RAD_PAIRS->{'mpd-limit'} }, "out#$self->{TOTAL}#0=all pass";
!               } else {
!             push @{$RAD_PAIRS->{'mpd-limit'} }, "out#$self->{TOTAL}#0=all shape ". ($line->[2] * 1024)." 4000";
!               }
!               if ( $line->[3] == 0 ) {
!               push @{$RAD_PAIRS->{'mpd-limit'} }, "in#$self->{TOTAL}#0=all pass";
!               } else {
!             push @{$RAD_PAIRS->{'mpd-limit'} }, "in#$self->{TOTAL}#0=all shape ". ($line->[3] * 1024) ." 4000";
!       }
!       }
           next ;
        }
      elsif($line->[1]) {
------------------------
Интернет в Броварах
http://www.brnet.org.ua

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: 2 баги в 0.51 и мпд5

Сообщение ~AsmodeuS~ »

1 проверте по мониторингу так как мпд считает со стороны сервера

2 уже поправил

mr_gfd
Сообщения: 129
Зарегистрирован: Пт ноя 03, 2006 8:34 am

Re: 2 баги в 0.51 и мпд5

Сообщение mr_gfd »

1. - Может все-таки поменять для mpd5 секции в racct.pl направления по INBYTE и OUTBYTE для mpd-*-octets? Аргументация простая - имеем 2 тарифных плана, один имеет подсчет по направлениям, соответственно считает на основе атрибутов мпд, второй - нет, и считает по стандартным radius accounting атрибутам. Получаеться каша, которую привести в порядок заменой направлния в конфиге не выйдет.

2. Спасибо за оперативность, обновился.
------------------------
Интернет в Броварах
http://www.brnet.org.ua

~AsmodeuS~
Site Admin
Сообщения: 5746
Зарегистрирован: Пт янв 28, 2005 3:11 pm
Контактная информация:

Re: 2 баги в 0.51 и мпд5

Сообщение ~AsmodeuS~ »

поправил

Ответить