Перейти до

Разработка модуля Vpn (radius) для Stg 2.4


Рекомендованные сообщения

Появился некоторый баг, иногда когда отрубается NAS и массово отключается много пользователей, а потом быстро начинают подключатся stargazer вываливается с Ошибкой сегментирования:

 

   inetaccess.cpp > 19:22:15 > ALIVE_ACK_8 - OK
   inetaccess.cpp > 19:22:16 > Min8(sizeof(ALIVE_SYN)) = 368
   inetaccess.cpp > 19:22:16 > 384 bytes sent to 10.50.7.134 len=384
   inetaccess.cpp > 19:22:16 > Send_ALIVE_SYN_8
   inetaccess.cpp > 19:22:16 > recv from 10.50.7.134 len=64
   inetaccess.cpp > 19:22:16 > User colombo FOUND!
   inetaccess.cpp > 19:22:16 > ======================>   InitEncrypt dont needed
   inetaccess.cpp > 19:22:16 > ALIVE_ACK_8 - OK
 traffcounter.cpp > 19:22:17 > FlushAndRemove() packets: 550(rem 21) ip2packets: 1100(rem 42)
   inetaccess.cpp > 19:22:18 > Min8(sizeof(ALIVE_SYN)) = 368
   inetaccess.cpp > 19:22:18 > 384 bytes sent to 10.50.7.202 len=384
   inetaccess.cpp > 19:22:18 > Send_ALIVE_SYN_8
   inetaccess.cpp > 19:22:18 > recv from 10.50.7.202 len=64
   inetaccess.cpp > 19:22:18 > User artur FOUND!
   inetaccess.cpp > 19:22:18 > ======================>   InitEncrypt dont needed
   inetaccess.cpp > 19:22:18 > ALIVE_ACK_8 - OK
    radius_ia.cpp > 19:22:18 > AFTER select
    radius_ia.cpp > 19:22:18 > Auth process
    radius_ia.cpp > 19:22:18 > Recv packert - OK
    radius_ia.cpp > 19:22:18 > NASIPAddress: 3232261122
    radius_ia.cpp > 19:22:18 > CallingStationId: 00:14:22:BA:97:68
    radius_ia.cpp > 19:22:18 > Find CHAP password!!! attr
    radius_ia.cpp > 19:22:18 > Auth 6 acct 7
    radius_ia.cpp > 19:22:18 > AFTER select
    radius_ia.cpp > 19:22:18 > Acct process
    radius_ia.cpp > 19:22:18 > Recv packert - OK
Ошибка сегментирования

 

Какие то косяки в обработчике пакетов, постараюсь запустить с gdb и отследить core.

Ссылка на сообщение
Поделиться на других сайтах
  • Відповіді 80
  • Створено
  • Остання відповідь

Top Posters In This Topic

Упал сегодня без меня опять, лог падения не сохранился, есть корка, но почему-то gdb не хочет ее дебажить

 

"/var/stargazer/core.13385" is not a core dump: Value too large for defined data type

 

Корка весит 3Гб, судя по ошибке получается что корка создалась неправильно, правда почему - мне непонятно, кто значет в чем причина - напишите.

Ссылка на сообщение
Поделиться на других сайтах

Так, core dump отдебажить так и не удалось, когда уменьшил размер отвечает просто что file format not recognised

 

Поковырялся в коде и обнаружил одну вещь, в авторизации при разборе пакетов используется try catch конструкция, и на этом месте падений нет

 

А вот в коде аккаунтинга такой конструкции нет и судя по логу падения именно в этом коде, переписал и добавил туда аналогичную конструкцию, посмотрим, если поможет - выложу патч.

 

П.С. Патч не помог, сегодня с утра опять упал, думаю дальше.

Ссылка на сообщение
Поделиться на других сайтах
Так, core dump отдебажить так и не удалось, когда уменьшил размер отвечает просто что file format not recognised

 

Поковырялся в коде и обнаружил одну вещь, в авторизации при разборе пакетов используется try catch конструкция, и на этом месте падений нет

 

А вот в коде аккаунтинга такой конструкции нет и судя по логу падения именно в этом коде, переписал и добавил туда аналогичную конструкцию, посмотрим, если поможет - выложу патч.

 

П.С. Патч не помог, сегодня с утра опять упал, думаю дальше.

свяжитесь с нами по аське: 340846559

Ссылка на сообщение
Поделиться на других сайтах
  • 2 weeks later...

