BC/NW 2011; №2 (19):7.2
ИССЛЕДОВАНИЕ
МАСШТАБИРУЕМОСТИ БИЛИНГОВЫХ СИСТЕМ В СЕТЯХ ШИРОКОПОЛОСНОГО ДОСТУПА В ИНТЕРНЕТ
Абросимов Л.И., Головин А.Е.
(Национальный исследовательский университет «МЭИ», Россия)
Биллинговая система является
важнейшим компонентом деятельности любого коммерческого оператора связи и
предназначена для реализации функций аутентификации, авторизации пользователей
и учета предоставленных им ресурсов.
Биллинговая система состоит из
следующих компонентов:
·
Сервер доступа.
·
Сервер, хранящий данные об учетных записях клиентов и потребленных ими
ресурсах.
·
Сервер БД, на котором содержится информация об учетных записях
пользователей.
·
Сервер управления базой данных пользователей.
·
Сервер, выполняющий подсчет использованных пользователями ресурсов и
принудительно разрывающий сеансы связи в случае превышения наложенных
ограничений.
Постоянно возрастающее число пользователей требует решения проблемы масштабируемости.
Под масштабируемостью понимается способность
системы увеличивать свою производительность при добавлении ресурсов (обычно
аппаратных). Система называется масштабируемой, если она способна увеличивать
производительность пропорционально дополнительным ресурсам. Масштабируемость
можно оценить через отношение прироста производительности системы к приросту
используемых ей ресурсов. [7].
Целью исследования является решение проблемы недостаточной масштабируемости существующих биллинговых
систем. Для биллинговых систем, применяющихся в сетях
с большим количеством абонентов, в настоящее время применяются
высокопроизводительные кластеры и дорогостоящие решения для систем управления
базами данных, позволяющие распределить запросы к базе данных на несколько
физических серверов. Вместо этого, инфраструктуру биллинговой
системы можно распределить на более высоком уровне абстракции, что позволит
использовать более дешевые технологии и аппаратные средства.
Проведение исследования масштабируемости биллинговых систем можно разбить на несколько этапов:
·
Изучение и анализ средств и подходов к достижению цели исследования.
·
Разработка модернизированной биллинговой системы.
·
Разработка средств исследования.
·
Проведение исследований.
В результате анализа известных биллинговых
систем: Abills, FreeNibs, NetUp - был выявлен состав их функциональных ограничений,
также установлено, что протокол Radius предоставляет
все необходимые возможности для использования в системах, предназначенных для
осуществления аутентификации, авторизации пользователей и учета
предоставленных им ресурсов сети, как показано на рис. 1.
Рис.
1. Компоненты RADIUS-инфраструктуры
Модернизированная биллинговая система (МБС)
устраняет недостатки известных биллинговых систем и
обеспечивает:
· работу более, чем с одним Radius-сервером с разделением
абонентов при помощи механизма Radius-proxy;
· запуск более, чем одного экземпляра модуля аккаунтинга;
· разделение учетных записей по
базам данных более, чем одного экземпляра биллинговой системы;
· выполнение интерфейса
управления в виде веб-приложения, чтобы быть
доступным из любой точки корпоративной сети и не быть зависимым от платформы
компьютера администратора.
Реализация МБС является приложением, разработанным на языке PHP и
имеющим веб-интерфейс для редактирования баз данных.
Данное решение было выбрано для упрощения администрирования, т. к. не привязано
платформе. Скрипт очистки пользовательских линий
разработан на языке shell и может быть запущен как из
среды UNIX, так и Windows посредством Cygwin.
В качестве протокола удаленной конфигурации в модуле очистки
пользовательской линии использован SNMP, т. к.
является открытым протоколом и поддерживается большим количеством
производителей сетевого оборудования.
FreeRadius использовался в качестве Radius-сервера
ввиду своей распространенности (входит в пятёрку RADIUS серверов мира с точки зрения
развёртывания и количества пользователей, которых этот сервер авторизует
ежедневно) и бесплатной лицензии.
Аппаратные требования для модернизированной биллинговой
системы зависят от количества запросов, которые она обрабатывает.
Программа состоит из 16 скриптов, написанных
на языке программирования PHP, одного скрипта,
написанного на языке shell и одного файла css, отвечающего за отображение стилей страниц интерфейса.
Исходный код программы содержит 19 функций.
При этом 15 скриптов php
предназначены для обработки сервером PHP и формирования веб-страницы
при помощи Web-сервера, модуль accountingcontrol.php
предназначен для периодического выполнения при помощи планировщика. В ОС FreeBSD эту роль выполняет crontab.
Частоту выполнения следует ставить как можно больше для точности производимого
учета трафика.
PHP скрипты, в отличие от exe-файлов программ
Win32 и скриптов, написанных на языке
программирования Perl, не предназначены для
компиляции, вместо этого PHP-сервер создает опкоды.
Это, с одной стороны, облегчает работу с кодом, не требуя перекомпиляции при
внесении изменений, а с другой стороны негативно сказывается на времени
исполнения.
Таким образом, все исходные файлы биллинговой
системы МБС необходимо расположить в папке, обрабатываемой Web-сервером и
добавить файл accountingcontrol.php к периодическому
исполнению планировщиком. Других действий от администратора не требуется.
Программа автоматически сформирует базу данных «billing»
и все таблицы, необходимые для использования при первом запуске:
В состав программного обеспечения входят программы реализующие:
·
алгоритм аккаунтинга;
·
алгоритм добавления и изменения учетной записи клиента;
·
алгоритм добавления и изменения учетной записи пользователя;
·
алгоритм вывода истории списания средств;
·
алгоритм вывода истории подключений.
Для решения задачи исследования, использующего
последовательное подключение нескольких туннелей была разработана
программа, позволяющая создать неограниченное число PPTP-соединений, источником
которых был бы один и тот же интерфейс компьютера. Для этого программа создает
варьируемое количество таблиц маршрутизации.
Для проведения эксперимента была разработана программа MultipleVPN. качестве тестового
стенда будут использованы:
·
Компьютер на базе процессора Intel Atom в качестве сервера БС.
·
Маршрутизатор Cisco 851 в качестве сервера доступа.
·
Компьютер на базе процессора Intel Core 2 Duo в качестве пользователя.
План исследования состоит в следующем:
При помощи программы MultipleVPN компьютер,
выполняющий роль клиента, устанавливает VPN-соединения с сервером доступа,
постепенно увеличивая количество соединений, тем самым повышая нагрузку на
сервер биллинга. Нагрузка на сервере биллинга измеряется при помощи Cacti
и сохраняется в БД сервера. Далее эти сохраненные данные используются для
получения графиков нагрузки. На графике нагрузки будет показано значение
коэффициента загрузки (LoadAverage) в зависимости от
времени. Для однопроцессорной системы, которая используется в эксперименте в
качестве сервера БС, максимальный уровень показателя LoadAverage,
равен 1. На рис. 2 показано, что коэффициент загрузки увеличивается при росте
числа клиентов и система переходит в полностью загруженное состояние, когда к
серверу доступа было подключено 1553 клиента.
Рис. 2. Итоговый график загрузки сервера МБС
Таким образом, наилучшую
вертикальную масштабируемость обеспечивает МБС,
разработанная в данном проекте. Максимальная конфигурация разработанной БС
выглядит следующим образом:
Рис. 3. Максимальная конфигурация БС Billing
Разработанная биллинговая система, являясь
средством исследования, экспериментально доказывает достижение поставленной
цели исследования — устранение недостаточной масштабируемости
существующих биллинговых систем.
Проведенное в работе исследование подтвердило, что разработанная
в данном проекте БС РБС является более вертикально масштабируемой, чем
рассмотренные в обзоре благодаря возможности запуска нескольких экземпляров
модулей аккаунтинга. Горизонтальная
масштабируемость системы также выше рассмотренных в
силу того, что она способна работать с несколькими Radius-серверами (см. рис.
2).
Для проведения исследования была разработана программа, создающая
неограниченное количество PPTP-туннелей с одного интерфейса компьютера и
осуществлена конфигурация сервера Cacti для получения
графиков загрузки сервера биллинговой системы.
Литература
1. CCNP ISCW
Official Exam Certification Guide.-М.: Изд-во Cisco Press, 2007. - 696 с.
2.
Программа
сетевой академии Cisco CCNA 3 и 4. Вспомогательное
руководство. -М.: Изд-во «Вильямс», 2007. - 936 с.
3.
Протокол
PPTP,
http://msdn.microsoft.com/en-us/library/ms818744.aspx
4.
Возможности
БС Abills,
http://abills.net.ua/wiki/doku.php/abills
5.
Официальный
сайт БС NetUp, Спецификация БС UTM 5,
http://www.netup.ru/products.php
6.
Интернет-энциклопедия
Wikipedia, статья "Масштабируемость",