Jump to content
Калькуляторы

rp-pppoe-3.10+pppd2.4.2=мёртвые сессии

Всем привет. Имеется сабжевая связка, pppoe-server работает в режиме ядра.

Всё работает нормально, но некоторые pppd-процессы, полученные в результате некорректного подключения клиента (чаще всего - неверное имя или пароль), остаются висеть и не умирают, несмотря на idle 1200 в конфиге.

То есть, если юзер нормально подключился, на серваке поднялся соответствующий интерфейс, например, ppp5, выдалась айпиха, и имеется процесс pppd - ps aux показывает что-то в таком духе:

pppd plugin /etc/ppp/plugins/rp-pppoe.so nic-eth0 rp_pppoe_sess 123:00:11:22:33:44:55 rp_pppoe_service Inet 10.1.1.1:10.1.1.139 nodetach noaccomp nobsdcomp nodeflate nopcomp novj novjccomp default-asyncmap

Соответственно, когда клиент отключается, ppp5 разрывается, и вышеназванный процесс получает SIG 15 - то есть, всё замечательно.

Но - бывает, что интерфейс не поднялся, к примеру, не прошла аутентификация радиуса. Тогда интерфейс pppX не поднимается, клиент, естественно, не подключился, но аналогичный процесс pppd запускается - и его уже только киллом сносить. При ~150-200 одновременных соединений таких висячих сессий может накапливаться ещё до 200, а то и больше, и как их отслеживать - ума не приложу.... А крови портят - огого как =\

Кто подскажет, как это можно побороть?

В messages есть такое:

Session 123 created for client 00:11:22:33:44:55 (10.16.0.139) on eth0 using Service-Name 'Inet'

...

Session 123 closed for client 00:11:22:33:44:55 (10.16.0.139) on eth0

 

Но во-первых, что тут, что в ps для процесса pppd фигурируют свои IP-адреса, которые присваиваются для pppd - клиенту идёт айпишка, которую он получает от радиус-сервера, да ив во-вторых, с номерами сессий непонятки...

Видел подобную проблему здесь, проделал всё так, как там, пробовал свои разные конфиги - но проблема не исчезла.

Вот мой файлик pppoe-server-options:

require-chap
ktune
idle 1200
lcp-echo-interval 10
lcp-echo-failure 2
ms-dns 10.1.0.1
nobsdcomp
noendpoint
noipdefault
noipx
novj
logfile /var/log/ppp/pppd/log
plugin /etc/ppp/plugins/radius.so
radius-config-file /etc/radiusclient/radiusclient.conf

Очень надеюсь на помощь!

Share this post


Link to post
Share on other sites

Так а попробовать для начала pppd из cvs (там версия уже как минимум 2.4.4b1)

Share this post


Link to post
Share on other sites

У меня конфиг такой

require-pap

refuse-chap

refuse-mschap

require-mschap-v2

ms-dns *.*.*.*

mtu 1500

mru 1500

proxyarp

login

nobsdcomp

novj

nologfd

nolog

kdebug 0

nodetach

nodeflate

receive-all

 

lcp-echo-interval 15

lcp-echo-failure 3

ipcp-accept-remote

ipcp-accept-local

 

plugin /usr/lib/pppd/2.4.4/radius.so

plugin /usr/lib/pppd/2.4.4/radattr.so

 

rp-pppoe-3.10-r1 и ppp-2.4.4-r21 (Gentoo).

Работает вроде все хорошо.

Share this post


Link to post
Share on other sites

С ррр-2.4.2 были проблемы. Решалось скриптом прибивающим мертвые сессии, помещенным в крон.

Share this post


Link to post
Share on other sites
С ррр-2.4.2 были проблемы. Решалось скриптом прибивающим мертвые сессии, помещенным в крон
Крон кроном, я не могу найти принцип, как эти сессии находить - если вручную сидеть,смотреть, то видно, что, например, куча сессий с одним маком висят - тогда понятно, что это неудачные попытки одного и того же юзера зайти - и можно сносить их, но предварительно нужно проверить, что он всё-таки не подключился и не прошёл аутентификацию нормально - тогда одна сессия точно не мёртвая и нужно убить все сессии, кроме этой.

 

А другие версии пробовал - и 2.4.3, и 2.4.4 - там тот же косяк, плюс некоторые нестабильности вылазят

Share this post


Link to post
Share on other sites

Если память не изменяет, сравнивались ps и ifconfig

Share this post


Link to post
Share on other sites

Всё, наконец-то разобрался - снёс полностью pppd и rp-pppoe, установил заново rp-pppoe 3.10 и pppd 2.4.4. А то, как выяснилось, при предыдущих установках использовался какой-то древний плагин, который и глючил.

Share this post


Link to post
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
Sign in to follow this