Добрый деньУстановил 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. И как поднять лимит ?