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

ates

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

    21
  • Joined

  • Last visited

Everything posted by ates


  1. Привет, Возможно ли с cisco выдернуть информацию: show ip nat translation по SNMP? То есть хотелось бы получить всю таблицу или возможно как выборочно указать по какому IP фильтровать. Спасибо
  2. Мужики, запилите этот проект уже на каком нибудь github, что бы можно было нормально следить за развитием. А там уже кто поднятется.
  3. Пока нет, выложу когда соберу готовую систему. Глянь личные сообщения.
  4. Прошу посмотреть на проект биллинговой системы. Система модульная, разделена на несколько основных частей: 1. netspire-core - основная часть, включает в себя основные блоки для построения модулей для обслуживание разного рода сервисов: * RADIUS сервер * Netflow коллектор (v5 и v9) * Реализацию основных протоколов аунтификации (PAP, CHAP, MSCHAPv2, Digest) * RPC модуль * IPPool модуль 2. netspire-iptraffic - модуль для обслуживания VPN клиентов. Поддерживает тарификацию по src/dst ip, src/dst port, protocol и времени суток. 3. netspire-postgresql - драйвер к postgresql 4. netspire-modules - пока включает только два модуля: для отключения клиентов посылкой DM на NAS и выполнением внешнего скрипта/программы. Лицензия: GPL. Система написана на языке Erlang. Работает везде где работает Erlang, тестировалась на linux, bsd, osx. Основная база данных - postgresql, но прикрутить другую довольно легко. Тут лежат исходники: https://github.com/ates/netspire-core https://github.com/ates/netspire-iptraffic https://github.com/ates/netspire-postgresql https://github.com/ates/netspire-modules Документация, сейчас не совсем готова, но кое что есть: https://github.com/ates/netspire-core/wiki В данный момент биллинг работает в связке с accel-pptp. Пытаюсь тестировать на сколько могу. Если есть у кого то возможность/время потестировать - буду благодарен за сообщения об ошибках. Пока что нет web интерфейса, но он в процессе. Если кого то заинтерисует - с радостью помогу с установкой и настройкой. Спасибо.
  5. Я сейчас начал рефакторить и переделывать код системы в более правильный вид. Пока кодовая база не большая - легко будет понять что как сделано.
  6. Что сейчас реализовано: 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 должен быть не много проще в реализации, так как не обязательно иметь понятие сессий и связаной с сессиями рутины.
  7. Расскажите как у вас IPoE сделан. Адреса абонентов статические? Привязка по mac/port на свитчах? Изначально Netspire задумывался как конструктор для написания конкретных систем под конкретные задачи, так как на 100% всем не угодишь. Поэтому скорее всего придется писать модуль на подобие модуля iptraffic и там закладывать логику работы. В любом случае, вот мой jid - ates@ipv6.dp.ua, дайти больше информации, я попробую реализовать такой модуль.
  8. Erlang для подобного вида софта отлично подходит. К тому же, никто ж не говорить что абсолютно все компоненты должны быть написаны на нем, есть моменты когда лучше использовать другой язык и в итоге совместить в готовый продукт. На питоне-php и так хватает реализаций - это не интересно. В erlang есть некоторое возможности(горячая замена кода, легкие нити да и весь OTP way в целом), которые как раз для подходят для софта типа биллинг.
  9. Почему бы этот проэкт не разместить где нибудь типа github.com?
  10. 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
  11. какой jid то ? ates@ipv6.dp.ua Вот как у меня получилось схватить core: http://pastie.org/1506347 и сам core: http://rghost.net/4115585
  12. не знаю, у себя воспроизвести не удаётся Как ты собераешь accel-ppp? Я если собераю как cmake -DMEMDEBUG=TRUE проблема не проявляется, если без MEMDEBUG - после второго захода по cli - segmentation fault и корка Если можешь авторизуй в жаббере, так быстрей будет проверить.
  13. Похоже что то сломалось - 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
  14. Похоже нужно добавить \r и перед acct sent: и interim sent:
  15. Немного сбивается форматирование при 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;
  16. При компиляции 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"
  17. Здравствуйте, Если у кого то есть возможность - выложите пожалуйста radius dump между cisco isg и радиус сервером. Интересует все этапы: access-request, access-response, accounting-start, accounting-interim, accounting-stop Спасибо.
  18. Интересуют какие и в каком виде атрибуты передаются между isg и radius. Имея эти пакеты смогу их подогнать под себя и эмулировать работу клиента что бы потестировать биллинг. Но наверно все равно придется с dynamips возится.
  19. Почему возникла идея делать это в виде отдельного демона вместо плугина для pppd?
  20. Есть фреймфорк на erlang который понимает netflow 5 и 9. Если erlang не пугает - достаточно легко адаптировать под ваши нужды.