Разработка сетевой инфраструктуры на основе VPN для использования rtsp в рамках сервиса «Onair. Pro»

Разработка сетевой инфраструктуры на основе VPN для использования RTSP в рамках сервиса «OnAir.pro»

Рыбаков П.В., НИУ Высшая школа экономики, МИЭМ pvrybakov@gmail.com

Аннотация

В данной работе описывается разработка сетевой инфраструктуры для объединения источников видеопотоков - различных IP-стриминговые устройств - и обрабатывающих серверов в рамках сервиса организации видеотрансляции «OnAir.pro». В качестве основы для сетевой инфраструктуры используется VPN-сеть уровня 2, построенная на базе OpenVPN. Также описано использование роутеров под управлением ОС OpenWRT в качестве сетевого моста для предоставления доступа в VPN без непосредственного подключения.

1 Введение

На данный момент для трансляции различных мероприятий преимущественно используются стандартные средства телевизионного вещания, для управления которыми используются массивные комплекты оборудования, требующие многочисленного персонала для управления съёмочными устройствами и редактирования видеопотока непосредственно на месте съёмки. Благодаря развитию компьютерных сетей и понижению стоимости широкополосного доступа к сети Интернет, всё большее распространение приобретают сервисы для организации видеотрансляций. Типичная схема организации видеотрансляции через Интернет включает три этапа: кодирование видео и передача его на удалённый сервер, обработка (кодирование, запись, редактирование, ретрансляция) видеопотока на сервере, доставка видеопотока зрителям. Сервис «OnAir.pro» предлагает решение данной задачи не всех её этапах.

2 Ход работы

2.1 Постановка проблемы

Для передачи потокового видео существует две больших группы протоколов. Первая -протоколы, использующие HTTP в качестве базового протокола. К таким протоколам, среди прочих, относятся HTTP Live Streaming (HLS) и MPEG-DASH (Dynamic Adaptive Streaming over HTTP). Данные протоколы используют последовательное скачивание видеофайла на клиентское устройство для воспроизведения потокового видео и HTTP для управления трансляцией. Чаще всего такие протоколы используют TCP, что создаёт сложности в реализации таких протоколов и вызывает большие задержки при передаче данных из-за механизмов проверки доставки пакета. Такие протоколы предназначены для организации доставки потока с медиа-сервера конечным зрителям.

Другая большая группа - протоколы с оригинальными механизмами потоковой передачи данных и управления потоком. В число таких протоколов входят Real Time Messaging Protocol (RTMP) и семейство протоколов, связанных с протоколом Real-time Transport Protocol (RTP). Такие протоколы чаще имеют более малые задержки по сравнению с протоколами, базирующимися на HTTP, и чаще используются в оборудовании, предназначенном для передачи видеопотока от источника к медиа-серверу.

На данный момент в качестве протокола передачи видеопотока на начальном этапе сервисом «OnAir.pro» используется протокол RTMP. Данный протокол разработан компанией Adobe для использования с программными продуктами серий Adobe Flash и Adobe AIR, однако после публикации открытой спецификации для него обрёл разнообразные сторонние реализации. Данный протокол обладает следующими минусами:

• Адрес, на который передаётся видеопоток, задаётся непосредственно на транслирующем устройстве, что неудобно в ситуациях, когда нет прямого доступа к управлению устройством;

• Задержки составляют 2-3 секунды;

• Невозможность изменения параметров передаваемого видеопотока средствами протокола;

• Передача потока ведётся вне зависимости от того, принимает ли его адресат, что создаёт неоправданную нагрузку на сети.

Основным плюсом данного протокола является возможность передавать видеопоток вне зависимости от настроек сетевой защиты на месте, откуда производится трансляция.

В качестве альтернативы данному протоколу рассматривается протокол Real Time Streaming Protocol (RTSP) в связке с протоколами Real-time Transport Protocol (RTP) и Real-Time Transport Control Protocol (RTCP). RTSP отвечает за установление соединения между хостами, в то время как RTP является средством передачи потоковых данных, а RTCP - средством управления потоком. Благодаря использованию UDP вместо TCP у RTMP, RTP создаёт меньшие задержки при

передаче потока. В отличии от RTMP, RTSP действует по схеме «Video-On-Demand», при которой транслирующее устройство является сервером, и для приёма видеопотока устройство-клиент должно к нему обратиться по адресу, видимому из подсети клиента. Кроме того, широкий пласт оборудования, используемого для преобразования видеопотоков в передаваемые по сети формы (RTSP-, RTMP-видео) поддерживает стандарт ONVIF, предназначенный для дистанционного управления оборудованием видеонаблюдения и включающий в себя возможность управления параметрами видеопотока, а также движением PTZ-камер, использование которых предполагается в рамках сервиса «OnAir.pro» для организации выездных трансляций.

Основным недостатком RTSP как средства доставки видеопотока на удалённый сервер является необходимость сетевой доступности передающего устройства для сервера-приёмника. Локальные сети предприятий и организаций, которые являются потенциальными площадками для проведения видеотрансляций, обычно находятся за каким-либо сетевым концентратором, становящимся препятствием для клиентских запросов к кодирующему оборудованию. Потенциальный путь решения - проброс портов - является сложным с организационной точки зрения, так как требует предварительного согласования с администратором локальной сети, что может стать препятствием как в связи с бюрократическими затруднениями, так и из-за человеческого фактора.

