The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"pppd не убивает   отключенных "
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы OpenNET: Виртуальная конференция (Public)
Изначальное сообщение [Проследить за развитием треда]

"pppd не убивает   отключенных "
Сообщение от DOE666 Искать по авторуВ закладки(ok) on 27-Окт-04, 15:12  (MSK)
Проблема вот такая у меня
когда пользователи отключатся ( как я понял,  несовсем корректно, ресетом или когда  физически  рвется связь с серваком )  то  мой ВПН сервак   не  обрывает сессию   и в  процессах (ps –ax) остается висеть соединение с ними. Как настроить, чтобы они сами отваливались  ???  set timeout  тут не подходит

а то народ повторно  подключается, появляется второе  подключение с аналогичным виртуальным ip  и у них ,соответственно ничего не работает

приходится из консоли вычислять  номер их ppp-сессии  а потом прибивать ее вручную

стоит у меня poptop 1.1.4  и pptpd 1.4.2

  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "pppd не убивает   отключенных "
Сообщение от Duxx emailИскать по авторуВ закладки on 27-Окт-04, 18:13  (MSK)
была такая проблема, решения не нашел, так как иногда они отрубаются, а иногда и нет, в итоге написал скрипт, который раз в пять минут проверяет, и вырубает повисшие соединения.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "pppd не убивает   отключенных "
Сообщение от DOE666 Искать по авторуВ закладки(ok) on 27-Окт-04, 21:56  (MSK)

>была такая проблема, решения не нашел, так как иногда они отрубаются, а
>иногда и нет, в итоге написал скрипт, который раз в пять
>минут проверяет, и вырубает повисшие соединения.


ты МОЗГ :)
лично я  на такое  не способен :(

а глюк  действительно  не регулярный.. то он есть то его нет .. появился с увеличением количества подключенных к серваку юзверей...  очень сильно мешает   нормальной работе :((

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "pppd не убивает   отключенных "
Сообщение от tangar Искать по авторуВ закладки(ok) on 28-Окт-04, 10:00  (MSK)
>была такая проблема, решения не нашел, так как иногда они отрубаются, а
>иногда и нет, в итоге написал скрипт, который раз в пять
>минут проверяет, и вырубает повисшие соединения.

Была у меня такая-же проблема, но с PPPoE, я её практически решил
http://www.opennet.me/base/net/rp_pppoe.txt.html

Но всё-же иногда, очень редко такая штука(завис pppd) случается... :(
Поэтому интересно:
А по какому признаку ты определяешь, что сессия зависла?

Скриптом не поделишься?

  Рекомендовать в FAQ | Cообщить модератору | Наверх

4. "pppd не убивает   отключенных "
Сообщение от DOE666 Искать по авторуВ закладки(ok) on 28-Окт-04, 17:08  (MSK)

>Скриптом не поделишься?

у меня еще почемуто  создаются ppp110, ppp141  и т.д.  когда   диапазон  в районе  ppp0-ppp100   наполовину свободен  :(((

  Рекомендовать в FAQ | Cообщить модератору | Наверх

5. "pppd не убивает   отключенных "
Сообщение от Duxx emailИскать по авторуВ закладки on 29-Окт-04, 07:21  (MSK)
>>была такая проблема, решения не нашел, так как иногда они отрубаются, а
>>иногда и нет, в итоге написал скрипт, который раз в пять
>>минут проверяет, и вырубает повисшие соединения.
>
>Была у меня такая-же проблема, но с PPPoE, я её практически решил
>
>http://www.opennet.me/base/net/rp_pppoe.txt.html
>
>Но всё-же иногда, очень редко такая штука(завис pppd) случается... :(
>Поэтому интересно:
>А по какому признаку ты определяешь, что сессия зависла?
>
>Скриптом не поделишься?
у меня частный случай, посему проблему решил так, беру список ppp, так как у нас в системе адреса строго привязаны к пользователю, узнаю pppшный адрес, делаю запрос к биллинговой системе и она выдает мне локальный адрес для этого клиента, затем узнаю netstat-том есть ли подключение по этому адресу по порту vpn сервера, если нету убиваю этот ppp нафиг.
--------------------------
#!/bin/bash                                                                      
                                                                                  
##############################################################################    
# Ищем зависшие ppp , а также те соединения которые отрыты не локального ip адреса
# пользователя соединение и прибиваем их нафиг чтобы клиенты смогли зайти        
##############################################################################    
SUCCESS=0                                                                        
lockfile=/var/lock/check_ppp                                                      
getlocalip=/netup/scripts/getlocalip                                              
                                                                                  
if [ -e $lockfile ]                                                              
then                                                                              
    exit;                                                                        
fi                                                                                
                                                                                  
touch $lockfile;                                                                  
                                                                                  
# проверяем не зависло ли соединение                                              
for if_ppp in `ifconfig | grep ppp | cut -d\  -f1 | tr -d " "`                    
do                                                                                
# Находим ip адрес данного соединения                                                  
if_ppp_ip=""`ifconfig $if_ppp | grep inet | cut -d : -f 3 | cut -d \  -f 1 | tr -d " "`;
if [ "$if_ppp_ip" != "" ]                                                              
then                                                                                    
# Проверяем все локальные ип с которых могло быть подключение
flagtokill=1;                                                
for if_ppp_local_ip in ""`$getlocalip $if_ppp_ip`            
do                                                          
    #echo $if_ppp_local_ip;                                  
    if [ "if_ppp_local_ip" != "" ]                          
    then                                                    
is_connect=""`netstat -anlt | tr -s " " | grep "\:1723 $if_ppp_local_ip\:" | grep ESTABLISHED`;
                if [ "$is_connect" != "" ]
                then                      
                    flagtokill=0;        
                fi;                      
            fi;                          
        done;                            
if [ "$flagtokill" == "1" ]
then                      
# находим ип адрес даного соединения так как пока мы проверяли он мог отрубиться
if_ppp_ip_stop=""`ifconfig $if_ppp | grep inet | cut -d : -f 3 | cut -d \  -f 1 | tr -d " "`;
if [ "$if_ppp_ip_stop" == "$if_ppp_ip" ]
then                                    
echo `date +%b%t%e%t%T`" kill pppd  $if_ppp_ip need ip $if_ppp_local_ip"  >> /var/log/control.log;
                pid_stops=""`cat /var/run/$if_ppp.pid`;
                kill -s SIGKILL $pid_stops;            
            fi;                                        
        fi;                                            
    fi;                                                
done;                                                  
------------------------
основной момент это вызов скрипта $getlocalip
он обращается к биллингу, так что нефакт что данное решение вам подойдет.
хотя решение и громоздкое но отрабатывает довольно шустро.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

6. "pppd не убивает   отключенных "
Сообщение от EvilX emailИскать по авторуВ закладки(??) on 29-Окт-04, 09:20  (MSK)
Я решил такую пробдему банально. В ppp.conf
enable lqr
set lqrperiod 15

После этого нормально отключается.

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру