Страница 1 из 1

Не работает perl up-script скрипт в mpd5

Добавлено: 2009-03-13 13:53:33
blackjackchik
Всем привет. Есть ап скрипт.

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

#!/usr/bin/perl

use DBI;
$authname=$ARGV[5];
$dbh = DBI->connect("DBI:mysql:bill","user",'pass');
$sth=$dbh->prepare("SELECT * FROM users WHERE name='$authname'");
$sth->execute;
$p=$sth->fetchrow_hashref;
$ip=$p->{'ip'};
$ipp=$ARGV[4];
$state=$p->{'state'};
$balance=$p->{'balance'};
$paket=$p->{'paket'};

$sth2=$dbh->prepare("SELECT * FROM plans2 WHERE id='$paket'");
$sth2->execute;
if ( $p2=$sth2->fetchrow_hashref )
{
        $price=$p2->{'price'};

        if ( $balance < 0 )
        {
                exit 1;
        }

        if ( $balance-$price < 0 )
        {
                exit 1;
        }

        if ( $state eq 'off' )
        {
                exit 1;
        }

system("/sbin/ipfw -q table 10 add $ipp");
system("/sbin/ipfw -q table 11 add $ipp 1");
system("/sbin/ipfw -q table 12 add $ipp 2");
}
exit 0;
Конфиг mpd5

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

startup:
        # configure mpd users
        set user admin pppoe
#       set user foo1 bar1
        # configure the console
        set console self 127.0.0.1 5005
        set console open
        # configure the web server
        set web self 0.0.0.0 5006
        set web open

default:
        load pppoe_server

pppoe_server:

    create bundle template Bundle
    set iface up-script /home/admin/onConnect.pl
#    set iface up-script /home/admin/up.sh
    set iface down-script /home/admin/down.sh
    set iface enable proxy-arp
#       set iface enable tcpmssfix
    set ipcp yes vjcomp
    set ipcp ranges 192.168.1.1/32 192.168.1.12/32
    set ipcp dns 172.16.23.124

    create link template Link pppoe
    set link disable multilink
    set link action bundle Bundle
#       set link latency 0
#       set link bandwidth 1024000

    set link disable chap pap eap
    set link enable chap
    set link keep-alive 10 60
    set pppoe service *

    set link max-children 100
    set pppoe iface vlan23
    set link enable incoming
Запускаю скрипт вручную из командной строки все работает, а при поднятии интерфейса mpd будто его вообще не видит. Права на запуск скрипта выставил. Из командной строки запускал так ./onConnect.pl
и так
perl onConnect.pl
работает и так и так, а через mpd не хочет. В чем может быть проблема?

Re: Не работает perl up-script скрипт в mpd5

Добавлено: 2009-03-13 14:47:26
paradox
лог смотрите

Re: Не работает perl up-script скрипт в mpd5

Добавлено: 2009-03-13 14:53:00
blackjackchik
Смотрел, в логе нет ни одного упоминания об этом скрипте.
Вот лог

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

