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

FreeBSD 8.1, ограничение pptp сессий

Добрый день

 

Установил FreeBSD 8.1-STABLE i386 в качестве впн-сервера для

локалки. Подключение pptp обрабатывается poptop-1.3.4_2 из портов.

 

Проблема в том, что после подключения порядка 100 пользователей

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

ошибка 800 - невозможно подключиться к серверу.

После /usr/local/etc/rc.d/pptpd restart открытые сессии остаются,

количество вновь созданных не может быть более 100.

Помогает только рестарт процесса pptpd. Причем общее

количество туннелей около 300.

 

pptpd уже пересобрал с опцией #define CONNECTIONS_DEFAULT 1000 в defaults.h,

до этого было 100. В pptpd.conf есть строка connections 1000. Сам процесс

запущен с ключем -C 1000.

 

По исходникам при превышении лимита должно выдаваться

"MGR: connections limit (%d) reached, extra IP addresses ignored"

Но такого в логах не вижу.

 

Количество процессов, порожденных pptp, смотрю через ps -d.

Доходит до 198 и дальше не увеличивается.

 

# ps -d | grep '| |' | grep 'pptp' | wc -l

198

 

 

Вот часть вывода:

 

62662 ?? S 0:00,45 |-- pptpctrl : pptpd [192.168.120.19:8000 - 2180] (pptpctrl)

62663 ?? S 0:01,14 | `-- ppp: login1 tun176 х.х.х.х pptp (ppp)

62910 ?? S 0:06,15 |-- pptpctrl : pptpd [192.168.112.169:4000 - 5880] (pptpctrl)

62911 ?? S 0:11,13 | `-- ppp: login2 tun7 х.х.х.х pptp (ppp)

63103 ?? Ss 0:00,18 |-- pptpd -C 1000

222 ?? S 0:02,44 | |-- pptpctrl : pptpd [192.168.126.237:C000 - 2E80] (pptpctrl)

223 ?? S 0:04,37 | | `-- ppp: login3 tun149 х.х.х.х pptp (ppp)

236 ?? I 0:00,50 | |-- pptpctrl : pptpd [192.168.115.225:F258 - 3080] (pptpctrl)

237 ?? S 0:01,06 | | `-- ppp: login3 tun287 х.х.х.х pptp (ppp)

 

Видны 2 логина от уже прибитого pptp, и два от текущего.

 

Последний созданный процесс

3064 ?? I 0:00,00 | |-- pptpctrl : pptpd [192.168.126.135] (pptpctrl)

 

Почему-то без указания портов. Новые пользователи уже не подключаются.

 

В логах при нормальном подключении вижу следующее

 

Oct 17 13:17:39 vpn-1 pptpd[52594]: CTRL: Client 192.168.167.23 control connection started

Oct 17 13:17:39 vpn-1 pptpd[52594]: CTRL: Starting call (launching pppd, opening GRE)

Oct 17 13:17:39 vpn-1 ppp[52595]: Phase: Using interface: tun290

Oct 17 13:17:39 vpn-1 kernel: tun290: link state changed to UP

Oct 17 13:17:39 vpn-1 ppp[52595]: Phase: deflink: Created in closed state

Oct 17 13:17:39 vpn-1 ppp[52595]: Warning: iface add: ioctl(SIOCAIFADDR, 127.0.0.1 -> х.х.х.133): File exists

Oct 17 13:17:39 vpn-1 ppp[52595]: Warning: iface add: ioctl(SIOCAIFADDR, 127.0.0.1 -> х.х.х.134): File exists

Oct 17 13:17:39 vpn-1 pptpd[52594]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!

Oct 17 13:17:39 vpn-1 kernel: Oct 17 13:17:39 vpn-1 pptpd[52594]: CTRL: Ignored a SET LINK INFO packet with real ACCMs!

 

Отключаюсь

 

Oct 17 13:17:42 vpn-1 pptpd[52594]: CTRL: Reaping child PPP[52595]

Oct 17 13:17:42 vpn-1 kernel: tun290: link state changed to DOWN

Oct 17 13:17:42 vpn-1 pptpd[52594]: CTRL: Client 192.168.167.23 control connection finished

 

Такое вижу в логах, когда подключиться невозможно

 

Oct 17 13:10:18 vpn-1 pptpd[52258]: MGR: Launching /usr/local/sbin/pptpctrl to handle client

Oct 17 13:10:18 vpn-1 pptpd[48714]: MGR: Reaped child 52258

 

Странно, но от MGR при нормальной работе сообщений нет.

На даный момент по крону делаю /usr/local/etc/rc.d/pptpd restart.

 

Пробовал создавать много дочерних процессов

 

i=0

while true; do

i=`expr $i + 1`

echo -n $i.

sleep 10 &

done

 

2-3 тысячи создаются без проблем, т.е. ограничеия ресурсов нет.

 

 

Подскажите, кто может ограничивать количество порожденных процессов ?

Ядро или сам pptpd. И как поднять лимит ?

Share this post


Link to post
Share on other sites

Попробуйте в pptpd.conf

 

connections 2000 //сколько вам угодно коннектов

delegate

Edited by k0stik

Share this post


Link to post
Share on other sites

Спасибо, помогла опция deflate

 

По умолчанию у pptpd есть 100 адресов

 

#define DEFAULT_LOCAL_IP_LIST "192.168.0.1-100"

#define DEFAULT_REMOTE_IP_LIST "192.168.1.1-100"

 

когда они заканчивались, юзера видели ошибку 800

Share this post


Link to post
Share on other sites

Многие наступали на эти грабли

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