pptpd, число интерфейсов и сегфолты pptpctrl

Давно доставала проблема – активно использую VPN через PPTP для хождения по ригам и некоторым сервисным хостам – так вот, логи VPN-сервера стали заваливаться сообщениями вида

Mar 4 23:56:58 vpn kernel: [4141694.076742] pptpctrl[3513]: segfault at 0 ip 00007f8d6e410d9c sp 00007ffddc419d68 error 4 in libc-2.13.so[7f8d6e2f3000+184000]

Думал, может или память на сервере побилась, или где-то libc повредился. Только что внезапно решил проблему.

В поиске по этой ошибке нагуглился этот тред: http://www.gentoo.ru/node/18102

И самый последний пост – “поднял число ppp-интерфейсов и все заработало”. Посмотрел число ppp-интерфейсов у себя – 31. Думаю, ага, наверное, какой-то лимит на 32 и оно в него упирается. Беглый поиск по “ppp max interfaces” и “pptp max interfaces” ничего не дал; в конфигах тоже ничего не светилось. Потом решил наконец-то “прочитать инструкцию” 🙂

У pptpd есть опция connections, лимитирующая число клиентов. Дефолт – 100. Не мой случай, у меня было меньше хостов. Однако в конце описания опции было сказано: “…then the number of connections is also limited by the remoteip option”. Диапазон remoteip у меня был задан x.x.x.220-x.x.x.250 – можно сказать, с потолка, ибо числодробилки все имели фиксированные адреса, критичные хосты – тоже. Т.е., диапазон оставался исключительно для тех клиентов, для которых статика не подразумевалась, а таких было немного. И, так уж получилось, что числа хостов в диапазоне до поры до времени хватало на тех клиентов, что были подключены. Лимит оказался не 32, как я сначала подумал, а 30. 31-й уже не мог подключиться и давал сегфолты.

Расширил диапазон на 10 адресов – проблема ушла.

Добавить комментарий