Mar 13 12:34:30 router mpd: Incoming PPPoE connection request via vlan23: for service "" from 00:13:8f:89:55:6b
Mar 13 12:34:30 router mpd: [Link-1] Accepting PPPoE connection
Mar 13 12:34:30 router mpd: [Link-1] Link: OPEN event
Mar 13 12:34:30 router mpd: [Link-1] LCP: Open event
Mar 13 12:34:30 router mpd: [Link-1] LCP: state change Initial --> Starting
Mar 13 12:34:30 router mpd: [Link-1] LCP: LayerStart
Mar 13 12:34:30 router mpd: [Link-1] PPPoE: connection successful
Mar 13 12:34:30 router mpd: [Link-1] Link: UP event
Mar 13 12:34:30 router mpd: [Link-1] LCP: Up event
Mar 13 12:34:30 router mpd: [Link-1] LCP: state change Starting --> Req-Sent
Mar 13 12:34:30 router mpd: [Link-1] LCP: SendConfigReq #1
Mar 13 12:34:30 router mpd: [Link-1]   PROTOCOMP
Mar 13 12:34:30 router mpd: [Link-1]   MRU 1492
Mar 13 12:34:30 router mpd: [Link-1]   MAGICNUM 4ced9164
Mar 13 12:34:30 router mpd: [Link-1]   AUTHPROTO CHAP MSOFTv2
Mar 13 12:34:30 router mpd: [Link-1] LCP: rec'd Configure Request #1 (Req-Sent)
Mar 13 12:34:30 router mpd: [Link-1]   MRU 1492
Mar 13 12:34:30 router mpd: [Link-1]   MAGICNUM 7bce2fb8
Mar 13 12:34:30 router mpd: [Link-1] LCP: SendConfigAck #1
Mar 13 12:34:30 router mpd: [Link-1]   MRU 1492
Mar 13 12:34:30 router mpd: [Link-1]   MAGICNUM 7bce2fb8
Mar 13 12:34:30 router mpd: [Link-1] LCP: state change Req-Sent --> Ack-Sent
Mar 13 12:34:30 router mpd: [Link-1] LCP: rec'd Configure Reject #1 (Ack-Sent)
Mar 13 12:34:30 router mpd: [Link-1]   PROTOCOMP
Mar 13 12:34:30 router mpd: [Link-1] LCP: SendConfigReq #2
Mar 13 12:34:30 router mpd: [Link-1]   MRU 1492
Mar 13 12:34:30 router mpd: [Link-1]   MAGICNUM 4ced9164
Mar 13 12:34:30 router mpd: [Link-1]   AUTHPROTO CHAP MSOFTv2
Mar 13 12:34:30 router mpd: [Link-1] LCP: rec'd Configure Ack #2 (Ack-Sent)
Mar 13 12:34:30 router mpd: [Link-1]   MRU 1492
Mar 13 12:34:30 router mpd: [Link-1]   MAGICNUM 4ced9164
Mar 13 12:34:30 router mpd: [Link-1]   AUTHPROTO CHAP MSOFTv2
Mar 13 12:34:30 router mpd: [Link-1] LCP: state change Ack-Sent --> Opened
Mar 13 12:34:30 router mpd: [Link-1] LCP: auth: peer wants nothing, I want CHAP
Mar 13 12:34:30 router mpd: [Link-1] CHAP: sending CHALLENGE #1 len: 21
Mar 13 12:34:30 router mpd: [Link-1] LCP: LayerUp
Mar 13 12:34:30 router mpd: [Link-1] CHAP: rec'd RESPONSE #1 len: 57
Mar 13 12:34:30 router mpd: [Link-1]   Name: "123"
Mar 13 12:34:30 router mpd: [Link-1] AUTH: Trying INTERNAL
Mar 13 12:34:30 router mpd: [Link-1] AUTH: INTERNAL returned: undefined
Mar 13 12:34:30 router mpd: [Link-1] CHAP: Auth return status: undefined
Mar 13 12:34:30 router mpd: [Link-1] CHAP: Response is valid
Mar 13 12:34:30 router mpd: [Link-1] CHAP: Reply message: S=6F7D16547EB5F81F86381DF47F485F0CD5A0F86F
Mar 13 12:34:30 router mpd: [Link-1] CHAP: sending SUCCESS #1 len: 46
Mar 13 12:34:30 router mpd: [Link-1] LCP: authorization successful
Mar 13 12:34:30 router mpd: [Link-1] Link: Matched action 'bundle "Bundle" ""'
Mar 13 12:34:30 router mpd: [Link-1] Creating new bundle using template "Bundle".
Mar 13 12:34:30 router mpd: [Bundle-1] Bundle: Interface ng0 created
Mar 13 12:34:30 router mpd: [Link-1] Link: Join bundle "Bundle-1"
Mar 13 12:34:30 router mpd: [Bundle-1] Bundle: Status update: up 1 link, total bandwidth 64000 bps
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: Open event
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: state change Initial --> Starting
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: LayerStart
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: Up event
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: state change Starting --> Req-Sent
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: SendConfigReq #1
Mar 13 12:34:30 router mpd: [Bundle-1]   IPADDR 192.168.1.1
Mar 13 12:34:30 router mpd: [Bundle-1]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: rec'd Configure Request #1 (Req-Sent)
Mar 13 12:34:30 router mpd: [Bundle-1]   IPADDR 0.0.0.0
Mar 13 12:34:30 router mpd: [Bundle-1]     NAKing with 192.168.1.12
Mar 13 12:34:30 router mpd: [Bundle-1]   PRIDNS 0.0.0.0
Mar 13 12:34:30 router mpd: [Bundle-1]     NAKing with 172.16.23.124
Mar 13 12:34:30 router mpd: [Bundle-1]   SECDNS 0.0.0.0
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: SendConfigRej #1
Mar 13 12:34:30 router mpd: [Bundle-1]   SECDNS 0.0.0.0
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: rec'd Configure Reject #1 (Req-Sent)
Mar 13 12:34:30 router mpd: [Bundle-1]   COMPPROTO VJCOMP, 16 comp. channels, no comp-cid
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: SendConfigReq #2
Mar 13 12:34:30 router mpd: [Bundle-1]   IPADDR 192.168.1.1
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: rec'd Configure Request #2 (Req-Sent)
Mar 13 12:34:30 router mpd: [Bundle-1]   IPADDR 0.0.0.0
Mar 13 12:34:30 router mpd: [Bundle-1]     NAKing with 192.168.1.12
Mar 13 12:34:30 router mpd: [Bundle-1]   PRIDNS 0.0.0.0
Mar 13 12:34:30 router mpd: [Bundle-1]     NAKing with 172.16.23.124
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: SendConfigNak #2
Mar 13 12:34:30 router mpd: [Bundle-1]   IPADDR 192.168.1.12
Mar 13 12:34:30 router mpd: [Bundle-1]   PRIDNS 172.16.23.124
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: rec'd Configure Ack #2 (Req-Sent)
Mar 13 12:34:30 router mpd: [Bundle-1]   IPADDR 192.168.1.1
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: state change Req-Sent --> Ack-Rcvd
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: rec'd Configure Request #3 (Ack-Rcvd)
Mar 13 12:34:30 router mpd: [Bundle-1]   IPADDR 192.168.1.12
Mar 13 12:34:30 router mpd: [Bundle-1]     192.168.1.12 is OK
Mar 13 12:34:30 router mpd: [Bundle-1]   PRIDNS 172.16.23.124
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: SendConfigAck #3
Mar 13 12:34:30 router mpd: [Bundle-1]   IPADDR 192.168.1.12
Mar 13 12:34:30 router mpd: [Bundle-1]   PRIDNS 172.16.23.124
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: state change Ack-Rcvd --> Opened
Mar 13 12:34:30 router mpd: [Bundle-1] IPCP: LayerUp
Mar 13 12:34:30 router mpd: [Bundle-1]   192.168.1.1 -> 192.168.1.12
Mar 13 12:34:30 router mpd: [Bundle-1] IFACE: No interface to proxy arp on for 192.168.1.12
Mar 13 12:34:30 router mpd: [Bundle-1] IFACE: Up event

