URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 72971
[ Назад ]

Исходное сообщение
"зависание tun интерфейсов  при pppoed"

Отправлено pag , 19-Мрт-07 18:55 
а кто как борется (поборол) зависание интерфейсов tun при раздаче PPPoE ?

на столе поковырял не висло, поставил тазик в продакшен и началось, клиент отпал а интерфес на сервере активен и естественно пользователь подключиться заново не может…

Как вариант решения как можно после поднятия ППП запустить скрипт и передать ему айпи пользователя ?

6.2-BETA2

на 5.3-RELEASE-p5 как-то реже висло, какие будут варианты ?

мои конфиги

default:
   enable lqr
   set lqrperiod 15
   set echoperiod 5
   enable echo
   set server /var/tmp/pppuser%d "" 0177
   set mtu max 1492
   set mtu 1492
   set mru max 1492
   set mru 1492
   set speed sync
   set timeout 0
   enable tcpmssfixup
   allow mode direct
   enable chap
   enable deflate
   accept deflate
   disable acfcomp protocomp
   deny acfcomp
   disable vjcomp
   deny vjcomp
   set dns xxx.xxx.xxx.xxx
   accept dns

pppoeserver:
   set ifaddr xxx.xxx.xxx.xxx
   set radius /etc/ppp/radius.conf


Содержание

Сообщения в этом обсуждении
"зависание tun интерфейсов  при pppoed"
Отправлено blk , 20-Мрт-07 13:40 
>а кто как борется (поборол) зависание интерфейсов tun при раздаче PPPoE ?
>
>
>
>на столе поковырял не висло, поставил тазик в продакшен и началось, клиент
>отпал а интерфес на сервере активен и естественно пользователь подключиться заново
>не может…
>

Запускать по крону.

#!/usr/bin/perl

$ppp="ifconfig | grep -A3 8050 | grep PID";

foreach (`$ppp`)

{

($a1,$a2,$a3,$pid)=split(' ',$_);

`kill -9 $pid`;

}


"зависание tun интерфейсов  при pppoed"
Отправлено Анатолий , 19-Фев-09 16:22 
>[оверквотинг удален]
>
>foreach (`$ppp`)
>
>{
>
>($a1,$a2,$a3,$pid)=split(' ',$_);
>
>`kill -9 $pid`;
>
>}

Решается проблема по другому.
Необходимо, чтобы в ppp.conf присутствовали следующие строки

pppoe-in:
set timeout 0
lcp-echo-interval 20
lcp-echo-failure 2

Про эти опции написанов PPP-HOWTO следующее:
  #lcp-echo-interval <n>
  # Если эта опция назначена, pppd будет отправлять кадр LCP echo-request
  # удаленной стороне каждые n секунд. Под Linux, echo-request отправляется
  # когда пакеты не принимаются от удаленной стороны n секунд. Обычно
  # удаленная сторона должна отвечать на echo-request отправкой echo-reply.
  # Эта опция может быть использована с опцией lcp-echo-failure для
  # определения что удаленная сторона больше не соединена.
  
  #lcp-echo-failure <n>
  # Если эта опция задана, pppd будет считать, что связи с peer нет, если n
  # LCP echo-requests отправлены без приема правильных LCP echo-reply.
  # Если это случилось, pppd завершит связь. Использование этой опции
  # требует ненулевого значения для параметра lcp-echo-interval.
  # Эта опция может быть использована, чтобы разрешить pppd завершать связь,
  # если физическое соединение отсутствует (напр, модем бросил трубку) в
  # ситуациях, когда доступны линии управления модемом.

В результате на все поднятые интерфейсы tun каждые 20 сек. будут посылаться LCP-кадры для контроля состояния соединения. Если ответов для двух подряд посланных кадров LCP  нет, то соединение считается потерянным, связь будет завершена, а интерфейс tun освобожден. Зависания нет.