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

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

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

просмотр истории страницы


\!\! !Важно!\!\! Похоже, что нужно отвыкать от бренда 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'''.

В статье рассматривается инсталляция и настройка связки ''Mikrotik'' и биллинговой системы ''Ideco ACP''. Рассматриваемая в статье связка может использоваться у малых и средних провайдеров доступа к сети Интернет для организации управляемого доступа. Схема опробована в инсталляции, насчитывающей около 15 000 пользователей.

== Введение ==
h2. Введение

Цель статьи --- осветить базовые нюансы настройки для взаимной работы в паре двух программных продуктов:

Прошу не путать два совершенно разных продукта Ideco ACP и Ideco ICS. (как выше уже писал - явно происходит разделение компании и постепенный ребрендинг Ideco ACP \-> Carbon Billing)

== Установка и первичная настройка ==
h2. Установка и первичная настройка

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

== Лицензии ==
h2. Лицензии

Для ознакомления с данными программными продуктами существуют полнофункциональные демоверсии, которые можно скачать на официальных сайтах.
К слову, лицензию Ideco АСР на 200 юзеров можно получить легально и БЕСПЛАТНО, обратившись в отдел продаж компании разработчика. И у компании есть собственная разработка сервера доступа --- Carbon AS 4 ® --- в том числе и с бесплатной лицензией, о чем можно подробней прочитать на официальном сайте.

== Базовая Схема. Краткое описание ==
h2. Базовая Схема. Краткое описание

\[[Файл:Cd7c181c87bf.png]\]
Далее рассмотрим подробней различные аспекты совместной работы двух систем.

== Базовая Настройка Ideco АСР ==
h2. Базовая Настройка Ideco АСР

Инструкция актуальна для версии Ideco АСР 3.9.7
Просто замечу: я рекомендую использовать для коммерческого использования именно версию 3.9, так как продукт за последний год сильно доработан и улучшен.

=== Создание пользователя root ===
h3. Создание пользователя root

Первым делом создайте пользователя ''root''
(не путать с устаревшим разделом: "Создание пользователя root").

=== Консольное меню ===
Откройте консольное menu
h3. Консольное меню

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

==== RADIUS ====
h4. RADIUS


h3.

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

[x] Использовать процедуры версии 6

h3. ==== \[[NetFlow]\] ====

''Конфигурирование сервера \-> NetFlow коллектор...''
[x] Приём NetFlow потоков с разных источников

h3. ==== SSH managment ====

для удаленного входа в консоль биллинга используется протокол \[[SSH]\]
[http://s13.radikal.ru/i186/1210/ed/e3bd87c5c3c1.png]

h2. ==== События и скрипты ====
В локальном меню проверьте наличие галочки в пункте:

В локальном меню проверьте наличие галочки в пункте:
''Конфигурирование сервера \-> Дополнительные настройки \-> Настройки для разработчиков...''

esac
{code}

{{caution\|text=
'''Важно\!\!\!''' Если в венде это делаете - Файл должен содержать unix символы окончания строки.
(если не знаете, что это такое, и как в венде в разных текстовых редакторах выбрать тип окончания строки...погуглите (если, конечно, в "вашей стране" еще не закрыли доступ в гугл ))).
}}



Запишите на бумажку:

Установите на вышесозданные файлы - execute права.

h2. === Manager ===

Интерфейс управления Ideco Manager написан и скомпилирован под венду, но в wine работает без вопросов.

h3. ==== Общие настройки ====

''Сервис \-> Настройки''
Таймаут accounting update - данную переменную можете ставить сутки (в секундах, ессно).

h3. ==== Оборудование ====

Добавим параметры нашего NASа по примеру:
\[[Файл:61eea54a757d.png]\]

h3. ==== Пулы ====

Добавляете пул адресов, которые через RADIUS будут выдаваться юзерам в VPN тунели
(не имеет значения - белые адреса, либо серые).
Позже также мы рассмотрим варианты с "динамическими" и "статическими" адресами, а также нюансы с белыми и серыми адресами, и варианты без VPN тунелей и использование DHCP.

\[[Файл:2ec78ce4ddc5.png]\]

h2. == Базовая настройка MikroTik ROS ==

h3. === Identity ===

Как уже упоминалось ранее - имя вашего сервера Микротик нельзя менять от балды, по дефолту пропишите
\[[Файл:5b0b2b6aa11b.png]\]

h3. === Clock ===

Нужно настроить время на NASе для нормальной работы и логов.
Пропишите ближайшие к Вам два надежных сервера NTP.

\[[Файл:5b2cb3dfe4a1.png]\]

h3. === Telnet group/user ===

В биллинге автоматически выполняются скрипты по различным событиям и производят определенные манипуляции на сервере NAS через telnet.
\[[Файл:6995efa7efae.png]\]

h3. === DNS ===

Для корректной работы интернет сервисов необходимо настроить службу \[[DNS]\].
\[[Файл:E8139d99b8af.png]\]

h3. === DHCP ===

Если Вы используете DHCP на NASе, то отключите его в биллинге.
Если вы решили использовать авторизацию PPPoE для юзеров - то выдавать IP адреса на физический интерфейс юзеров - не обязательно - тунель работает на основе MAC адресов клиента и сервера (на втором уровне (L2) семиуровневой модели \[[OSI]\]). (Но если все таки юзерам нужно видет друг друга в локалке мимо тунеля и сервера - тогда, конечно, назначайте адреса на физические фейсы юзерских девайсов).

h3. === VPN (secret/profile/radius) ===

Самый лучший из тунелей - это \[[PPPoE]\] - так как он кушает гораздо меньше ресурсов, чем PPTP - потому что в микротике реализован как модуль ядра ("ядерный"), в отличие от PPTP/L2TP - демоны которых крутяться в userspace - пространстве для юзеров и из-за частой смены контекста выполняются "лишние" операции.
\[[Файл:84cef8874df8.png]\]

h3. === Traffic Flow ===

Для подсчета объемов трафика и сбора подробной статистики нужно отсылать биллингу инфу о проходящем сквозь NAS трафике юзеров:
Включите traffic flow, выбирите все интерфейсы (all) и укажите куда отсылать netflow v5 - адрес вашего биллинга.

h3. === Radius Accounting ===
Я лично отсылаю netflow версии 9 не на биллинг, а на отдельный сервер. (для справки - я юзаю debian + nfdump + nfsen). А объемы трафика у меня в биллинге считаются не с помощью netflow, а с помощью Radius протокола.

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

(важно - в общих настройках в манагере '' радиус аккаунтинг таймаут'' должен быть больше чем Acct-Interim-Interval, и как я уже выше советовал - ставьте таймаут сутки)

h3. === RADIUS ===

Включаем radius пока только для VPN (ppp), позже рассмотрим работу radius + DHCP и + Hotspot
Прописываем адрес биллинга. И указываем ваш радиус секрет (тот, который вы придумали YOUR_RADIUS_SECRET)

h2. == Тарифы. Ideco ==

Рассмотрим четыре базовых тарифа и "турбокнопку".
Прежде чем создать тарифы - создайте в Ideco Manager "правила и сети". А лучше воспользуйтесь заготовками, которые есть в базе данных для примера. И не забывайте про онлайн документацию.

h3. === Простой безлимит (№1) ===

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

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

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

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

\[[Файл:Ed0a1a7fc802.png]\]
И никто не мешает указать разную стоимость трафика для разных объемов, времени суток, и для входящего и исходящего - раздельно.

h3. === Безлимит - разная скорость в разное время суток (№4) ===

\[[Файл:D1fbdc2856dc.png]\]
Поэтому тут в Ideco не нужно указывать время и скорость.}}

h3. === Турбокнопка (№5) ===

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

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

Создайте группу по примеру:
Внимательно с признаком "финансовый" и "порогом отключения" и "периодом формирования акта" (варианты использования - в официальной документации)

h2. == Тарифы. MikroTik ==

h3. === Дерево очередей. Родители. ===
Переходим к так называемому шейперу.

Переходим к так называемому шейперу.
Кого интересует теория - можно немного почитать [http://wiki.mikrotik.com/images/8/8d/QoS_Megis_%28Russian_translate_by_white_crow_rev.2%29.pdf тут] мой перевод одной презентации (\[[Media:QoS Megis (Russian translate by white crow rev.2).pdf|скачать]\])

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

h3. === Cоздание типов очередей PCQ ===

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

h3. === Создание листьев в дереве очередей ===

Теперь создаем ветки шейпера на основе созданных нами правил разметки трафика и созданных типов очередей:


h3. === Расписание изменения скорости для тарифа №4 ===

У нас есть тариф, где нам нужно менять скорость, например днем 2M/2M, а ночью 50M/50M, (при этом можно конкретные часы/минуты/секунды можно менять произвольно, и при этом ничего не нужно править в биллинге):
\[[Файл:5d7869d4edbb.png]\]

h3. === Тарифы и Firewall Filter ===
Итак закончили с разметкой трафика и шейпингом - теперь приступим к фильтрации трафика:

Итак закончили с разметкой трафика и шейпингом - теперь приступим к фильтрации трафика:
* Нужно заблокировать трафик для тех, у кого отрицательный баланс
* разрешить "авторизованный трафик" для залогиненых юзеров (для всех тарифов и турбокнопок)
Примечание - не забывайте, что в фаерволе имеет значение порядок следования правил.

h2. == NAT ==
Если Вы раздаете юзерам серые адреса и у Вас на внешнем фейсе в Микротике один белый (реальный) адрес - не забудьте настроить маскарадинг. В самом простом случае:

Если Вы раздаете юзерам серые адреса и у Вас на внешнем фейсе в Микротике один белый (реальный) адрес - не забудьте настроить маскарадинг. В самом простом случае:
/ip firewall nat
add action=masquerade chain=srcnat disabled=no out-interface=ether1-Ext


h3. == Динамическая раздача IP адресов==
Для экономии белых адресов есть смысл раздавать их динамически и сохранять логи для спецслужб.

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

Все вышесказанное - в контексте использования RADIUS протокола.

h3. == IPoE авторизация==

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


h2. === IPoE с Radius ===
==== DHCP Mikrotik + MAC + Radius ====


h3. ==== DHCP Mikrotik + MAC + Radius ====

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

И есть еще один нюанс - DHCP MikroTik не умеет Radius аккаунтинг. Т.е. объемы нужно в любом случае считать с помощью netflow (99,99999% так и делают). Но вот логика Ideco завязана на radius update пакеты - чтобы юзер оставался "онлайн" . Дальше пока даже не стал разбираться с нюансами: dhcp lease time, release (освобождение адреса), переподключения и прочие заморочки из реальной жизни.

h3. ==== DHCP Mikrotik + Opt.82 + Radius ====

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

h3. ==== WiFi и HotSpot: Web авторизация + CHAP + Radius ====

Данная схема абсолютно рабочая и кошерная.
Кстати - HotSpot работает не только на беспроводном фейсе, но и вполне себе на Ethernet интерфейсах. О чем ниже...

h3. ==== WiFi и Ethernet HotSpot: MAC+Radius ====

Можно использовать авторизацию по MAC адресу.
Схема - рабочая. Если не смущает собирать мак адреса клиентов и есть возможность обеспечить защиту от подмены мак адресов. Условно позиционируем эту схему для небольшой сети.

h3. ==== VirtualAP ====

Например: в торговом центре есть ваши точки доступа. 90% юзеров юзают говносмартфоны и говнопланшеты. Но есть 10% - которым нужно подключить какие-то банковские терминалы и прочие вундервафли, которые не умеют ни впн, ни веб авторизацию и вообще вай фай не умеют )))
Для того, чтобы наша (провайдерская) точка доступа могла и хотспот и впн одновременно - придумали Virtual AP - создаем на физическом беспроводном фейсе сколько нужно виртуальных AP - каждая из которых может иметь свой SSID, и типы авторизации (на одной AP включаем hotspot, на другой не включаем и юзаем VPN как обычно), а также наличие/отсутствие своих ключей. Для веб авторизации - оставить видимую беспроводную сетку без ключа. Для остальных извратов - сетку скрыть - ключом закрыть и настраивать индивидуальные роутеры клиентов - чтобы остальных не путать.

h3. === IPoE без Radius ===
''Особенности и причины использования IPoE без RADIUS AAA.''

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

Поэтому рассмотрим следующие варианты:

h3. ==== DHCP Ideco + Opt.82 ====

Итак, Микротик dhcp + radius + Ideco = пока не взлетел.
Внезапно можно написать скрипт или программку синхронизации биллинга и NAS и запускать в планировщике по расписанию с заданным интервалом. Тогда можно и для относительно большой сети эту схему применить.

h3. ==== DHCP Ideco + MAC ====

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


h3. ==== IPoE без DHCP и Radius ====

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

\-IP NAS прописать и залочить

(Есть еще такие, кто не юзает DHCP, а прописывает руками и делает привязки и фильтры на свичах - почему бы и нет - если оно работает))

h2. == Разное ==
=== Редирект отрицательный баланс ===


h3. === Редирект отрицательный баланс ===

IRL - удобно пользователей с превышенным лимитом отправлять на специальную страничку - где ему объясняется, что, мол, кончились денежки на счету у поциента). И там же описываете множество способов оплаты и размещаете прочие разные памятки и "важную полезную инфу" ).

Другими словами - на писюках нужно использовать минимум извращений. В идеале - если у Вас десятки тысяч клиентов - нужно юзать специализированное оборудование операторского класса (и уж точно не нужно юзать VPN в 21 веке - для "авторизации" доступа в Инет).

h3. === Исключить список ресурсов из шейпера ===
Нет ничего проще.

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

Таким образом можно сделать больше скорость на "городские ресурсы" (пиринговые ресурсы) - чем скорость в Инет

h3. === Отдельные шейперы для отдельных ресурсов на разных тарифах ===

Можной пойти дальше и сделать комбинации - для каждого тарифа - своя скорость не только в Инет - но и на эти "городские ресурсы". Это тоже абсолютно не сложно.

h3. === Разрешить список ресурсов для отрицательного баланса ===

Бывает полезно in real life разрешить "отрицательным" юзерам дать доступ к сайтам платежных систем, банков и прочих сотовых операторов - чтобы они могли спокойно оплатить услуги в субботу ночью не выходя из дома.
И всё.

h3. === Несколько серверов доступа ===

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

h3. === "Строгий managment" (services/users/firewall input) ===
При использовании схемы в реальной жизни:

При использовании схемы в реальной жизни:
* не забудьте установить сложные пароли
* в идеале пароли нужно иногда менять )
* можно/нужно ? установить с каких адресов разрешен доступ для различных служб/портов/сервисов - на трех уровнях: пользователи/службы/фаервол(Input).

h3. === Резервный радиус сервер: для случая выхода из строя биллинга (простая лаконичная схема) ===

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

h2. == Послесловие ==
Вышеописанная схема работает в реальной сети, которая выросла за 5 лет с 20 юзеров до 15 000.

Вышеописанная схема работает в реальной сети, которая выросла за 5 лет с 20 юзеров до 15 000.
В статье описаны самые основные базовые моменты. Как известно - существует множество решений одной и той же задачи, и множество инструментов. Я описал лишь одную "узкую тропинку". После ваших тренировок на виртуальном стенде и понимания базовых нюансов - вы можете тюнить систему под особенности вашей инфраструктуры.