Биллинг АСР Ideco 3 + MikroTik ROS

по сравнению с
Текущая osv
на июн 05, 2013 16:57.

Ключ
Эта строка удалена.
Это слово было удалено. Это слово было добавлено.
Эта строка добавлена.

Изменения (125)

просмотр истории страницы
Информация предоставлена White_Crow с ресурса [http://xgu.ru/wiki/%D0%91%D0%B8%D0%BB%D0%BB%D0%B8%D0%BD%D0%B3_Ideco_%D0%90%D0%A1%D0%A0_%2B_MikroTik_ROS|http://xgu.ru/wiki/%D0%91%D0%B8%D0%BB%D0%BB%D0%B8%D0%BD%D0%B3_Ideco_%D0%90%D0%A1%D0%A0_%2B_MikroTik_ROS]

h2. Инструкция для версии Ideco АСР 3.9.7 и MikroTik Router OS 5.22


h2. Упрощенный пример интеграции для версии Ideco АСР >=3.9.7(RAD6) и MikroTik Router OS 5.22 для PPP пользователей


Похоже, что нужно отвыкать от бренда Ideco и привыкать к названию Сarbon Soft. Ибо, насколько я понимаю - произошел раскол компании, и теперь есть уже два юрлица, два разных сайта, два разных бренда - и соответственно разные продукты - вместо АСР Ideco - Carbon Billing. Но так как это не простой и долгий процесс разделения - пока еще существует именно Ideco АСР 3.9.7. Потому что Carbon Billing 5 находится в статусе Beta.
(Чуть позже я "потискаю" данный продукт на предмет женитьбы его с MikroTik Router OS. И заодно потискаем новую версию MikroTik Router OS 6 - которая тоже пока в статусе beta, но обещает новые возможности и уровень производительности на свежем железе - т.к. обновилось ядро Linux и драйверы (интересно будет найти и потестить современные мощные серверные сетевые карты и свежую серверную платформу). И, возможно, сделаю отдельную инструкцию типа '''Carbon Billing 5 + MikroTik Router OS 6'''.
h2. Базовая Схема. Краткое описание

\[[Файл:Cd7c181c87bf.png]\]
!Cd7c181c87bf.png!

Понятия:

Откройте консольное menu
\[[Файл:0f4d8356d57d.png]\]
!Файл:0f4d8356d57d.png!

h4. RADIUS


h3.

Настройте \[[RADIUS]\] сервер таким образом:

''Конфигурирование сервера \-> RADIUS-Сервер...''

[x] Включить RADIUS-сервер
[x] Удалять лишние пробелы из логина RADIUS
.
[x] Использовать процедуры версии 6

h4. {color:#000000}\[NetFlow\]{color}
h4. NetFlow


и пропишите свой ''IP-адрес компьютера администратора'':

[http://s008.radikal.ru/i306/1210/c0/0cf1dda0db01.png]
!0cf1dda0db01.png!

Для возможности правки некоторых файлов нужно в локальном меню зайти в пункт ''Сервис'' и нажать на пункт ''"Разрешить запись из \[[SFTP|WinSCP]\] на раздел с резервными копиями"''.

[http://s13.radikal.ru/i186/1210/ed/e3bd87c5c3c1.png]
!e3bd87c5c3c1.png!

h4. События и скрипты
[x] Запускать скрипт обработки событий

[http://s019.radikal.ru/i604/1210/68/3e513a6fffa1.png]
!3e513a6fffa1.png!

Перезагрузите сервер Ideco корректно из меню:

[http://s017.radikal.ru/i417/1210/90/699cbf874a8a.png]
!699cbf874a8a.png!

"Зайдите" на сервер с помощью \[[SFTP]\] на порт 33 под учетной записью root.
Я в линухе "из коробки" ввожу прямо так:

\[[Файл:E394e1c7e08e.png]\]
!E394e1c7e08e.png!

Перейдите в директорию <tt>/var/lib/event/</tt>
Выделите все и удалите. Затем вставьте следующее:
{code}
/usr/bin/selfkiller -30:TERM -50:KILL & disown -a
LOG_LEVEL=ALL

sendsms(){
sms="${sms//[^0-9]/}"
if [ "${#sms}" -lt 11 ]; then
LOG WARN "Phone number of abonent $id is too short. SMS not sent."
return 1
fi

}

SENDER=$1; shift
EVENT=$1; shift
##################################################################################################
"balance_negative")
if [ "$radius_logged" = "1" -a "$nas_ip" != "0.0.0.0" ]; then
/usr/local/bin/expect /var/lib/event/event1.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity
fi
##################################################################################################
"balance_positive")
if [ "$radius_logged" = "1" -a "$nas_ip" != "0.0.0.0" ]; then
/usr/local/bin/expect /var/lib/event/event3.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity $ceil_in $ceil_out
fi
##################################################################################################
"login") #Only for IP_auth
if [ "$nas_ip" != "0.0.0.0" -a "$auth_type" = 1 ]; then
if [ "$over_limit" = "0" ]; then
/usr/local/bin/expect /var/lib/event/event3.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity $ceil_in $ceil_out
##################################################################################################
"logout") #Only for IP_auth
if [ "$nas_ip" != "0.0.0.0" -a "$auth_type" = 1 ]; then
/usr/local/bin/expect /var/lib/event/event2.sh $nas_ip $ip $telnet_user $telnet_password $nas_identity
fi
Добавим параметры нашего NASа по примеру:

\[[Файл:61eea54a757d.png]\]
!61eea54a757d.png!

h4. Пулы
(не имеет значения - белые адреса, либо серые).
Позже также мы рассмотрим варианты с "динамическими" и "статическими" адресами, а также нюансы с белыми и серыми адресами, и варианты без VPN тунелей и использование DHCP.
\[[Файл:2ec78ce4ddc5.png]\]
!2ec78ce4ddc5.png!

h2. Базовая настройка MikroTik ROS
в разделе ''System \-> Identity'' : ''nas1''

\[[Файл:5b0b2b6aa11b.png]\]
5b0b2b6aa11b.png\!

h3. Clock
Нужно настроить время на NASе для нормальной работы и логов.
Пропишите ближайшие к Вам два надежных сервера NTP.
\[[Файл:5b2cb3dfe4a1.png]\]
!5b2cb3dfe4a1.png!

h3. Telnet group/user
нажмите Ok.

\[[Файл:D3b988179489.png]\]
!D3b988179489.png!

Далее жмите вкладку ''Users''.
Укажите и подтвердите пароль созданного юзера ''user2'' (тот, что я просил выше придумать вместо YOUR_TELNET_PASSWD и записать на бумажке)

\[[Файл:6995efa7efae.png]\]
!Файл:6995efa7efae.png!

h3. DNS


\[[Файл:E8139d99b8af.png]\]
!Файл:E8139d99b8af.png!

h3. DHCP
Запустите мастера настройки DHCP сервера на Микротике.

\[[Файл:F6a4a1263577.png]\]
!F6a4a1263577.png!

Подробно пока не буду заострять внимания на этих банальных настройках - в Сети множество примеров.
Итак - если вы решили юзать PPPоE - отключите PPPoE сервер в биллинге:

\[[Файл:1484afa87036.png]\]
!Файл:1484afa87036.png!

Далее настройте профиль default:

\[[Файл:798feb700475.png]\]
!798feb700475.png!

и

\[[Файл:De78a5f63cfd.png]\]
!De78a5f63cfd.png!




\[[Файл:Ebfff5a9b21d.png]\]
!Ebfff5a9b21d.png!

Включаем PPPoE сервис на локальном интерфейсе с профилем default:

\[[Файл:08274ccdb2f6.png]\]
!08274ccdb2f6.png!

Если вместо PPPoE решили юзать PPTP или L2TP - включите нужный Вам сервис:

\[[Файл:84cef8874df8.png]\]
!84cef8874df8.png!

h3. Traffic Flow
Для подсчета объемов трафика и сбора подробной статистики нужно отсылать биллингу инфу о проходящем сквозь NAS трафике юзеров:

\[[Файл:0356d6ff15f4.png]\]
!0356d6ff15f4.png!

Включите traffic flow, выбирите все интерфейсы (all) и укажите куда отсылать netflow v5 - адрес вашего биллинга.

Я лично отсылаю netflow версии 9 не на биллинг, а на отдельный сервер. (для справки - я юзаю debian + nfdump + nfsen). А объемы трафика у меня в биллинге считаются не с помощью netflow, а с помощью Radius протокола.
\[[Файл:F118f4e0c220.png]\]
!F118f4e0c220.png!

Это нужно, когда у вас десятки тысяч юзеров и гигабиты трафика в секунду - чтобы не напрягать биллинг. Таким образом легко можно масштабировать \[[NetFlow]\] коллекторы - например условно на каждых 5 NASов - свой нетфлоу коллектор.
Включаем radius пока только для VPN (ppp), позже рассмотрим работу radius + DHCP и + Hotspot

\[[Файл:Eae38e5b953f.png]\]
!Eae38e5b953f.png!

Прописываем адрес биллинга. И указываем ваш радиус секрет (тот, который вы придумали YOUR_RADIUS_SECRET)
h3. Простой безлимит (№1)

\[[Файл:Dd19953e602e.png]\]
!Dd19953e602e.png!

Пусть вас не смущает, что я написал скорость "1". Это не килобиты в данном случае, а номер, который будет передаваться в Микротик. Есть лицензия на Ideco - которая позволяет обойтись без использования NAS и пропускать трафик через сервер биллинга - в этом случае тут пишутся реальные скорости в килобитах для шейпера Ideco SoftRouter. В нашем случае трафик идет не через Ideco, а через Микротик - там мы и будем позже настраивать шейпер.
{{note\|text=В описываемой мной схеме - RADIUS атрибуты в тарифе прописывать не нужно\!\!\!}}

\[[Файл:7a88f3b62132.png]\]
!7a88f3b62132.png!

h3. Условный безлимит (скорость зависит от объема)(№2)

\[[Файл:Ed8c10cee402.png]\]
!Ed8c10cee402.png!

До 200 Гигов входящего объема - скорость номер 2

\[[Файл:A85365aa5229.png]\]
!A85365aa5229.png!


После 200 Гигов входящего объема - скорость номер 22 - до конца месяца.

\[[Файл:35f51c301cb9.png]\]
!35f51c301cb9.png!

h3. "Помегабайтный" (цена зависит от объема) (№3)

\[[Файл:Ed0a1a7fc802.png]\]
!Ed0a1a7fc802.png!

Тут никто не мешает добавить других правил и подсетей с другой стоимостью мегабайтов.
h3. Безлимит - разная скорость в разное время суток (№4)

\[[Файл:D1fbdc2856dc.png]\]
!D1fbdc2856dc.png!

{{note\|text=Внимание\! Мы будем менять скорость в разное время суток для этого тарифа - на Микротике (об этом позже).
h3. Турбокнопка (№5)

\[[Файл:4657a9a9e7e0.png]\]
!4657a9a9e7e0.png!

Укажите стоимость услуги, номер скорости, время действия турбо-режима, и разрешите заказ через веб кабинет.
Важно: Во всех тарифах отключите "Разрешить все услуги с флагом "заказ через Web" и явно добавьте в каждый тариф нужные услуги, в том числе и турбокнопки, коих можно создать неограниченное к-во с разными параметрами цены. скорости и времени действия.

\[[Файл:37d92db5de90.png]\]
!37d92db5de90.png!

h3. Настройка группы и "карточки" юзера
Создайте группу по примеру:

\[[Файл:277309f71e9a.png]\]
!277309f71e9a.png!

Cоздайте юзеров по примеру:

\[[Файл:4f19a5fd80fa.png]\]
!4f19a5fd80fa.png!

''Комментарии:''
add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=Total_upload packet-mark="" parent=global-out priority=1

=== Маркировка трафика в Mangle ===
h3. Маркировка трафика в Mangle

Итак, настроим маркировку трафика в двух направлениях (download/upload) для наших четрыех тарифов и турбокнопки:
В итоге должно получится вот так:

\[[Файл:744d9be53f95.png]\]
!744d9be53f95.png!

h3. Cоздание типов очередей PCQ
В итоге должно получиться так:

\[[Файл:936279405a39.png]\]
!936279405a39.png!

И как я говорил выше - можно в любой момент тюнить скорость без всяких разрывов, меняя параметр pcq-rate=
В итоге получаем окончательный шейпер (дерево очередей) для наших тарифов и турбокнопки:

\[[Файл:45e6851bbfec.png]\]
!45e6851bbfec.png!


В итоге получаем:

\[[Файл:5d7869d4edbb.png]\]
!5d7869d4edbb.png!

h3. Тарифы и Firewall Filter


h3.

Для экономии белых адресов есть смысл раздавать их динамически и сохранять логи для спецслужб.
Для динамической выдачи адресов существует соответствующая вкладка в настройке тарифа в Ideco Manager:


h3.

Есть тенденция избежать использование тунелей VPN (PPTP, L2TP, PPPoE) - чтобы упростить жизнь юзерам.
Ведь VPN тунели изначально придумали совсем не для того, чтобы "подключаться к интернету". Это уже позже их к этому приспособили.


h3.

В Микротике есть возможность связать DHCP с RADIUS.

\[[Файл:Cd26baaca499.png]\]
!Cd26baaca499.png!


Тут справедливо все вышесказанное, с той лишь разницей, что Тик может еще и опц82 передавать в радиус запросе для биллинга. И в биллинге можно ее анализировать вместо MAC юзера. (MAC можно игнорить - нафег он нам нужен). Для этого нужно прописать адрес DHCP relay (если релеев много - значит указать "принимать со всех - 255.255.255.255 или 0.0.0.0 - точно не помню - попробуйте оба варианта).

\[[Файл:B1b27531d95e.png]\]
!B1b27531d95e.png!

Недостатки схемы те же, что и в предыдущем случае. К тому же - в ideco нужно правильно "разбирать" поля опции82 - так как они для разных вендоров разные - тоже из коробки не будет работать пока-что. Если кому сильно надо - нужно обращаться к разработчкиам - '''они подпилят'''. (Конечно, если у Вас не бесплатная лицензия, поддержка на которую не оказывается). Хотя на демо версию - поддержка есть. И если Вы убедите их - что Вы - потенциальный клиент - собрались купить лицензию, и лишь "вот этот вот нюанс" вас останавливает ....)))
С той лишь разницей - на точках доступа используется не VPN, а HOTSPOT - в котором есть полноценный RADIUS c аккаунтингом:

\[[Файл:6a3ed6a90ef2.png]\]
!6a3ed6a90ef2.png!

Включаем Web авторизацию + CHAP:

\[[Файл:Dba8e01fd594.png]\]
Dba8e01fd594.png\!

В итоге в браузере клиента появится окошко, где нужно вводить имя и пароль. Эту страничку можно разукрасить как угодно. И добавить разных ссылок и полезных каментов и объясняшек и т.д.


h3.

Можно использовать авторизацию по MAC адресу.

\!\!\! При этом, напоминаю, HotSpot не только для беспроводной сети - он отлично работает и на ethernet интерфейсах. И если веб авторизация явно предназначена для беcпроводных клиентов в лице разных мобилок и прочих девайсов аля планшетики, то хотспот + MAC авторизация - вполне органично может использоваться в Ethernet сети для проводных клиентов.

[http://i047.radikal.ru/1210/3a/7a66ac754671.png]
!7a66ac754671.png!

На ideco соответственно вместо имени и chap пароля юзера - проверяется только MAC адрес юзера и общий пароль. (на скрине выше заполните поле MAC Auth. Password ), и пропишите этот "общий" радиус пароль в Ideco Manager - в св-вах соответсвующего NASa ("оборудование" - "маршрутизаторы" - ... выбираем NAS ... - "USERS_PSW" ):

[http://s017.radikal.ru/i414/1210/66/cc975314fe76.png]
!cc975314fe76.png!

MAC передается заглавными символами. По-поводу дефисов и двоеточий - выбирайте шаблон в Тике в ниспадающем списке "MAC Format" ("IP - Hotspot - Radius"):

[http://s019.radikal.ru/i639/1210/fa/f22db194be50.png]
!f22db194be50.png!

\!\!\! Внимание - вписывайте MAC в поле "Логин" - в карточке юзера в Ideco менеджере.

[http://s006.radikal.ru/i213/1210/7a/bcea2859e234.png]
!bcea2859e234.png!

\!\!\! Нужно отключить фишку на Ideco, которая режет пробелы и заглавные символы в радиус запросах (да - таки эта фишка кроме пробелов еще режет символы A-Z - чуть ниже расскажу зачем вообще она нужна):

\[[Файл:B6b501aba4cf.png]\]
!B6b501aba4cf.png!

(кстати - никто не мешает редактировать и тюнить на Ideco - конфиг freeradius сервера - если понимаете что и для чего...)
h4. VirtualAP


h3.

Например: в торговом центре есть ваши точки доступа. 90% юзеров юзают говносмартфоны и говнопланшеты. Но есть 10% - которым нужно подключить какие-то банковские терминалы и прочие вундервафли, которые не умеют ни впн, ни веб авторизацию и вообще вай фай не умеют )))

h3. IPoE без Radius


h3.

''Особенности и причины использования IPoE без RADIUS AAA.''
Подведем промежуточные итоги:
h4. DHCP Ideco + Opt.82


h3.

Итак, Микротик dhcp + radius + Ideco = пока не взлетел.

\!\!\! Скрипт обработки событий универсальный - не требует допила - \!\!\! можно юзать '''смешанную схему''' - и VPN и ip авторизацию. Соответственно и настройки NASа в Ideco - ничем не отличаются:

\[[Файл:61eea54a757d.png]\]
!61eea54a757d.png!

(пусть вас не смущают галочки "лишние" - это для универсальности: VPN + radius и схема IPoE без радиус могут работать одновременно\!). Понятно, что радиус и впн можно и не настраивать - IPoE все равно будет работать\!
Так как приходится обходится без радиуса - то биллинг ни черта не в курсе через какой NAS там форвардится юзерский траф - поэтому в "карточке" клиента нужно прописать NAS IP и залочить галочку.

\[[Файл:36223c24f223.png]\]
!36223c24f223.png!

Недостаток схемы - из-за отсутствия радиуса - нет фактического логина/логаута - нет постоянной "актуализации" в каком листе юзер должен находится. Событие "логин" происходит формально один раз. Юзер как бы подключен всегда - нет явных сессий по факту. Трафик рулиться с помощью редких событий - баланс негатив и позитив (так как юзеры платят сразу на неделю или даже месяц). В итоге может происходит "рассинхрон" между биллингом и NAS.
h4. DHCP Ideco + MAC


h3.

Тоже самое, что и предыдущая схема, только вместо опции82 - юзается MAC - для раздачи адресов.

h4. IPoE без DHCP и Radius


h3.

Можно в карточке юзера:
\-прописать его адрес вручную