Flussonic Agent¶
Flussonic Agent (далее Агент) — это небольшой модуль к программному обеспечению Flussonic Watcher, который устанавливается производителем на прошивку камеры для обеспечения ее видимости из-за NAT.
Камера с Агентом подключается к Flussonic Watcher к 80 (HTTP) или 443 (HTTPS) порту в обход NAT, организуя прямую связь с серверами (стримерами).
Warning
Обратите внимание, что соединение Агента с управляющим сервером Watcher и стримерами будет зашифровано по протоколу TLS только в случае, если вы настроите HTTPS на всех необходимых серверах. Варианты настройки HTTPS см. здесь.
Если HTTPS не настроен, данные передаются по HTTP в незашифрованном виде.
Агент позволит вам запустить сервис видеонаблюдения без настройки каждой камеры.
Агент является лучшей альтернативой белым IP, пробросу портов или OpenVPN.
Как работает Агент¶
Итак, вы установили и настроили управляющий сервер Flussonic Watcher и стримеры, настроили HTTPS и у вас есть камеры с Агентами, готовые к подключению. Вы подключаете камеру к питанию и к локальной сети. Что происходит дальше?
1. Активация¶
При первом запуске камеры выполняется процедура активации Агента: Агент обращается к серверу активации, обслуживаемому компанией Эрливидео, и запрашивает данные для подключения к Watcher. Сервер активации сообщает Агенту адрес управляющего сервера и секретный ключ для подключения к нему, а управляющему серверу сообщает тот же секретный ключ и идентификатор Агента, подключения которого требуется ожидать. Секретный ключ необходим для защиты от подключений сторонних неавторизованных клиентов и представляет собой аналог одноразового пароля.
Все данные на этом этапе передаются по протоколу HTTPS с шифрованием TLS.
При последующих запусках Агент уже знает адрес управляющего сервера, поэтому этот шаг пропускается. Однако возможны ситуации, когда URL-адрес управляющего сервера перестает быть доступным, например, в случае сбоя или штатного перехода на новое доменное имя. В этом случае Агент не сможет подключиться к управляющему серверу и снова обратится к серверу активации, чтобы запросить новый адрес управляющего сервера. Это очень полезная функция под названием «Повторная активация» или «Реактивация», обеспечивающая бесперебойную работу камер.
2. Провижнинг на Watcher¶
Используя полученный секретный ключ, активированный Агент подключается к предварительно настроенному управляющему серверу с Flussonic Watcher по полученному адресу и сообщает о готовности к передаче видео.
Поскольку управляющий сервер не предназначен для приема видео, он авторизует Агент (проверяя логин и пароль) и сообщает ему адрес одного из запущенных стримеров и секретный ключ для подключения к нему, а стримеру сообщает о возможности подключения Агента. Также управляющий сервер позволяет Агенту быстро переключиться на другой стример в случае падения одного из них.
Это соединение между управляющим сервером и Агентом существует до тех пор, пока Агент не будет деактивирован. По нему Агент передает информацию о своем состоянии, которую вы видите в веб-интерфейсе Watcher, а управляющий сервер передает Агенту команды, например, на подключение к стримеру, деактивацию и перезапуск.
Если на управляющем сервере настроен HTTPS, то все передаваемые данные шифруются по протоколу TLS (инструкцию по настройке HTTPS см. здесь).
3. Подключение к Watcher¶
Агент устанавливает соединение со стримером для контроля туннеля. По этому соединению Агент ожидает команду на открытие соединения для передачи данных, так же, как это устроено в SSH-туннеле. Когда стример решает взять видео с камеры, он по этому соединению посылает команду Агенту с просьбой установить TCP туннель.
Для установки этого соединения стример должен иметь публичный IP-адрес, доступный из Интернета, как указано в инструкции по настройке кластерного режима.
Если на стримере настроен HTTPS, то все передаваемые данные шифруются по протоколу TLS (инструкцию по настройке HTTPS см. здесь).
4. Подключение к стримеру¶
Получив команду со стримера, Агент открывает туннель для передачи данных. Через этот туннель стример отправляет запросы на получение данных, а Агент передает все данные с камеры, включая RTSP-потоки и скриншоты (thumbnails).
Для установки этого соединения стример должен иметь публичный IP-адрес, доступный из Интернета, как указано в инструкции по настройке кластерного режима.
Если на стримере настроен HTTPS, то все передаваемые данные шифруются по протоколу TLS (инструкцию по настройке HTTPS см. здесь).
Warning
После установки и настройки управляющего сервера мы настоятельно не рекомендуем менять его адрес.
О работе Watcher в режиме кластера можно прочитать в этой статье
Сравнение Агента с другими решениями¶
Существуют следующие альтернативы Flussonic Agent:
Серый IP в локальной сети¶
Это удобный способ для подключения к IP-камерам, если у вас есть эта сеть. Обычно, это означает, что вы строите корпоративную сеть или, что вы строите что-то вроде локальной сети города для таких проектов типа «Безопасного город» или «Безопасный регион». Это не применимо для OTT-провайдеров или когда вам нужно работать с маршрутизаторами, находящимися за NAT.
Белый IP для камер¶
Это наихудшее из возможных решений, т.к. вы рискуете со своими камерами стать частью, например, Mirai ботнета
Проброс портов¶
Если вы предоставляете сервис видеонаблюдения для домашнего использования или малого бизнеса, то необходимо инструктировать людей, как настроить маршрутизатор, что не самая простая задача. Это либо огромный объем работы для инженеров-установщиков, либо для сотрудников саппорта, которым придется помогать с настройками камер пользователей. Не всегда получится объяснить как узнать IP камеры в DHCP.
OpenVPN¶
Некоторые производители предлагают установку openvpn на камеры для запуска облачного сервиса. Это не лучшее решение, т.к. вам придется дважды платить за оборудование: openvpn — это очень ресурсоемкий для CPU компонент, что повлечет за собой установку отдельного проксирующего сервера максимум на 300-400 камер, и установку к нему второго сервер для потокового видео, а это удвоение затрат на инфраструктуру. Также openvpn не предоставит легкого способа балансировки пользователей между серверами (Streamers), как это возможно при использовании агента.
Flussonic Agent¶
Flussonic Agent — лучше, чем любое из приведенных выше решений, поскольку он не требует настройки и позволяют подключать камеру непосредственно к Flussonic Media Server.
О том, как установить и использовать Агент, читайте в документации Flussonic Watcher.