Jump to content

Проблем с queue скрипт и x86 mt


terminated

Recommended Posts

Здравейте , ето и проблема - скрипта си работи на рутерборд , но на пц стига до някъде и дава таймаут !?!?, когато няма никакъв трафик на машината успява да ги добави всичките. Сложих лан карта само за телнет скрипта , която е вързана директно за машината на която се изпълнява , но проблема си остава.

Ето и скрипта:

#!/usr/bin/perl

use Data::Dumper;

use Net::Telnet ();

$telnet1 = new Net::Telnet (

Host => "1.1.1.2",

Timeout => 20,

Dump_log => "./log",

Prompt => '/\[.+\] > $/');

$telnet1->login("user", "passwor");

my $sth; my @row; my @subnet; my $gateway; my $login; my $ip; my $speed; my $block;

open(DATA, "</var/digital/sdp_INT/SDP_S15.TXT");

while (<DATA>)

{

        my($line) = $_;

        chomp($line);

        if ($line =~ /([a-zA-Z0-9\_-]+)\|(\d)\|(\d+\.\d+\.\d+\.\d+)\|(\d+)/) {

                $login = $1;

                $block = $2;

                $ip = $3;

                $speed = $4*1000;

              if ($block == '0')

              {

              $telnet1->cmd("/queue simple add name=$login target-address=$ip max-limit=$speed/$speed interface=all place-before=all");

              }

              if ($block == '1')

              {

              $telnet1->cmd("/queue simple remove $login");

              }

        }

}

$telnet1->close;

Link to comment
Share on other sites

  • Administrator

С коя версия на МТ?

сериозно ли ползваш 1.1.1.2 за свръзка

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Link to comment
Share on other sites

Пробвах първо с 4.13 , а сега съм с последната бета и при двете резултата е един. С лиценз левел 4 съм ,ако има значение

Link to comment
Share on other sites

  • Administrator

какво показва лога на МТ ?

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Link to comment
Share on other sites

Ами сега изтрих всичките queue (180) след пускането на 160-тото даде timeout и след няколко пускания на скрипта продалжават да са 160.. В лога от последвалите пускания на скрипта има само user admin log in / log out

Link to comment
Share on other sites

Има ли начин да си взема queue-тата през radius ? На микротика ползвам само nat и queue simple

Link to comment
Share on other sites

  • Administrator

Има вариант през API но там не вдявам много

освен ако не ползваш вградения usermanager

я разясни целевото приложение на скрипта и периода на изпълнението

защото микротика може да прави същите неща и без външна намеса 

http://mikrotik-bg.net/index.php?topic=2168.0

http://mikrotik-bg.net/index.php?topic=2677.0

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Link to comment
Share on other sites

И аз се чудих на API-то , но не вдянах хич  :-\ . Иначе не ползвам вградения мениджър ,а user-ите ги взимам от един текстов файл и общо взето неплатилите ги спирам , като им изтрия queue-to и всички остават в един общ малъй шейпър...

Link to comment
Share on other sites

  • Administrator

http://forum.mikrotik.com/viewtopic.php?f=9&t=22744

чета тук и не зацепвам дано имаш по голям късмет с това API 

аз бих предпочел директно блокиране по мак адрес  :o

а и все още обичам да цъкам с мишката, някак по визуално ми е 

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Link to comment
Share on other sites

Това апи не е за мен  :o Идея за скрипт подобен на моя за блокиране по мак ? Горе-долу ми е ясно как може да стане , но как да блокирам макове , които не са ми в базата ?

Link to comment
Share on other sites

Пак закъсах .. предния проблем се оказа от "place-before=all". Реших да си блокирам юзерите по мак адрес и си преправих скрипта по този начин:

#!/usr/bin/perl

use Net::Telnet ();

$telnet1 = new Net::Telnet (

Host => "1.1.1.2",

Timeout => 20,

Prompt => '/\[.+\] > $/');

$telnet1->login("user", "pass");

my $ip; my $block; my $mac;

open(DATA, "</var/digital/sdp_INT/SDP_S15.TXT");

while (<DATA>)

{

        my($line) = $_;

        chomp($line);

        if ($line =~ /([a-zA-Z0-9\_-]+)\|(\d)\|(\d+\.\d+\.\d+\.\d+)\|(\d+)\|([a-zA-Z0-9\_:-]+)/) {

                $block = $2;

                $ip = $3;

                $mac = $5;

              if ($block == '0')

              {

              $telnet1->cmd("/ip arp add address=$ip mac-address=$mac interface=339");

              }

              if ($block == '1')

              {

              $telnet1->cmd("/ip arp add address=$ip mac-address=01:01:01:01:01:01 interface=339");

              }

        }

}

$telnet1->close;

Скрипта си работи добре , НО по този начин , ако се смени мак адреса на съществуващ юзер микротика не го replace,а си остава старият.

EDIT: май намериш решението с - /ip arp set [find address=()] mac-address=

Link to comment
Share on other sites

И отново за пореден път същият проблем  :) /ip arp add address=$ip mac-address=$mac interface=339 .. никакъв проблем 960 арпа от раз , /ip arp set [find address=()] mac-address= 10-тина правила и любимия timeout..

Link to comment
Share on other sites

  • Administrator

Защо не го пренапишеш тоя скрипт да си се пуска директно в машината не отвън

Харесай поста ^^^
acer.gif htc.gifsigpic4024_2.gif

Форумът е за взаимопомощ а не за свършване на чужда работа


ɹɐǝɥ uɐɔ noʎ ǝɹoɯ ǝɥʇ 'ǝɯoɔǝq noʎ ɹǝʇǝınb ǝɥʇ

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.