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

ates

Пользователи
  • Публикации

    21
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные пользователем ates


  1. Привет,

     

    Возможно ли с cisco выдернуть информацию: show ip nat translation по SNMP?

     

    То есть хотелось бы получить всю таблицу или возможно как выборочно указать по какому IP фильтровать.

     

    Спасибо

  2. А насколько сильно оно завязано на сессионный доступ? Чтото я не понял сходу как например сделать модуль для IPoE например (понятно что тут dhcp видимо надо будет еще приделывать)..

    Видимо только с костыликами типа ISG?

     

    Я сейчас начал рефакторить и переделывать код системы в более правильный вид. Пока кодовая база не большая - легко будет понять что как сделано.

  3. Что сейчас реализовано:

     

    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 должен быть не много проще в реализации, так как не обязательно иметь понятие сессий и связаной с сессиями рутины.

  4. А насколько сильно оно завязано на сессионный доступ? Чтото я не понял сходу как например сделать модуль для IPoE например (понятно что тут dhcp видимо надо будет еще приделывать)..

    Видимо только с костыликами типа ISG?

     

    Расскажите как у вас IPoE сделан. Адреса абонентов статические? Привязка по mac/port на свитчах?

     

    Изначально Netspire задумывался как конструктор для написания конкретных систем под конкретные задачи, так как на 100% всем не угодишь.

    Поэтому скорее всего придется писать модуль на подобие модуля iptraffic и там закладывать логику работы.

    В любом случае, вот мой jid - ates@ipv6.dp.ua, дайти больше информации, я попробую реализовать такой модуль.

  5. Интерес к биллингу равно такой, какой и к erlang, т.е. чуть более чем ноль.

    Был бы написан на том же, питоне-php, коммунити бы подтянулось.

     

    Erlang для подобного вида софта отлично подходит.

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

    На питоне-php и так хватает реализаций - это не интересно.

    В erlang есть некоторое возможности(горячая замена кода, легкие нити да и весь OTP way в целом), которые как раз для подходят для софта типа биллинг.

  6. Оказалось, что мини-вебсервер не выдерживает потока подключений. Переделал с POE.

    Патч по сравнению с предыдущей версией: http://dl.dropbox.com/u/12495607/web_auth_v5_to_v6.patch .

    Патч для ванильной версии (предпочтительней): http://dl.dropbox.com/u/12495607/web_auth_v6.patch .

     

    Почему бы этот проэкт не разместить где нибудь типа github.com?

  7. Добрый день.

    Подскажите пожалуйста как общаться с cli консолью accel`ля через tcp ?

    В конфиге есть cli tcp 127.0.0.1 2001

    на все комманды аналогчные telnet cli получаю

    show stat
    command unknown

    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
    

  8. Похоже что то сломалось - accel-ppp стопается после нескольких входов в cli через telnet:
    не знаю, у себя воспроизвести не удаётся

     

    Как ты собераешь accel-ppp?

     

    Я если собераю как cmake -DMEMDEBUG=TRUE проблема не проявляется, если без MEMDEBUG - после второго захода по cli - segmentation fault и корка

     

    Если можешь авторизуй в жаббере, так быстрей будет проверить.

  9. ates, да спасибо, уже сделал комит

    Похоже что то сломалось - 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
    

  10. Немного сбивается форматирование при 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;
    

     

  11. При компиляции 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"
    

  12. а почему именно cisco ISG ? типы сообщений то везде одинаковые .

    Интересуют какие и в каком виде атрибуты передаются между isg и radius.

     

    Имея эти пакеты смогу их подогнать под себя и эмулировать работу клиента что бы потестировать биллинг.

     

    Но наверно все равно придется с dynamips возится.

  13. Здравствуйте,

     

    Если у кого то есть возможность - выложите пожалуйста radius dump между cisco isg и радиус сервером.

     

    Интересует все этапы: access-request, access-response, accounting-start, accounting-interim, accounting-stop

     

    Спасибо.

  14. Прошу посмотреть на проект биллинговой системы.

     

    Система модульная, разделена на несколько основных частей:

     

    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 интерфейса, но он в процессе.

     

    Если кого то заинтерисует - с радостью помогу с установкой и настройкой. Спасибо.

  15. Чем сейчас модно собирать и обрабатывать netflow?

     

    Сам присматриваюсь к flow-tools с хранением суммарных данных в mysql. Насчет подбивки статистики пока склоняюсь к самостоятельному написанию. Или есть хорошие готовые обработчики статистики?

    Есть фреймфорк на erlang который понимает netflow 5 и 9. Если erlang не пугает - достаточно легко адаптировать под ваши нужды.