Jump to content
Калькуляторы

ates

Пользователи
  • Content Count

    21
  • Joined

  • Last visited

About ates

  • Rank
    Абитуриент

Контакты

  • ICQ
    0
  • Jabber
    ates@ipv6.dp.ua

Информация

  • Пол
    Мужчина

Recent Profile Visitors

867 profile views
  1. Привет, Возможно ли с cisco выдернуть информацию: show ip nat translation по SNMP? То есть хотелось бы получить всю таблицу или возможно как выборочно указать по какому IP фильтровать. Спасибо
  2. Мужики, запилите этот проект уже на каком нибудь github, что бы можно было нормально следить за развитием. А там уже кто поднятется.
  3. Пока нет, выложу когда соберу готовую систему. Глянь личные сообщения.
  4. Я сейчас начал рефакторить и переделывать код системы в более правильный вид. Пока кодовая база не большая - легко будет понять что как сделано.
  5. Что сейчас реализовано: 1. netspire-core: * Функции для работы с IP адресами (не все совместимы с IPv6) * Функции для работы с динамическими модулями, хуками * Работа с конфиг файлом, логами * RADIUS сервер (не поддерживает radius-proxy) * Netflow коллектор (v5, v9) * Модули аунтификации для радиуса * PAP * CHAP * MSCHAPv2 c MPPE * Digest (делалось для VoIP SIP) * EAP-MD5 * Модуль RPC для вызова функций из сторонних приложений (протокол сериализации BERT) * Модуль IPPool - для выдачи динамических ip адресов и работы с пулами адресов * Простой RADIUS клиент 2. netspire-iptraffic: * Управляет сессиями пользователей(create/interim/close) на основе Access-Request, Accounting-Start/Stop от RADIUS * Поддержка RADIUS accounting * Принимает netflow поток от коллектора, обсчитывает сумму денег на основе класса трафика * Работа с классами трафика по след. критериям: * Время суток * Дни недели * Тип протокола и номер порта * Src/Dst адрес/сети * Авто подъем сессий случае аварийного завершения биллинга * Отключения клиентов при отрицательном балансе 3. netspire-postgresql: * Использует драйвер для postgres (https://github.com/wg/epgsql) * Пул подключений 4. netspire-modules: * Модуль для отправки DM сообщения на NAS (используется для отключения клиентов) * Модуля для выполнения внешней скрипта/программы, тоже используется для отключения клиентов * Модуля для работы с GeoIP базой Логика работы реализуется в отдельных модулях, по аналогии с iptraffic, доступ к событиям из ядра системы (netspire-core) через хуки либо через добавления handler модулей (netflow) Для IPoE нужно будет писано новый dynamic module. Сейчас система работает в такой конфигурации: Есть N клиентов, подключаются они по PPP - сервер используется accel-ppp. Тарифы помегабайтные и безлимитные, установка скоростей через RADIUS атрибуты. Отключение клиентов посылкой DM на accel-ppp. В вашем случае модуль для IPoE должен быть не много проще в реализации, так как не обязательно иметь понятие сессий и связаной с сессиями рутины.
  6. Расскажите как у вас IPoE сделан. Адреса абонентов статические? Привязка по mac/port на свитчах? Изначально Netspire задумывался как конструктор для написания конкретных систем под конкретные задачи, так как на 100% всем не угодишь. Поэтому скорее всего придется писать модуль на подобие модуля iptraffic и там закладывать логику работы. В любом случае, вот мой jid - ates@ipv6.dp.ua, дайти больше информации, я попробую реализовать такой модуль.
  7. Erlang для подобного вида софта отлично подходит. К тому же, никто ж не говорить что абсолютно все компоненты должны быть написаны на нем, есть моменты когда лучше использовать другой язык и в итоге совместить в готовый продукт. На питоне-php и так хватает реализаций - это не интересно. В erlang есть некоторое возможности(горячая замена кода, легкие нити да и весь OTP way в целом), которые как раз для подходят для софта типа биллинг.
  8. Почему бы этот проэкт не разместить где нибудь типа github.com?
  9. echo "show stat" | nc -q1 localhost 2001 uptime: 6.06:33:29 cpu: 0% mem(rss/virt): 1368/77792 kB core: mempool_allocated: 219206 mempool_available: 173370 thread_count: 4 thread_active: 1 context_count: 7 context_sleeping: 0 context_pending: 0 md_handler_count: 13 md_handler_pending: 0 timer_count: 6 timer_pending: 0 ppp: starting: 0 active: 2 finishing: 0 pptp: starting: 0 active: 2 radius: auth sent: 29 auth lost(total/5m/1m): 0/0/0 auth avg query time(5m/1m): 0/0 ms acct sent: 54 acct lost(total/5m/1m): 0/0/0 acct avg query time(5m/1m): 0/0 ms interim sent: 12824 interim lost(total/5m/1m): 0/0/0 interim avg query time(5m/1m): 4/4 ms
  10. какой jid то ? ates@ipv6.dp.ua Вот как у меня получилось схватить core: http://pastie.org/1506347 и сам core: http://rghost.net/4115585
  11. не знаю, у себя воспроизвести не удаётся Как ты собераешь accel-ppp? Я если собераю как cmake -DMEMDEBUG=TRUE проблема не проявляется, если без MEMDEBUG - после второго захода по cli - segmentation fault и корка Если можешь авторизуй в жаббере, так быстрей будет проверить.
  12. Похоже что то сломалось - accel-ppp стопается после нескольких входов в cli через telnet: root@vpn-gw:~# ps -ef |grep [a]ccel root 16676 1 0 15:33 ? 00:00:00 /accel-ppp/sbin/accel-pppd -d -c /etc/accel-pptp.conf root@vpn-gw:~# telnet localhost 2000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. accel-ppp version a69ae308efe400d14ecbab676a5e7592908c6b46 accel-ppp# exit Connection closed by foreign host. root@vpn-gw:~# telnet localhost 2000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. accel-ppp version a69ae308efe400d14ecbab676a5e7592908c6b46 accel-ppp# exit Connection closed by foreign host. root@vpn-gw:~# telnet localhost 2000 Trying 127.0.0.1... Connected to localhost. Escape character is '^]'. Connection closed by foreign host. root@vpn-gw:~# ps -ef |grep [a]ccel В логах ничего нет [2011-01-28 15:33:19]: msg: accel-ppp version a69ae308efe400d14ecbab676a5e7592908c6b46 [2011-01-28 15:33:53]: info: cli: telnet: new connection from 127.0.0.1 [2011-01-28 15:33:56]: info: cli: telnet: new connection from 127.0.0.1 [2011-01-28 15:33:58]: info: cli: telnet: new connection from 127.0.0.1
  13. Похоже нужно добавить \r и перед acct sent: и interim sent:
  14. Немного сбивается форматирование при show stat (a69ae308efe400d14ecbab676a5e7592908c6b46): accel-ppp# show stat uptime: 0.00:01:51 cpu: 0% mem(rss/virt): 1116/61268 kB core: mempool_allocated: 132986 mempool_available: 131726 thread_count: 4 thread_active: 1 context_count: 5 context_sleeping: 0 context_pending: 0 md_handler_count: 5 md_handler_pending: 0 timer_count: 1 timer_pending: 0 ppp: starting: 0 active: 0 finishing: 0 pptp: starting: 0 active: 0 radius: auth sent: 0 auth lost(total/5m/1m): 0/0/0 auth avg query time(5m/1m): 0/0 ms acct sent: 0 acct lost(total/5m/1m): 0/0/0 acct avg query time(5m/1m): 0/0 ms interim sent: 0 interim lost(total/5m/1m): 0/0/0 interim avg query time(5m/1m): 0/0 ms accel-ppp# diff --git a/accel-pppd/radius/radius.c b/accel-pppd/radius/radius.c index b50b525..8a224f3 100644 --- a/accel-pppd/radius/radius.c +++ b/accel-pppd/radius/radius.c @@ -389,7 +389,7 @@ static int show_stat_exec(const char *cmd, char * const *fields, int fields_cnt, cli_sendv(client, " interim sent: %lu\r\n", stat_interim_sent); cli_sendv(client, " interim lost(total/5m/1m): %lu/%lu/%lu\r\n", stat_interim_lost, stat_accm_get_cnt(stat_interim_lost_5m), stat_accm_get_cnt(stat_interim_lost_1m)); - cli_sendv(client, " interim avg query time(5m/1m): %lu/%lu ms\n", + cli_sendv(client, " interim avg query time(5m/1m): %lu/%lu ms\r\n", stat_accm_get_avg(stat_interim_query_5m), stat_accm_get_avg(stat_interim_query_1m)); return CLI_CMD_OK;
  15. При компиляции 673bea74d2beb8d4260355f928499230c7ff9b17: /root/accel-ppp/accel-pppd/radius/stat_accm.c: In function ‘stat_accm_create’: /root/accel-ppp/accel-pppd/radius/stat_accm.c:27: warning: implicit declaration of function ‘malloc’ /root/accel-ppp/accel-pppd/radius/stat_accm.c:27: warning: incompatible implicit declaration of built-in function ‘malloc’ diff --git a/accel-pppd/radius/stat_accm.c b/accel-pppd/radius/stat_accm.c index 9367ceb..8d4ad3d 100644 --- a/accel-pppd/radius/stat_accm.c +++ b/accel-pppd/radius/stat_accm.c @@ -1,4 +1,5 @@ #include <string.h> +#include <stdlib.h> #include "radius_p.h" #include "mempool.h"