Перейти к содержимому
Калькуляторы

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

Поделиться сообщением


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

Здравствуйте!

 

Столкнулся с такой бедой: если radius сервер недоступен где то в течении 1 минуты accel-pppd падает по сегфолту

accel-pppd[19448]: segfault at 0 ip b789a6f5 sp bf8ccff0 error 6 in libtriton.so[b7897000+6000]

шо делать?

 

P.S. может есть возможность добавить к пакету мини-демон, который будет параллельно висеть в процессах и контролировать accel-pppd, перезапуская его после падения?

Поделиться сообщением


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

Всем привет!

Пытаюсь собрать accel=pptp на тестовом ядре

# uname -a

Linux Inet 2.6.39-2-686-pae #1 SMP Wed Jun 8 11:33:14 UTC 2011 i686 GNU/Linux

1) cmake -DBUILD_DRIVER=TRUE -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug -DLOG_PGSQL=FALSE -DSHAPER=FALSE -DRADIUS=TRUE -DKDIR=/usr/src/linux-headers-2.6.39-2-686-pae ..

2) при make выдает в конце

[ 96%] Built target pppd_compat

[ 98%] Built target sigchld

[ 98%] Generating driver/pptp.ko

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c: In function ‘pptp_xmit’:

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:388: error: unknown field ‘oif’ specified in initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:388: warning: missing braces around initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:388: warning: (near initialization for ‘fl.u’)

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:389: error: unknown field ‘nl_u’ specified in initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:389: error: extra brace group at end of initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:389: error: (near initialization for ‘fl’)

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:390: error: extra brace group at end of initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:390: error: (near initialization for ‘fl’)

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:392: warning: excess elements in struct initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:392: warning: (near initialization for ‘fl’)

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:393: error: unknown field ‘proto’ specified in initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:393: warning: excess elements in struct initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:393: warning: (near initialization for ‘fl’)

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:397: warning: passing argument 2 of ‘ip_route_output_key’ from incompatible pointer type

/usr/src/linux-headers-2.6.39-2-common/include/net/route.h:131: note: expected ‘struct flowi4 *’ but argument is of type ‘struct rtable **’

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:397: error: too many arguments to function ‘ip_route_output_key’

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:397: warning: assignment makes integer from pointer without a cast

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c: In function ‘pptp_connect’:

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:862: error: unknown field ‘nl_u’ specified in initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:862: error: unknown field ‘ip4_u’ specified in initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:863: error: unknown field ‘daddr’ specified in initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:864: error: unknown field ‘saddr’ specified in initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:865: error: unknown field ‘tos’ specified in initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:866: error: unknown field ‘proto’ specified in initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:866: warning: excess elements in struct initializer

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:866: warning: (near initialization for ‘fl’)

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:873: warning: passing argument 2 of ‘ip_route_output_key’ from incompatible pointer type

/usr/src/linux-headers-2.6.39-2-common/include/net/route.h:131: note: expected ‘struct flowi4 *’ but argument is of type ‘struct rtable **’

/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.c:873: error: too many arguments to function ‘ip_route_output_key’

make[6]: *** [/usr/local/Install/Install/accel-pptp/build/driver/driver/pptp.o] Ошибка 1

make[5]: *** [_module_/usr/local/Install/Install/accel-pptp/build/driver/driver] Ошибка 2

make[4]: *** [sub-make] Ошибка 2

make[3]: *** [all] Ошибка 2

make[2]: *** [driver/driver/pptp.ko] Ошибка 2

make[1]: *** [driver/CMakeFiles/pptp_drv.dir/all] Ошибка 2

make: *** [all] Ошибка 2

-----------------------

не посдкажите в чем может быть косячок?

Поделиться сообщением


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

P.S. может есть возможность добавить к пакету мини-демон, который будет параллельно висеть в процессах и контролировать accel-pppd, перезапуская его после падения?

nagios,zabbix,самописный сценарий по cron-у - но это не решение проблемы, а костыль.

Поделиться сообщением


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

