VicM Posted December 25, 2006 Posted December 25, 2006 Всем доброго времени суток! Есть проблема - нужно иногда дропать руками сессию пользователю. Пользователь работает по 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"? Заранее благодарен!!! Вставить ник Quote
ingress Posted August 10, 2007 Posted August 10, 2007 (edited) а обновиться до mpd4.2.2 и сбрасывать с помощью посылки атрибута mpd-drop-user через радиус никак? Edited August 10, 2007 by ingress Вставить ник Quote
andriko Posted August 10, 2007 Posted August 10, 2007 а обновиться до mpd4.2.2 и сбрасывать с помощью посылки атрибута mpd-drop-user через радиус никак? не очень удобно... в телнете у меня хватает bundle "номе бандла", пуаза, close Вставить ник Quote
malor Posted August 19, 2007 Posted August 19, 2007 Скачал mpd-4.2.2.tar.gz с http://www.freebsd.org/cgi/ports.cgi?query=mpd&stype=all&sektion=net Положил в /usr/ports/distfiles, зашел в /usr/ports/net/mpd4, набрал # make система полезла в инет за mpd4-4.0b4.tar.gz. Как мне поставить mpd 4.2.2 ? FreeBSD 6.2 Вставить ник Quote
Blackmore Posted August 19, 2007 Posted August 19, 2007 порты апгрейдить не пробовали ? Вставить ник Quote
Илья Дмитриевич Posted October 22, 2007 Posted October 22, 2007 апну эту тему... выложите кто нить рабочий perl скрипт для дропа через telnet Вставить ник Quote
Bushi Posted October 23, 2007 Posted October 23, 2007 (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 October 23, 2007 by Bushi Вставить ник Quote
Илья Дмитриевич Posted October 23, 2007 Posted October 23, 2007 спасибо всё заработало в моей конфигурации правда оно выглядело так bundle pptp".$nasport close Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.