Итак, после длительных тестов и выводов дополнительной отладочной информации могу довольно уверенно утверждать что баг связан с модулем netflow:

 

    radius_ia.cpp > 22:42:35 > Found IP (192.168.1.60) in request start-packet of user tushkanchik.
    radius_ia.cpp > 22:42:35 > Trying to authorize user:
    radius_ia.cpp > 22:42:35 > Login: tushkanchik
    radius_ia.cpp > 22:42:35 > IP: 192.168.1.60
    radius_ia.cpp > 22:42:35 > Interface: radius / MikroTik (192.168.100.2) / 3032 / 00:0A:E4:BE:AF:D6
         user.cpp > 22:42:35 > Authorize 1
         user.cpp > 22:42:35 > Authorize 2
         user.cpp > 22:42:35 > Authorize 8
         user.cpp > 22:42:35 > Authorize 9

 

else
   {
       printfd(__FILE__, "Authorize 8\n");
       if (sconnected){
           printfd(__FILE__, "Authorize 9\n");  <--------- Последняя выведенная запись
           pthread_cancel(delayThread);
           pthread_join(delayThread,NULL);
           ForceDelayCurrIP();
           printfd(__FILE__, "Authorize 10\n");
       }

 

Код связан с задержкой отключения пользователя для получения netflow информации, при массовых подключениях/отключениях юзверей дает какие-то сбои.

 

Дальнейшее обсуждение данного бага переношу в тему про нетфлов.

Огромное спасибо разработчикам модуля radius за проявление стремление помочь, надеюсь что у разработчиков netflow оно тоже будет.

Ссылка на сообщение
Поделиться на других сайтах

Что ж, еще лучше, тогда сегодня вечером представлю ему свои выводы, да и еще наверное к тому времени будет более подробно понятно место где происходит падение.

Ссылка на сообщение
Поделиться на других сайтах
  • 3 months later...

radius_ia.cpp > 01:52:10 > AFTER select

radius_ia.cpp > 01:52:10 > Auth process

radius_ia.cpp > 01:52:10 > Recv packert - OK

radius_ia.cpp > 01:52:10 > Find CHAP password!!! attr

radius_ia.cpp > 01:52:10 > Auth 5 acct 6

 

как исправить ?

Ссылка на сообщение
Поделиться на других сайтах
radius_ia.cpp > 01:52:10 > AFTER select

radius_ia.cpp > 01:52:10 > Auth process

radius_ia.cpp > 01:52:10 > Recv packert - OK

radius_ia.cpp > 01:52:10 > Find CHAP password!!! attr

radius_ia.cpp > 01:52:10 > Auth 5 acct 6

 

как исправить ?

А чего исправлять?

Ссылка на сообщение
Поделиться на других сайтах
  • 5 weeks later...

Не знаю как у вас,но у меня он ваще не ставиться.

 

 

[root@portal-saratov usr]# cd stg-2.402.9.7

[root@portal-saratov stg-2.402.9.7]# dir

CVS include lib projects stglibs

[root@portal-saratov stg-2.402.9.7]# cd projects

[root@portal-saratov projects]# dir

CVS stargazer

[root@portal-saratov projects]# cd stargazer

[root@portal-saratov stargazer]# dir

admin.cpp build install plugin_runner.cpp script_executer.o stargazer.vpwhistu tariff2.o user.o user_traff.cpp

admin.h curr_ip.cpp install_bin plugin_runner.h settings.cpp startstg TODO user_property.cpp user_traff.h

admin.o curr_ip.h install_etc_var plugin_runner.o settings.h stg_timer.cpp traffcounter.cpp user_property.h

admins.cpp curr_ip.o main.cpp plugins settings.o stg_timer.h traffcounter.h user_property.o

admins.h CVS main.o README stargazer stg_timer.o traffcounter.o users.cpp

admins.o deps Makefile script_executer.cpp stargazer.vpj tariff2.cpp user.cpp users.h

BUGS inst modules script_executer.h stargazer.vpw tariff2.h user.h users.o

[root@portal-saratov stargazer]# cd plugins

[root@portal-saratov plugins]# dir

authorization capture configuration CVS other store

[root@portal-saratov plugins]# authorization

-bash: authorization: command not found

[root@portal-saratov plugins]# cd authorization

[root@portal-saratov authorization]# dir

ao CVS inetaccess radius

[root@portal-saratov authorization]# cd radius

[root@portal-saratov radius]# dir

deps eap.cpp eap.h Makefile radius.cpp radius.h radius_ia.cpp radius_ia.h radius.o

[root@portal-saratov radius]# make

g++ -c radius_ia.cpp -g3 -Wall -fPIC -Wno-non-virtual-dtor -I ../../../../../include -DLINUX

../../../user.h: In member function Б─≤int RADIUS_IA::AuthProcess()Б─≥:

../../../user.h:207: error: Б─≤bool USER::IsInetable()Б─≥ is private

radius_ia.cpp:348: error: within this context

../../../user.h:207: error: Б─≤bool USER::IsInetable()Б─≥ is private

radius_ia.cpp:371: error: within this context

radius_ia.cpp: In member function Б─≤int RADIUS_IA::AcctProcess()Б─≥:

radius_ia.cpp:430: error: no matching function for call to Б─≤USER::Authorize(const uint32_t&, std::string, unsigned int, RADIUS_IA* const)Б─≥

../../../user.h:174: note: candidates are: int USER::Authorize(uint32_t, const std::string&, const BASE_AUTH*)

../../../user.h: In member function Б─≤int RADIUS_IA::EAPAuthor(const RadiusPacket&, sockaddr_in)Б─≥:

../../../user.h:207: error: Б─≤bool USER::IsInetable()Б─≥ is private

radius_ia.cpp:627: error: within this context

make: *** [radius_ia.o] Error 1

[root@portal-saratov radius]#

 

 

11.png

 

Или я лох.. Расскажите

Ссылка на сообщение
Поделиться на других сайтах
  • 2 months later...

Большая просьба добавить в мануал по инсталляции, что, к примеру, для убунту должен быть установлен пакет libssl-dev, без него не может при компиляции найти md5.h

Ссылка на сообщение
Поделиться на других сайтах
  • 1 month later...

у меня не находит мд5 для модуля:

2008-06-17 00:58:09 -- ---------------------------------------------

2008-06-17 00:58:09 -- Stg stopped successfully.

2008-06-17 00:58:09 -- StgTimer: Stop successfull.

2008-06-17 00:58:09 -- Queue removed successfully.

2008-06-17 00:58:08 -- Users: Stop successfull.

2008-06-17 00:58:08 -- Traffcounter: Stop successfull.

2008-06-17 00:58:08 -- Error: Plugin loading failed. /usr/stg/lib/mod_radius_ia.so: Undefined symbol "MD5"

2008-06-17 00:58:08 -- Storage plugin: file_store v.1.02. Loading successfull.

2008-06-17 00:58:08 -- Timer thread started successfully.

2008-06-17 00:58:08 -- Message queue created successfully. msgKey=5555 msgID=3276800

2008-06-17 00:58:08 -- Stg v. Stg 2.404

 

подскажите, чего надо поставить?

Ссылка на сообщение
Поделиться на других сайтах

кстати, для четвертой ветки фри не находит stdint.h, но его можно лекго сделать со следующим содержимым:

 

#ifndef _STDINT_H

#define _STDINT_H 1

 

#include <sys/types.h>

#include <wchar.h>

 

#endif /* stdint.h */

Ссылка на сообщение
Поделиться на других сайтах

вот говорят для подобного случая что надо:

| following error during the link process :

| /usr/bin/ld: Undefined symbols:

| _MD5

| Indeed, in one of my classes, I call the C "MD5" function as defined in

| "openssl/md5.h".

| How do I solve this problem ?

You need to add the lib which contains the definition for MD5 to your

project. In this case, /usr/lib/libcrypto.dylib

 

но куда этот либ пихать я не пойму.

Ссылка на сообщение
Поделиться на других сайтах

вот жеж ё!

чисто местодом подбора допустимых вариантов догадался что надо приписать в мейкфайле к либам надписи -lcrypto -lcrypt

 

запустилась сабака.

Ссылка на сообщение
Поделиться на других сайтах

а еще подскажите, почему это старгез сам удаляет конфигарацию модуля radius из файла stargazer.conf во время убития и повторного запуска?

ну очень интересно

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

Ссылка на сообщение
Поделиться на других сайтах
  • 2 months later...

Обнаружена трабла: старгейзер 2.401 с модулем радиуса mod_radius-0.81beta.

Путает исходящий и входящий трафик, данные о котором передаются через радиус. То бишь то, что пришял клиент записывается в upload, а что передал - в download. Вроде пустяк, но напрягает. Можно ли пофиксить?

сервер poptop 1.3.4.

Ссылка на сообщение
Поделиться на других сайтах

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Вхід

Уже зарегистрированы? Войдите здесь.

Войти сейчас
  • Зараз на сторінці   0 користувачів

    Немає користувачів, що переглядають цю сторінку.


×
×
  • Створити нове...