P.S. может есть возможность добавить к пакету мини-демон, который будет параллельно висеть в процессах и контролировать accel-pppd, перезапуская его после падения?

А зачем, если есть уже готовые решения?

Поделиться сообщением


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

bbest, для 2.6.39 ядра драйвер собирать не надо, т.е. cmake -DBUILD_DRIVER=FALSE

Поделиться сообщением


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

bbest, для 2.6.39 ядра драйвер собирать не надо, т.е. cmake -DBUILD_DRIVER=FALSE

 

спасибо помогло

 

Вопрос №2

Кто нибудь пробовал заводить протокол l2tp на ядрах 2.6.38 и выше + accel-ppp? С pptp вроде все понятно

modprobe pptp

а что нужно прописывать для l2tp? Сами модули (l2tp_core.ko l2tp_debugfs.ko l2tp_eth.ko l2tp_ip.ko l2tp_netlink.ko l2tp_ppp.ko) находятся в /lib/modules/2.6.39-2-686-pae/kernel/net/l2tp. Но даже при подгрузке всех их - accel-ppp предательски молчит при доключении клиента по протоколу l2tp. В чем может быть загвоздка?

Поделиться сообщением


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

а что нужно прописывать для l2tp?
[modules]

l2tp

и должен быть загружен модуль ядра l2tp_ppp

Изменено пользователем xeb

Поделиться сообщением


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

P.S. может есть возможность добавить к пакету мини-демон, который будет параллельно висеть в процессах и контролировать accel-pppd, перезапуская его после падения?

monit отлично может это делать

 

l2tp_ppp

Сорри, протупил, это модуль ядра

Изменено пользователем marikoda

Поделиться сообщением


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

nagios,zabbix,самописный сценарий по cron-у - но это не решение проблемы, а костыль.

А зачем, если есть уже готовые решения?

 

Костыль? Согласен. И альтернативные решения уже применены, просто я имел ввиду нечто другое... А по сабжу можно что нибудь придумать? Может сталкивался кто с таким уже?

Поделиться сообщением


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

На радиусном сервере в 00:00 что-то тупит, из-за чего он не успевает ответить на ACCT (подозреваю, что на апдейт).

 

[2011-07-04 00:01:55]:  warn: ppp121: radius:acct: no response, terminating session...

 

Подскажите, можно ли как-то настроить поведение accel-ppp в этом случае? acct-timeout не оно, случаем?

Изменено пользователем marikoda

Поделиться сообщением


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

Привет.

 

Отключенным за неуплату абонентам радиус выдает адреса 10.A.B.*.

 

При коннекте получаем ошибку

[2011-07-04 05:42:59]:  warn: ppp21: ppp:ipcp: to avoid kernel soft lockup requested IP cannot be assigned (10.A.B.131)

 

На самом сервере есть адрес 10.A.C.D/24, вроде бы получается, что из другой подсети ?

 

UPD: Тут менять?

[client-ip-range]
10.0.0.0/8

Изменено пользователем marikoda

Поделиться сообщением


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

Кстати, выяснил, что было с радиусом.

Опять упали accel-pppd, причем несколько раз подряд

 

Jul  4 00:02:13 asl03 kernel: [188442.440371] accel-pppd[18584]: segfault at 20 ip 0000000000403d74 sp 00007ff932b24d60 error 4 in accel-pppd (deleted)[400000+19000]
Jul  4 00:03:18 asl03 kernel: [188507.380609] accel-pppd[26607]: segfault at 20 ip 0000000000403e74 sp 00007fc0ab174d70 error 4 in accel-pppd[400000+18000]
Jul  4 00:05:16 asl03 kernel: [188625.470402] accel-pppd[29795]: segfault at 20 ip 0000000000403e74 sp 00007f7c9f728d70 error 4 in accel-pppd[400000+18000]

 

Первый раз причиной предположительно была ротация лога, как ни странно. Последующие причины понять не могу.

Другой вариант - в 00 часов тормозит радиус.

Изменено пользователем marikoda

