LINUX.ORG.RU
ФорумAdmin

Виндовые клиенты коннектятся к PPTP с N-ой попытки


0

0

Небольшой сервак раздающий инет, доступ по VPN. При подключении часто выдает "Loopback detected" ака "Обнаружено замыкание на себя" в русских виндах... Нажав Retry можем подрубиться сразу, а можем еще 20 раз нажимать.

/var/log/messages: Aug 3 20:04:44 server pptpd[2943]: CTRL: Client 10.1.1.7 control connection started Aug 3 20:04:44 server pptpd[2943]: CTRL: Starting call (launching pppd, opening GRE) Aug 3 20:04:44 server pppd[2944]: Plugin mysql_auth.so loaded. Aug 3 20:04:44 server pppd[2944]: pppd 2.4.3 started by root, uid 0 Aug 3 20:04:44 server pppd[2944]: Using interface ppp1 Aug 3 20:04:44 server pppd[2944]: Connect: ppp1 <--> /dev/pts/4 Aug 3 20:04:44 server pppd[2944]: Modem hangup Aug 3 20:04:44 server pppd[2944]: Connection terminated. Aug 3 20:04:44 server pppd[2944]: Exit. Aug 3 20:04:44 server pptpd[2943]: CTRL: Client 10.1.1.7 control connection finished

/var/log/debug: Aug 3 20:18:00 server pppd[3243]: PLUGIN: Entering mysql_chap_check Aug 3 20:18:00 server pppd[3243]: using channel 156 Aug 3 20:18:00 server pppd[3243]: PLUGIN: Entering mysql_chap_check Aug 3 20:18:00 server pppd[3243]: PLUGIN: Entering mysql_chap_check Aug 3 20:18:00 server pppd[3243]: sent [LCP ConfReq id=0x1 <asyncmap 0x0> <auth eap> <magic 0xc8f643e7> <pcomp> <accomp>] Aug 3 20:18:00 server pptpd[3242]: CTRL: Reaping child PPP[3243]

Возможно конечно это из-за плагина для авторизации через MySQL, но я сомневаюсь, он настолько просто сделан, да и нечему там это вызывать. База работает на локалхосте, задержек никаких. Если никаких мыслей не будет, попробую его отрубить...но без него никак


Ответ на: комментарий от KB

с выдачей ip ничего не напутано? Адреса берутся из пула? может выдается айпишник сервера?

boatman
()

>Возможно конечно это из-за плагина для авторизации через MySQL

radius + mysql +pptp?

А адрес, когда выделяется, ты дальше как обрабатываешь (имею в виду iptables),

И второй вопрос - пробовал логи выделяемых адресов вести?

jackill ★★★★★
()

Радиуса нет, простой плагинчик mysql_auth.so,
подправленный самостоятельно под свои нужды.
До некоторого момента вроде работал без нареканий..

Выделяемые IP (из подсети 192.168.0.0/24) прописаны каждому юзеру отдельно в таблицу и берутся из столбца 'ip'.
IP сервера - 192.168.0.1

Структура такая:
id;ip;real_ip;login;passwd;tarif;cost;account;address;comments;mac;active
плагином юзаются соответственно только ip,login,passwd,active.

Правиля для iptables прописываются в скрипт ip-up, которому соответственно передаются нужные аргументы самим pppd.

Логи выделяемых адресов вести вроде смысла не вижу, ибо они фиксированы..
Или ты еще что-то имел в виду?

KB
() автор топика
Ответ на: комментарий от KB

А где можно посмотреть как у вас всё реализовано для подсчёта трафика?

anonymous
()

Гм, да особо нигде :)

Попробую объяснить.
1. Клиент коннектится к VPN со своим логином\паролем, которые берутся из таблицы users как уже было сказано. Кроме того в этой же таблице на каждого прописан столбец tarif, т.е. цена за 1мб трафика и количество денег на счету(столбец account).
2. Плагин mysql_auth.so сначала проверяет правильность комбинации логин\пароль(изначальное его назначение), а затем проверяет чтобы денег на счету было больше нуля(это уже пришлось самому дописывать).
3. Затем запускается скрипт ip-up который добавляет в таблицу 'up' данные о юзере который подключился(его ip, login, интерфейс, итд). Это просто для контроля за теми, кто в онлайне в данный момент.
4. Каждую минуту(по крону) срабатывает скрипт, который считывает из /proc/net/dev данные об объеме, переданном и принятом по каждму pppX интерфейсу и обновляет таблицу 'up'. Это опять таки к биллингу не относится, лишь для контроля мной.
5. Когда юзер отключается, pppd опускает интерфейс и вызывает скрипт ip-down, причем с переменными окружения BYTES_RCVD, BYTES_SENT, IFNAME, IPLOCAL, IPREMOTE итд. Всё это есть в man pppd :) Этот скрипт соответственно производит вычисления сколько $ снять со счета юзера учитывая скачанный объем и вычитает соотвествующую сумму из его счета. Заодно убирает из iptables правила выставленные в ip-up

Если кому интересно, могу подкинуть эти скрипты и плагин, они на PHP, есть еще вариант на C, но особой прибавки в скорости не получил ибо клиентов не так много, так что оставил PHP.

KB
() автор топика
Ответ на: комментарий от KB

Пожалуйста, если возможно. plboy на mail тчк ru

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.