Организация облачного видеонаблюдения — это множество технических нюансов, которые требуется решать сразу же: видимость камер из-за NAT, активация и идентификация камер, шифрование и автоматический провижининг. Камера при подключении должна автоматически стать частью IT-инфраструктуры оператора. Плюс должна обеспечиваться связь с абонентом. Watcher Agent решает эти проблемы.
Как мы уже писали, основная проблемой при запуске большой сети видеонаблюдения — настройка видимости камеры из интернета. Для ее решения есть три классические схемы:
- Установка проксирующих серверов OpenVPN.
- Ручной проброс портов.
- Назначение белых IP-адресов для каждой камеры.
OpenVPN
Распространенный и наиболее простой способ — это организация OpenVPN туннеля. Его выбирают прежде всего потому, что для большинства дешевых камер прошивка собирается с помощью buildroot, а в нем уже есть OpenVPN и он легко включается.
На камере прописывается сертификат подключения и адрес OpenVPN сервера. Затем стриминговый сервер в облаке видит камеру через OpenVPN сервер и забирает с нее видео. Однако, OpenVPN требует наличия еще одного сервера рядом, удваивая ваши серверные затраты.
Управление сервером, на который придет камера, находится на самом устройстве Быстро добавить новый сервер вместо сгоревшего и отправить камеру на него не получится — надо менять DNS. А на пути между вашим DNS-сервером и камерой обязательно появится удобный кеширующий на сутки чужой DNS-сервер, который будет заботливо подставлять старый адрес OpenVPN сервера.
Ко всему прочему, OpenVPN требует больше ресурсов из-за того, что он делает больше, чем нужно для этой задачи. Организуется полноценный туннель, который пропускает трафик через ядро linux. В случае с WLTT Watcher Agent и WLTT Watcher Media Server этого не происходит — весь трафик приходит и остается в одном процессе, При гигабите входящего видео это очень ощутимо.
Ручной проброс портов
Port Forwarding — перенаправление портов или ручной проброс портов — позволяет обращаться из интернета к IP-камере, которая находится во внутренней сети за маршрутизатором, использующим NAT. Доступ осуществляется перенаправлением трафика определенных портов с внешнего адреса маршрутизатора на адрес выбранного устройства в локальной сети. Минусы ручного проброса портов это:
- Настройка каждого роутера и каждой камеры очень сложна и занимает непозволительно много времени.
- По открытому порту может зайти кто угодно. То есть на лицо явное дыра в безопасности.
- Вся нагрузка по трафику ложится на раздающую камеру и раздающий канал, а они упадут уже на третьем клиенте.
- По RTSP камера будет отдавать рассыпающуюся картинку.
Назначение белых IP-адресов
Покупка «белых» IP-адресов для каждой IP-камеры решает проблему доступа из-за NAT, но может быть адекватным решением только, если у вас не очень большое количество камер. В противном случае организация видеонаблюдения станет просто невыгодным предприятием.
WLTT Watcher Agent
Каждая из этих схем обладает достоинствами и недостатками. Объединяет их два фактора: применимость лишь к небольшой сети видеонаблюдения и невозможность организовать режим Plug-n-play для абонента и автоматизацию процесса для администраторов сервиса. WLTT Watcher Agent как раз и закрывает эти проблемы, позволяя нашим клиентам упростить запуск сервиса. Программа устанавливается на все камеры, передает нужную информацию для активации и связи камеры с пользователем в биллинг или напрямую в WLTT Watcher Watcher и начинает отдавать видео на стриминговый сервер оператора.
Также, как и с OpenVPN сервером, в агенте существует привязка к DNS, но всё-таки обеспечить failover небольшой виртуалки, на которой запущен только веб-интерфейс и управляющий сервер гораздо проще, чем failover высоконагруженного сервера с толстым каналом.
Сравнение. Существуют следующие альтернативы Watcher Agent:
Watcher Agent — лучше, чем любое из приведенных выше решений, поскольку он не требует настройки и позволяют подключать камеру непосредственно к серверу WLTT Watcher
С какими камерами работает WLTT Watcher Agent
Мы можем запустить WLTT Watcher Agent почти всех камерах, работающие под Linux. Важный момент — нам нужна оригинальная прошивка устройства. На данный момент отработана установка агента на уличных камерах на базе HiSilicon, TI DaVinchi и MIPS роутерах на базе dd-wrt.
Как работает WLTT Watcher Agent
Самое интересное. Подготовленная нами прошивка с агентом устанавливается вендором на заводе или прошивается сами оператором. После того, как камера с установленной прошивкой попадёт к клиенту и будет в первый раз запущена, реализуется следующая схема работы:
1. При включении камеры в сеть и подключении к интернету запускается WLTT Watcher Agent.
2. Агент подключается к серверу с серверу и сообщает о том, что он готов к передаче видео. Этот сервер является управляющим и называется в терминологии агента: endpoint. Здесь камера получает контрольную информацию, авторизуется и переходит через connection upgrade в наш собственный протокол.
3. Если WLTT Watcher узнал агента (происходит взаимная проверка пароля), то он передает агенту информацию об одном из запущенных серверов WLTT Watcher на который как раз и пойдет передача видеотрафика. Такой WLTT Watcher в терминологии агента называется streampoint. Также endpoint может передать команду быстро переключиться на другой streampoint для того, чтобы отработать ситуацию с выходом из одного из стримеров в кластере WLTT Watcher.
4. После подключения к WLTT Watcher агент ожидает команду на открытие соединения. Оно похоже на SSH туннель. Когда WLTT Watcher решает забрать видео с камеры, он обращается к агенту с просьбой организовать TCP-туннель. По этому туннелю может передаваться как видео с RTSP, так и скриншоты с камеры.
В Watcher Agent также реализована возможность переключатся между основным и резерным управляющим сервером (endpoint) и стриминговыми серверами WLTT Watcher.
Безопасность доставки видео
Помимо основной задачи нам было важно защитить камеры от взлома и видеопоток от перехвата. Большинство китайских устройств очень слабо защищены даже от простейших бэкдоров. Watcher Agent умеет шифровать видеопоток с помощью TLS шифрования, исключая любые проникновения третьих лиц в процесс передачи данных.