Поделиться сообщением


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

Еще одна трабла, пускай и не такая критичная: как быть с ротацией логов? Ротирую через logrotate, после подмены accel-pppd продолжает писать в старый файл...

Поделиться сообщением


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

acct-timeout=0

может лучше поставить что-то вроде 3600 ?

Поделиться сообщением


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

может лучше поставить что-то вроде 3600 ?

 

Тогда через час после падения радиуса(к примеру) accel потушит сесии. Если 0 - не потушит. Мне например не нужен аккаунтинг который пришел на час позже.

Поделиться сообщением


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

xeb, на 83331b4d39f5fce3e274cd5e4fb1d1a57f47198a (предпоследний на данный момент) некорректно реагирует на сигнал SIGTERM - виснет, т.е. когда я делаю /etc/init.d/accel-ppp stop, то он виснет на строке Stopping PPtP/L2TP/PPPoE server: accel-pppd. Помогает Ctrl+c и убийство по SIGKILL, что явно не хорошо! Подозреваю, что это как-то связано с последними изменениями в коде шейпера.

Поделиться сообщением


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

e63e5ac245edcbf43902dd1d248e15231c6c9191 и 05ad71a30740f1cca95e9f47a8a56c65b03402ed не реагируют (все равно создают соединение) на ненулевой возврат из ip-pre-up.

 

 

Можно напомнить?

 

получили с радиуса E=1315, а отдали клиенту E=691. Более и менее понятные ошибки снижают немного нагрузку на сапорт ... можно их передавать дальше без изменения?
ок

Поделиться сообщением


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

На радиусном сервере в 00:00 что-то тупит, из-за чего он не успевает ответить на ACCT (подозреваю, что на апдейт).

 

[2011-07-04 00:01:55]:  warn: ppp121: radius:acct: no response, terminating session...

 

Подскажите, можно ли как-то настроить поведение accel-ppp в этом случае? acct-timeout не оно, случаем?

 

А можно ли как-то сделать, чтобы terminating session не происходило? Или acct-timeout=0 это как раз оно?

Поделиться сообщением


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

А параметру bind= можно передать несколько адресов?

upd: заглянул в исходники, получается что нельзя.

можно ли добавить подобную фичу?

Изменено пользователем Victor Safronov

Поделиться сообщением


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

Поставил сегодня версию из гита, до этого клиенты обслуживались сервером версии 0.8.5 на другой машине.

Теперь многие клиенты испытывают проблему постоянных разрывов pptp. В логах следующее:

[2011-07-13 12:21:44]:  info: ppp84: send [RADIUS Accounting-Request id=1 <User-Name "promtex4"> <NAS-Identifier "accel-ppp"> <NAS-IP-Address 
31.24.24.1> <NAS-Port 84> <NAS-Port-Type Virtual> <Service-Type Framed-User> <Framed-Protocol PPP> <Calling-Station-Id "x.x.x.x"> <Called-Station-Id
"31.24.24.1"> <Acct-Status-Type Stop> <Acct-Authentic RADIUS> <Acct-Session-Id "1d2f01c080edd622"> <Acct-Session-Time 217> <Acct-Input-Octets 188076> 
<Acct-Output-Octets 637958> <Acct-Input-Packets 1137> <Acct-Output-Packets 1128> <Acct-Input-Gigawords 0> <Acct-Output-Gigawords 0> <Acct-Delay-Time 0> <Framed-IP-Address x.x.x.x> <Acct-Terminate-Cause User-Request>]
[2011-07-13 12:21:44]:  info: ppp84: recv [RADIUS Accounting-Response id=1]
[2011-07-13 12:21:45]:  info: ppp84: disconnected

С чем может быть связано?

Изменено пользователем Victor Safronov

Поделиться сообщением


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

А можно ли как-то сделать, чтобы terminating session не происходило? Или acct-timeout=0 это как раз оно?
да

 

Victor Safronov, этих логов не достаточно

 

