Организация облачного видеонаблюдения — это множество технических нюансов, которые требуется решать сразу же: видимость камер из-за NAT, активация и идентификация камер, шифрование и автоматический провижининг. Камера при подключении должна автоматически стать частью IT-инфраструктуры оператора. Плюс должна обеспечиваться связь с абонентом. Watcher Agent решает эти проблемы.

Как мы уже писали, основная проблемой при запуске большой сети видеонаблюдения — настройка видимости камеры из интернета. Для ее решения есть три классические схемы:

  1. Установка проксирующих серверов OpenVPN.
  2. Ручной проброс портов.
  3. Назначение белых 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. Доступ осуществляется перенаправлением трафика определенных портов с внешнего адреса маршрутизатора на адрес выбранного устройства в локальной сети. Минусы ручного проброса портов это:

  1. Настройка каждого роутера и каждой камеры очень сложна и занимает непозволительно много времени.
  2. По открытому порту может зайти кто угодно. То есть на лицо явное дыра в безопасности.
  3. Вся нагрузка по трафику ложится на раздающую камеру и раздающий канал, а они упадут уже на третьем клиенте.
  4. По RTSP камера будет отдавать рассыпающуюся картинку.

Назначение белых IP-адресов

Покупка «белых» IP-адресов для каждой IP-камеры решает проблему доступа из-за NAT, но может быть адекватным решением только, если у вас не очень большое количество камер. В противном случае организация видеонаблюдения станет просто невыгодным предприятием.

WLTT Watcher Agent

Каждая из этих схем обладает достоинствами и недостатками. Объединяет их два фактора: применимость лишь к небольшой сети видеонаблюдения и невозможность организовать режим Plug-n-play для абонента и автоматизацию процесса для администраторов сервиса. WLTT Watcher Agent как раз и закрывает эти проблемы, позволяя нашим клиентам упростить запуск сервиса. Программа устанавливается на все камеры, передает нужную информацию для активации и связи камеры с пользователем в биллинг или напрямую в WLTT Watcher Watcher и начинает отдавать видео на стриминговый сервер оператора.

Также, как и с OpenVPN сервером, в агенте существует привязка к DNS, но всё-таки обеспечить failover небольшой виртуалки, на которой запущен только веб-интерфейс и управляющий сервер гораздо проще, чем failover высоконагруженного сервера с толстым каналом.

Сравнение. Существуют следующие альтернативы Watcher Agent:

Это удобный способ для подключения к IP-камерам, если у вас есть эта сеть. Обычно, это означает, что вы строите корпоративную сеть или, что вы строите что-то вроде локальной сети города для таких проектов типа «Безопасного город» или «Безопасный регион». Это не применимо для OTT-провайдеров или когда вам нужно работать с маршрутизаторами, находящимися за NAT.
Это наихудшее из возможных решений, т.к. вы рискуете со своими камерами стать частью, например, Mirai ботнета
Если вы предоставляете сервис видеонаблюдения для домашнего использования или малого бизнеса, то необходимо инструктировать людей, как настроить маршрутизатор, что не самая простая задача. Это либо огромный объем работы для инженеров-установщиков, либо для сотрудников саппорта, которым придется помогать с настройками камер пользователей. Не всегда получится обьяснить как узнать IP камеры в DHCP.
Некоторые производители предлагают установку openvpn на камеры для запуска облачного сервиса. Это не лучшее решение, т.к. вам придется дважды платить за оборудование: openvpn — это очень ресурсоемкий для CPU компонент, что повлечет за собой установку отдельного проксирующего сервера максимум на 300-400 камер, и установку к нему второго сервер для потокового видео, а это удвоение затрат на инфраструктуру. Также openvpn не предоставит легкого способа балансировки пользователей между серверами (Streamers), как это возможно при использовании агента.

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 шифрования, исключая любые проникновения третьих лиц в процесс передачи данных.