Jump to content

Recommended Posts

Posted

Всем доброго времени суток!

 

Есть проблема - нужно иногда дропать руками сессию пользователю. Пользователь работает по PPPoE.

 

Раньше, когда был mpd3.18, сессия дропалась вызовом скрипта из Оракла.

 

Кусок старого крипта:

$mpd = new Net::Telnet(Prompt => '/[%#>] $/', Timeout => 60);

$mpd->open(Host => $nasip, Port => $nastelnetport);

$mpd->print("link pppoe$nasport\n");

$mpd->print("close iface\n");

$mpd->print("close ipcp\n");

$mpd->print("close ccp\n");

$mpd->print("close ecp\n");

$mpd->print("close bund\n");

$mpd->print("close lcp\n");

$mpd->print("close phys\n");

$mpd->print("exit\n");

 

Сейчас следую той же поледовательности, согласно show layers:

[237pppoe8] show layers

[237pppoe8] CONSOLE: mpd: show layers

Name Description

---- -----------

iface System interface

ipcp IPCP: IP control protocol

ipv6cp IPV6CP: IPv6 control protocol

ccp CCP: compression ctrl prot.

ecp ECP: encryption ctrl prot.

bund Multilink bundle

lcp LCP: link control protocol

phys Physical link layer

 

и дальше close [layer]

 

В принципе, как и в старом скрипте.

 

В итоге получаю:

ifconfig ng8

ng8: flags=88d1<UP,POINTOPOINT,RUNNING,NOARP,SIMPLEX,MULTICAST> mtu 1492

+

[237pppoe8] CONSOLE: mpd: show iface

Interface ng8:

Status : CLOSED

IP Addresses : 10.5.0.1/32 -> <CLIENT_IP>

Maximum MTU : 1492 bytes

Current MTU : 1492 bytes

Idle timeout : 0 seconds

Session timeout : 0 seconds

Event scripts: UP: "/usr/local/etc/mpd4/upiface.sh" DOWN: "/usr/local/etc/mpd4/downiface.sh"

Static routes via peer:

Interface level options:

Name Self Peer

----------------------------------------

on-demand disable

proxy-arp disable

tcpmssfix enable

 

Радиусу отсылается "отлуп", в котором указана причина разрыва сессии - NAS-Request

Потом клиент цепляется на соседний свободный интерфейс и как-будто работает, но пакеты на его интерфейсе не идут дальше mpd.

Что можете посоветовать в решении задачи: "как дропнуть сессию пользователя через консоль mpd4"?

 

Заранее благодарен!!!

  • 7 months later...
Posted
а обновиться до mpd4.2.2 и сбрасывать с помощью посылки атрибута mpd-drop-user через радиус никак?

не очень удобно...

 

в телнете у меня хватает bundle "номе бандла", пуаза, close

  • 2 weeks later...
  • 2 months later...
Posted (edited)

#!/usr/local/bin/perl
$hostname="127.0.0.1";
$port="5005";
if( $ARGV[0] eq '' ) { die 'Usage: nasport'; };
$nasport=$ARGV[0];
use Net::Telnet ();

$t = new Net::Telnet (Timeout => 2,Port => $port,Binmode => '\015\012',
                               Prompt => '/\[\]/');
$t->open("$hostname");
$t->login("mpd", "password");

$t->print("bundle bnd".$nasport);
$t->print("");
$t->print("close");
$t->print("");
$t->print("exit");
$t->print("");
$t->close();
exit 0;

 

Бандлы в конфиге именуются как bndN, где N - номер бандла, совпадающий с номером NAS port.

Edited by Bushi

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...
На сайте используются файлы cookie и сервисы аналитики для корректной работы форума и улучшения качества обслуживания. Продолжая использовать сайт, вы соглашаетесь с использованием файлов cookie и с Политикой конфиденциальности.