получили с радиуса E=1315, а отдали клиенту E=691. Более и менее понятные ошибки снижают немного нагрузку на сапорт ... можно их передавать дальше без изменения?
отлаживать не на чем, как научить freeradius выдавать подобные сообщения ?

Поделиться сообщением


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

e63e5ac245edcbf43902dd1d248e15231c6c9191 и 05ad71a30740f1cca95e9f47a8a56c65b03402ed не реагируют (все равно создают соединение) на ненулевой возврат из ip-pre-up.
проверил, работает:

ppp2: 1c5672dc086eca7a: send [RADIUS Accounting-Request id=1 <User-Name "test"> <NAS-Identifier "accel-pptp"> <NAS-IP-Address 127.0.0.1> <NAS-Port 2> <NAS-Port-Type Virtual> <Service-Type Framed-User> <Framed-Protocol PPP> <Calling-Station-Id "48:5b:39:8d:e0:94"> <Called-Station-Id "00:1f:d0:51:f2:49"> <Acct-Status-Type Start> <Acct-Authentic RADIUS> <Acct-Session-Id "1c5672dc086eca7a"> <Acct-Session-Time 0> <Acct-Input-Octets 0> <Acct-Output-Octets 0> <Acct-Input-Packets 0> <Acct-Output-Packets 0> <Acct-Input-Gigawords 0> <Acct-Output-Gigawords 0> <Acct-Delay-Time 0> <Framed-IP-Address 192.168.200.2>]                                                                                                           	
ppp2: 1c5672dc086eca7a: recv [RADIUS Accounting-Response id=1]                                                                                                                  	
ppp2: 1c5672dc086eca7a: pppd_compat: ip-pre-up started (pid 6538)                                                                                                               	
ppp2: 1c5672dc086eca7a: pppd_compat: ip-pre-up finished (1)                                                                                                                     	
ppp2: 1c5672dc086eca7a: ppp_terminate                                                                                                                                           	
ppp2: 1c5672dc086eca7a: send [RADIUS Accounting-Request id=1 <User-Name "test"> <NAS-Identifier "accel-pptp"> <NAS-IP-Address 127.0.0.1> <NAS-Port 2> <NAS-Port-Type Virtual> <Service-Type Framed-User> <Framed-Protocol PPP> <Calling-Station-Id "48:5b:39:8d:e0:94"> <Called-Station-Id "00:1f:d0:51:f2:49"> <Acct-Status-Type Stop> <Acct-Authentic RADIUS> <Acct-Session-Id "1c5672dc086eca7a"> <Acct-Session-Time 1> <Acct-Input-Octets 30> <Acct-Output-Octets 30> <Acct-Input-Packets 3> <Acct-Output-Packets 3> <Acct-Input-Gigawords 0> <Acct-Output-Gigawords 0> <Acct-Delay-Time 0> <Framed-IP-Address 192.168.200.2>]                                                                                                          	
ppp2: 1c5672dc086eca7a: recv [RADIUS Accounting-Response id=1]                                                                                                                  	
send [PPPoE PADT 00:1f:d0:51:f2:49 => 48:5b:39:8d:e0:94 sid=0001 <AC-Name accel-ppp> <Service-Name > <Host-Uniq 10080000>]
ppp2: 1c5672dc086eca7a: disconnected

Поделиться сообщением


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

xeb, на 83331b4d39f5fce3e274cd5e4fb1d1a57f47198a (предпоследний на данный момент) некорректно реагирует на сигнал SIGTERM - виснет, т.е. когда я делаю /etc/init.d/accel-ppp stop, то он виснет на строке Stopping PPtP/L2TP/PPPoE server: accel-pppd. Помогает Ctrl+c и убийство по SIGKILL, что явно не хорошо!
проверил, работает

тут нужно учесть, что если поднято много сессий, каждую из них нужно остановить, отправить запросы клиенту, на радиус, дождаться ответов, это может занять некоторое время, если хочется остановить быстро, то через cli подать команду shutdown hard

Поделиться сообщением


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

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 смайлов.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.