Re: Не работает perl up-script скрипт в mpd5

Добавлено: 2009-03-13 15:07:36
paradox
попробуйте в каталог etc/mpd5/ кинуть запускаемые скрипты и пописать пути
хз как это может повлиять но у народа все работает
проверить нет времени

Re: Не работает perl up-script скрипт в mpd5

Добавлено: 2009-03-13 15:10:18
paradox
подключись к консоли и посмотри
IfaceStat команду

Re: Не работает perl up-script скрипт в mpd5

Добавлено: 2009-03-13 15:14:45
blackjackchik
Не помогло. :-(

Re: Не работает perl up-script скрипт в mpd5

Добавлено: 2009-03-13 15:19:31
blackjackchik

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

[Link-1] show iface

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

Interface configuration:
	Name            : ng0
	Maximum MTU     : 1500 bytes
	Idle timeout    : 0 seconds
	Session timeout : 0 seconds
	Event scripts
	  up-script     : "/usr/local/etc/mpd5/onConnect.pl"
	  down-script   : "/usr/local/etc/down.sh"
Interface options:
	on-demand 	disable
	proxy-arp 	enable
	tcpmssfix 	disable
	tee       	disable
	nat       	disable
	netflow-in	disable
	netflow-out	disable
	ipacct    	disable
Interface status:
	Admin status    : CLOSED
	Status          : UP
	Session time    : 63 seconds
	MTU             : 1492 bytes
	IP Addresses    : 192.168.1.1/32 -> 192.168.1.12
Dynamic routes via peer:
IPFW pipes:
IPFW queues:
IPFW tables:
IPFW rules:
Traffic filters:
Traffic limits:

Re: Не работает perl up-script скрипт в mpd5

Добавлено: 2009-03-13 15:23:53
paradox

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

ls -l /usr/bin/perl
ls -l /usr/local/etc/mpd5/onConnect.pl

Re: Не работает perl up-script скрипт в mpd5

Добавлено: 2009-03-13 15:29:57
blackjackchik
Да нет здсь все нормально.

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

lrwxr-xr-x  1 root  wheel    24B Mar  6 09:32 /usr/bin/perl -> /usr/local/bin/perl5.8.9
-rwxr-xr-x  1 root  admin   876B Mar 13 12:33 /usr/local/etc/mpd5/onConnect.pl

Re: Не работает perl up-script скрипт в mpd5

Добавлено: 2009-03-13 15:42:13
paradox
загадка какая то))))
версию mpd покажите

Re: Не работает perl up-script скрипт в mpd5

Добавлено: 2009-03-13 15:48:23
blackjackchik
[root@router /home/admin]# mpd5 -v
Version 5.2 (root@router.cn.ua 17:29 8-Jan-2009)

Re: Не работает perl up-script скрипт в mpd5

Добавлено: 2009-03-13 16:32:12
blackjackchik
Вычислил что не конектится к базе при подключении.