В данной работе в качестве комплексного решения для объединения видеоисточников и обрабатывающих серверов сервиса «OnAir.pro» предлагается использование VPN типа «мост».

2.2 Разработка сетевой инфраструктуры

В качестве используемой реализации VPN для данного проекта выбрана OpenVPN. Главными плюсами данной технологии являются гибкость настройки и значительное количество документации.

Так как сами по себе IP-стриминговые устройства как правило не оснащаются OpenVPN-клиентом (хотя многие из них работают под управлением Linux), необходимо реализовать возможность подключения к VPN для таких устройств. Одной из отличительных особенностей OpenVPN является возможность построения сетей, оперирующих на 2 уровне модели OSI, также известных как сеть типа «мост»[Бешков]. Такая конфигурация виртуальной сети позволяет использовать сторонний DHCP-сервер вместо встроенного в OpenVPN механизма присвоения IP адресов. Кроме того, TUN/TAP-адаптер, используемый OpenVPN для эмуляции сетевого интерфейса, в данном режиме может включаться в сетевой мост с физическими сетевыми интерфейсами (отсюда название режима). OpenWRT - дистрибутив Linux, разрабатываемый в первую очередь для использования в качестве ПО для Wi-Fi-роутеров. В данной ОС поддерживается обычная для Linux функция объединения сетевых интерфейсов в интерфейс типа «мост». Для предоставления доступа в VPN посредством свича на основе роутера под управлением OpenWRT, были произведены следующие действия:

1. Настроен OpenVPN-сервер на удалённом облачном сервере;

2. На том же облачном сервере развёрнут DHCP-сервер, настроенный на принятие DHCP-запросов на TUN/TAP машины с OpenVPN-сервером;

3. Роутер под управлением OpenWRT переведён в режим «Dumb AP», что включает в себя отключение локального DHCP-сервера для LAN-интерфейсов роутера;

4. На роутере установлен и настроен клиент OpenVPN;

5. TUN/TAP-интерфейс роутера соединён с LAN-интерфейсами роутера в интерфейс типа «мост».

Устройства, подключенные к роутеру, сконфигурированному таким образом и подключенному к VPN-серверу, получают настройки сети от настроенного ранее DHCP-сервера, и могут устанавливать соединение с другими устройствами внутри данной VPN.

3 Заключение

В ходе данной работы были рассмотрены причины для внедрения использования протокола RTSP в работу сервиса «OnAir.pro», предложен вариант использования VPN на основе OpenVPN в качестве платформы для использования данного протокола в работе сервера, предложено решение по организации шлюза 2 уровня для предоставления доступа к VPN без подключения к VPN-серверу.

На данный момент в рамках работы над проектом развёрнута система следующей конфигурации. На Virtual Private Server (VPS) под управлением Ubuntu 16.04 развёрнут и настроен

работающий в режиме TAP сервер OpenVPN. Для тестовой сети не используется шифрование, так как оно значительно снижает пропускную способность сервера^. Park]. Для добавления в тестовую VPN-сеть в качестве клиентов роутеров под управлением OpenWRT составлена инструкция, после однократного выполнения которой роутеры при подключении к сети Интернет автоматически подключаются к ранее предписанному VPN-серверу. Настроенные в соответствии с данной инструкцией роутеры позволяют подключенным к ним IP-камерам и видео-кодерам транслировать на удалённый сервер внутри тестовой сети VPN видеопотоки посредством RTSP, не будучи клиентами непосредственно OpenVPN-сервера. Также к тестовой сети VPN подключен один из кодирующих серверов сервиса «OnAir.pro», что позволяет настроить данный сервер на получение видеопотоков посредством протокола RTSP и последующую их ретрансляцию конечным зрителям уже на текущем этапе.

Дальнейшая перспектива развития сетевой инфраструктуры проекта предусматривает развёртывание внутри VPN-сети DNS-сервера, что даст возможность устройствам-источникам -клиентам VPN-сети по единожды заданному доменному имени обращаться к динамически развёртываемым VPS на время проведения трансляций. Такая схема позволит экономить на времени аренды серверов. Кроме того, важной целью будущей работы является как можно более полная автоматизация развёртывания аппаратуры съёмочного комплекта на съёмочной площадке. Рассматривается возможность разработки дополнительного аппаратного и программного обеспечения для более удобной настройки роутеров на площадке с использованием встроенного интерфейса UART.

Список литературы

Бешков А. OpenVPN, или Кроссплатформенная частная сеть // Системный администратор. 2004. Вып. 8.

OpenVPN manual page. Version 2.0.x / OpenVPN Inc. 2010. URL: https://openvpn.net/index.php/open-source/documentation/manuals/65-openvpn-20x-manpage.html (дата обращения 28.02.2017).

J. Liu, Y. Li, N. Van Vorst, S. Mann, and K. Hellman. A real-time network simulation infrastructure based on OpenVPN. // Journal of Systems and Software. 2009. Вып. 3. С. 473-485.

M. Liyanage, J. Okwuibe, M. Ylianttila, and A. Gurtov. Secure Virtual Private LAN Services: An Overview with Performance Evaluation. // IEEE ICC 2015 - Workshop on Advanced PHY and MAC Techniques for Super Dense Wireless Networks. 2015. С. 1-7.

S. Park. Characterizing the Impacts of VPN Security Models on Streaming Video. // 8th Annual Communication Networks and Services Research Conference, Montreal, Canada. 2010. С. 52-159.