А. Ю. Телков, Е. А. Крохин,
кандидат физико-математических наук, Воронежский государственный Воронежский государственный университет университет
СИСТЕМА АКТИВНОГО МОНИТОРИНГА И ПОДДЕРЖАНИЯ SIP РЕГИСТРАЦИИ УДАЛЕННЫХ VOIP ТЕРМИНАЛОВ В РАСПРЕДЕЛЕННОЙ VPN СЕТИ ПРЕДПРИЯТИЯ С IP АТС ASTERISK
ACTIVE SYSTEM OF MONITORING AND MAINTAINING
THE SIP REGISTRATION OF REMOTE VOIP TERMINALS IN A DISTRIBUTED VPN ENTERPRISE NETWORK WITH IP PBX ASTERISK
Предложен облик и реализован алгоритм работы системы активного мониторинга, позволяющей решить проблему периодического пропадания SIP регистрации VoIP телефонов, расположенных в удаленных сегментах корпоративной сети, соединенных с использованием технологии маршрутизируемой VPN, на IP АТС Asterisk с интерфейсом FreePBX. Приведены частные результаты эксплуатации созданной активной системы мониторинга.
The algorithm and the view of the active monitoring system that allows to solve the problem of periodic failure SIP registrar VoIP phones in remote corporate network segments connected using a routed VPN technology, on IP-PBX Asterisk with FreePBX interface were defined. Private results of operation of an active monitoring system are illustrated.
Введение. Одной из немаловажных задач функционирования современных информационных систем является безотказность их работы в течение длительных периодов времени и предоставление непрерывного во времени сервиса конечным пользователям. При этом отношение времени «правильной» работы сервиса к общему времени работы в критически важных системах должно быть не менее 99,99% [1].
Применительно к современным системам VoIP телефонии указанное требование можно интерпретировать как работоспособность всей системы — от ее центральных составляющих до терминалов конечных абонентов. Проблема с конкретным абонентским терминалом (IP телефоном) приводит к невозможности совершать и принимать вызовы на этом терминале, что безусловно нарушает логику работы распределенной системы связи.
Обеспечение бесперебойной работы распределенных систем VoIP связи наталкивается на известные трудности. Речь идет прежде всего о существенно разном качестве каналов связи между IP АТС и удаленными абонентами. В большинстве случаев для подключения удаленных абонентов используется сеть Интернет либо наложенная на сеть Интернет виртуальная частная сеть предприятия — VPN [2]. Нередко после обрывов и последующего восстановления каналов связи подключенные по ним терминалы абонентов теряют SIP регистрацию на сервере IP телефонии, с этого момента абонентский терминал не обслуживается IP АТС. Однозначные причины этого явления к настоящему времени до конца не уточнены, чаще всего подобное поведение связывают с особенностями SIP протокола [3]. По этой причине вопрос повышения времени корректной работы распределенных систем VoIP связи в наши дни стоит достаточно остро.
В данной работе рассматривается ситуация, когда сеть предприятия представляет собой структуру «центр»—«филиалы», IP АТС Asterisk с интерфейсом FreePBX расположена в центральном офисе, удаленные сегменты сети предприятия маршрутизируются через tun интерфейсы OpenVPN [4], удаленные VoIP терминалы доступны по частным IPv4 адресам из сети центрального офиса [5]. Целью работы является создание системы оперативного обнаружения в корпоративной сети абонентских терминалов, потерявших регистрацию на SIP сервере IP телефонии, и оперативного «ремонта» — восстановления SIP регистрации таких терминалов.
Требования к системе активного мониторинга. При обобщении экспертного опыта оказалось, что восстановить работоспособность удаленного абонентского терминала возможно сменой его IPv4 адреса с последующей отправкой этому терминалу команды повторного запроса на SIP регистрацию на сервере IP телефонии, задавая его в диапазоне адресов удаленной сети, так как, несмотря на потерю SIP регистрации, сетевая доступность абонентского терминала сохранялась. Таким образом, для решения поставленной в работе задачи было необходимо:
- оперативно находить в распределенной корпоративной сети терминалы, потерявшие SIP регистрацию;
- оперативно «ремонтировать» обнаруженные терминалы;
- вести журнал инцидентов и результатов их обработки;
- предусмотреть возможность извлечения дополнительной информации из данных об инцидентах.
При этом все операции необходимо вести в автоматическом режиме, то есть система должна периодически автоматически получать статусы IP телефонов и в случае обнаружения проблем с SIP регистрацией автоматически перестраивать их IPv4 адреса. Поскольку подавляющее большинство используемых на практике телефонов имеет web-интерфейс, было принято решение использовать автоматические http запросы (GET, POST) для смены IP адресов телефонам, а их конкретный вид и формат установить в результате дополнительных исследований, воспользовавшись одной из программ
захвата трафика, например WireShark. Что касается IP АТС, было принято решение работать с той частью web-интерфейса FreePBX, которая отображает статус SIP регистрации абонентов в текущий момент времени. В этой связи возникает необходимость «разбора» или парсинга web-страниц, и эту задачу, следовательно, также необходимо решить. Кроме того, было принято решение использовать систему управления базами данных для хранения детальной информации об инцидентах с IP телефонами. Ввиду достаточно большого числа программных средств, необходимых для решения задачи в целом, а также специфики их использования, для реализации системы активного мониторинга оказалось целесообразно предусмотреть виртуальную машину, установив ее на один из серверов в сегменте локальной сети центрального офиса предприятия.
Отследить, что конкретный телефон потерял возможность отвечать на звонки (потерял возможность совершать звонки), можно [6] непосредственно из консоли Asterisk, используя команду:
$ sip show peers, либо отследить вывод этой команды в web-интерфейсе FreePBX [7] (рис.1).
Chan Si a Peers
Name/use mame Host Dyn
1771/1771 192.168 .149 . 98 D
1772/1772 192.166 .149 . 94 D
1773/1773 192.168 .149 . 96 D
1774/1774 192.168 .149 . 38 D
1781/1781 192.168 .181 . 96 D
1782/1782 192.168 .181 . 97 D
3601/3601 192.168 .220. 111 D
3602/3602 192.168 .220 . 51 D
3603/3603 192.166 .220. . 65 D
3604/3604 192.168 .220 .106 D
3605/3605 192.166 .220. .151 D
3606/3606 192.168 .220. . 87 D
3607/3607 192.168 .220 .48 D
Dyn Forcerport ACL
ACL Port Status
A 5060 OK (17 ms)
A 5060 OK (17 ms)
A 5060 OK (18 ms)
A 5060 OK (17 ms)
A 5060 OK (64 ms)
A 5060 OK (65 ms)
A 5060 OK (4 ms)
A 5060 OK (5 ms)
A 5060 OK (5 ms)
A 5060 OK (5 ms)
A 5060 OK (5 ms)
A 5060 OK (7 ms)
A 5060 OK (4 ms)
Рис. 1. Пример таблицы c абонентами из web-интерфейса FreePBX
Большинство типовых абонентских терминалов допускают [8] конфигурирование по протоколу http, смена IPv4 адреса IP телефона может быть произведена последовательной отправкой POST запросов http по авторизации, смене IPv4 адреса и применению произведенных изменений.
Облик системы активного мониторинга. Облик системы активного мониторинга приведен на рис. 2. Программа, обслуживающая комплекс мониторинга, разделена на отдельные блоки, каждый блок выполнен в виде отдельной процедуры.
Система активного мониторинга реализована в виде виртуальной машины с операционной системой CentOS, использован ряд библиотек.
Сторонняя библиотека Grab — основной инструмент, применяемый в программе. Позволяет производить GET/POST-запросы, необходимые для получения данных непосредственно от телефона и проводить аутентификацию. В состав Grab входит модуль под название Spider, с помощью которого можно с веб-страницы (в нашем случае с веб-интерфейса FreePBX) получить необходимые данные.
Внутренняя библиотека re входит в состав python [10], необходима для задания регулярных выражений, которые требуются для парсинга нужных данных о состоянии IP-телефонов через web-интерфейс Asterisk, а именно FreePBX.
Рис. 2. Блок-схема работы системы активного мониторинга
Библиотека Datetime, так же как и re, является встроенной в языке python. В наличии имеет классы для обработки даты и времени. В проекте необходима для фиксирования времени инцидентов.
Logging — модуль, применяемый непосредственно в разработке и дальнейшей отладки приложения. Предоставляет возможность ведения логов.
Сторонний модуль Daemon, подключаемый из одноименного файла. Обеспечивает так называемую «демонизацию» приложения, т.е. производит перехват потока вывода и позволяет системе работать в фоновом режиме, без участия пользователя.
В системе реализована функция мониторинга и сбора информации в базу данных (БД). Для хранения выбрана система управления базами данных PostgreSQL, для связи БД и нашей системы используется библиотека psycopg2. Ее основными возможностями являются полная реализация спецификации Python DB API 2.0 и безопасность потоков, которая обеспечивает совместную работу нескольких потоков на одном соединении. Данная библиотека разработана для многопоточных приложений, предоставляя им необходимую скорость при больших количествах одновременных операций по вставке и обновлению данных.
Для предоставления данных о работе системы мониторинга в удобном для конечного пользователя виде был создан web-интерфейс. Он разработан на языке php с использованием web-фреймворка Yii2 [11]. На страницах web-интерфейса выводится статистика по работе системы (рис. 3, 4), список последних зарегистрированных инцидентов и карта географического расположения конечных VoIP терминалов (рис. 5). Также предоставляются данные о текущем состоянии системы и времени ее бесперебойной работы.
1771 1772 1773 1774 1781 1732 MOI Ï602 160Î Ш4 Ï605 Ï606 WÏÏ 9201 9202
Инциденты
Рис. 3. Количество инцидентов на каждый телефон
Рис. 4. Процентное соотношение количества инцидентов по географическому признаку
<ки » Обь
Севастополь
^^illM
Рис. 5. Карта географического расположения конечных VoIP терминалов
Активные компоненты системы мониторинга выделены в класс Phone. В данном классе реализован алгоритм восстановления SIP регистрации конечных терминалов. Также в этом классе присутствует массив IP-адресов, которые назначаются телефонам. Строго описанный диапазон адресов позволяет избежать случая, когда нескольким терминалам будет назначен один и тот же IP-адрес. В этом же классе реализован алгоритм аутентификации на стороне телефона, его реализация была усложнена необходимостью использования md5 шифрования [12], это неотъемлемая особенность используемых в сети моделей телефонов D-link DPH 150/150S.
Некоторые результаты эксплуатации. Текущая реализация системы активного мониторинга прошла тестирование в «боевом» режиме в течение нескольких месяцев в компании ООО «ТЕХНОТРЕЙД», Россия [13].
Из статистики исключены выходные дни и нерабочие часы (в которые зачастую наблюдались многочасовые потери SIP регистрации из-за выключенного оборудования и по другим причинам), данные мониторинга оценивались за период 60 рабочих дней с 9:00 до 18:00. За длительное время эксплуатации было установлено, что со средней периодичностью 1 раз в 2 недели происходит потеря регистрации SIP некоторых удаленных абонентских терминалов. Длительность простоя, связанного с потерей регистраци-ии, варьируется от 35 до 50 минут. Связано это с тем, что пользователь не сразу замечает неработоспособность абонентского терминала. Кроме того, некоторое время тратится на устранение этой неисправности в ручном режиме.
Общее время простоя за исследуемый период (60 дней) без использования системы активного мониторинга равно 128 минутам. С включенной системой общее время простоя снижается на 98%, до 3 минут. Например, в 20-й день испытаний простой снижается с 35 до 1 минуты.
Рис. 6. График количества инцидентов и их длительности
При расчете времени бесперебойной работы для нашей сети до внедрения активной системы мониторинга был получен результат в 99,60%. После внедрения системы активного мониторинга время бесперебойной работы возросло до 99,99%. Полученные результаты говорят об эффективности системы активного мониторинга распределенной VoIP сети предприятия.
Выводы. Предложено решение задачи поддержания SIP регистрации абонентских терминалов распределенной VoIP сети предприятия, имеющей структуру «центр—филиалы», построенной на основе технологии OpenVPN с IP АТС Asterisk и интерфейсом FreePBX. Создана активная система мониторинга, выполняющая систематический поиск потерявших SIP регистрацию IP телефонов и обеспечивающая их «ремонт». Система реализована в виде виртуальной машины с операционной системой CentOS с дополнительными библиотеками. В основе системы лежит постоянное, в том числе управляющее, взаимодействие подпрограмм с объектами мониторинга по http протоколу с помощью GET и POST запросов. Создан web-интерфейс, позволяющий получать отчеты из базы данных, которую ведет система в ходе своей работы: полный журнал инцидентов, карта России с расположением абонентов, статистика инцидентов в разрезе внутренних телефонных номеров или статистика инцидентов по географическому признаку. Система активного мониторинга может быть достаточно легко воспроизведена. Она может найти свое применение в критически важных системах IP телефонии, в силовых структурах и ведомствах. Кроме того, система может оказаться полезной в межкорпоративных маршрутизируемых сетях с VoIP связью, например в банковских сетях охраны и безопасности, предусматривающих взаимодействие с внешними силовыми службами, подключенными по технологии VPN.
ЛИТЕРАТУРА
1. Сбербанк (информационные системы) [Электронный ресурс]. — URL: http://www.tadviser.ru/index.php
2. Запечников С. В., Милославская Н. Г., Толстой А. И. Основы построения виртуальных частных сетей : учебное пособие для вузов. — М. : Гор. линия-Телеком, 2011.
— 249 с.
3. Asterisk: вопросы и ответы о настройке Asterisk, поддержка сообщества [Электронный ресурс]. — URL: http://asterisk-support.ru/question/61670/otvalivaetsia-registratsiia-klientov-resheno/
4. Keijser Jan Just. OpenVPN 2 Cookbook. — Birmingham : B27 6PA, UK, Packt Publishing, 2011. — 356 с.
5. Lucian Gheorghe. Designing and Implementing Linux Firewalls and QoS using netfilter, iproute2, NAT, and L7-filter. — Birmingham : B27 6PA, UK, Packt Publishing, 2011.
— 285 c.
6. Меггелен Дж., Мадсен Л., Смит Дж. Asterisk: будущее телефонии. — 2-е издание : пер. с англ. — СПб : Символ-Плюс, 2009. — 656 с.
7. FreePBX | Let Freedom Ring [Электронный ресурс]. — URL: https://www.freepbx.org/
8. D-Link. Руководство по быстрой установке телефона DPH-150S [Электронный ресурс]. — URL: http://ftp.dlink.ru/pub/VoIP/DPH-150S_RU/Description/DPH-150S_B1_QIG_1.00_RUS.pdf
9. Сети ЭВМ и телекоммуникации : методические указания к лабораторным работам / Д. Н. Лясин, С. Г. Саньков, Волгоградский гос. техн. университет. — Волгоград, 2003. — 54 с. [Электронный ресурс]. — URL: http://window.edu.ru/resource/830/29830/files/volpi07.pdf
10. Лутц М. Изучаем Python. — 4-е изд. : пер. с англ. — Спб. : Символ-Плюс, 2011. — 1280 с.
11. Yii PHP Framework: Best for Web 2.0 Development [Электронный ресурс]. — URL: http://www.yiiframework.com/
12. RFC 1321 - The MD5 Message-Digest Algorithm [Электронный ресурс]. — URL: https://tools.ietf.org/html/rfc1321
13. Официальный сайт компании ООО «ТЕХНОТРЕЙД» [Электронный ресурс].
— URL: http://www.tehno.su
REFERENCES
1. Sberbank (informatsionnyie sistemyi) [Elektronnyiy resurs]. — URL: http://www.tadviser.ru/index.php
2. Zapechnikov S. V., Miloslavskaya N. G., Tolstoy A. I. Osnovyi postroeniya virtual-nyih chastnyih setey : uchebnoe posobie dlya vuzov. — M. : Gor. liniya-Telekom, 2011. — 249 s.
3. Asterisk: voprosyi i otvetyi o nastroyke Asterisk, podderjka soobschestva [Elektronnyiy resurs]. — URL: http://asterisk-support.ru/question/61670/otvalivaetsia-registratsiia-klientov-resheno/
4. Keijser Jan Just. OpenVPN 2 Cookbook. — Birmingham : B27 6PA, UK, Packt Publishing, 2011. — 356 s.
5. Lucian Gheorghe. Designing and Implementing Linux Firewalls and QoS using netfilter, iproute2, NAT, and L7-filter. — Birmingham : B27 6PA, UK, Packt Publishing, 2011.
— 285 c.
6. Meggelen Dj., Madsen L., Smit Dj. Asterisk: buduschee telefonii. — 2-e izdanie : per. s angl. — SPb : Simvol-Plyus, 2009. — 656 s.
7. FreePBX | Let Freedom Ring [Elektronnyiy resurs]. — URL: https://www.freepbx.org/
8. D-Link. Rukovodstvo po byistroy ustanovke telefona DPH-150S [Elektronnyiy re-surs]. — URL: http://ftp.dlink.ru/pub/VoIP/DPH-150S_RU/Description/DPH-150S_B1_QIG_1.00_RUS.pdf
9. Seti EVM i telekommunikatsii : metodicheskie ukazaniya k laboratornyim rabotam / D. N. Lyasin, S. G. Sankov, Volgogradskiy gos. tehn. universitet. — Volgograd, 2003. — 54 s. [Elektronnyiy resurs]. — URL: http://window.edu.ru/resource/830/29830/files/volpi07.pdf
10. Lutts M. Izuchaem Python. — 4-e izd. : per. s angl. — Spb. : Simvol-Plyus, 2011.
— 1280 s.
11. Yii PHP Framework: Best for Web 2.0 Development [Elektronnyiy resurs]. — URL: http://www.yiiframework.com/
12. RFC 1321 - The MD5 Message-Digest Algorithm [Elektronnyiy resurs]. — URL: https://tools.ietf.org/html/rfc1321
13. Ofitsialnyiy sayt kompanii OOO «TEHNOTREYD» [Elektronnyiy resurs]. — URL: http://www.tehno.su
СВЕДЕНИЯ ОБ АВТОРАХ
Телков Александр Юрьевич. Доцент кафедры электроники, кандидат физико-математических
наук.
Воронежский государственный университет. E-mail: [email protected]
Россия, 394018, г. Воронеж, Университетская площадь, 1.
Крохин Евгений Александрович. Студент второго курса магистратуры физического факультета. Воронежский государственный университет. E-mail: [email protected]
Россия, 394018, г. Воронеж, Университетская площадь, 1.
Telkov Alexander Yurievich. Assistant Professor of the chair of Electronics. Candidate of Physical and Mathematical Sciences.
Voronezh State University.
E-mail: [email protected]
Russia, 394018, Voronezh, University square, 1.
Krokhin Evgeny Alexandrovich. A second year student of the Magistracy of the faculty of Physics.
Voronezh state University.
E-mail: [email protected]
Russia, 394018, Voronezh, University square, 1.
Ключевые слова: активная система мониторинга; время непрерывной работы сервиса; uptime; управление по http протоколу; GET/POST; VoIP телефония; инциденты с регистрацией SIP абонентов.
Key words: Active monitoring system; the time of service of continuous operation; the uptime; control via http protocol; GET / POST; VoIP telephony; incidents with registration SIP subscribers.
УДК 519.711.3:351.811