FTP-сервер на MikroTik. Неожиданные грабли.

Автор: Administrator вкл. . Опубликовано в MikroTik

Давненько появлялись мысли поковырять чего-нибудь в области видеонаблюдения. Если конкретнее – IP-камеры. И вот, летом 2015 года были добыты две различные камеры для проведения опытов и вникания в суть вопроса с пристрастием: первая - уже устаревающая D-Link DCS-930L, вторая – современная китайская безымянная 720P IP-камера с ИК-подсветкой.

 Задача ставилась следующая – сделать систему видеонаблюдения в загородном доме с минимальными затратами, с локальным хранилищем, и, быть может, с возможностью доступа к архиву через интернет. В предыдущих статьях я описывал процесс создания интернета во все том же загородном доме, т.е. какая-никакая сеть уже была на базе микротика RB751U-2HnD и, казалось бы, подключай камеры и радуйся. Ан нет, тут еще по граблям пройтись придется!

Функциональные особенности и характеристики камер, и прочего оборудования я здесь описывать не буду, разве что только те моменты, которые важны в конкретном случае.

Итак, поехали:

1 – Обе камеры сами по себе в своем составе никакой памяти не имеют, разъемов для карт памяти и USB-портов тоже. Значит нужно какое-либо сетевое хранилище информации.

2 – Сами по себе камеры видео никоим образом никуда писать не могут. Значит требуется, либо сервер в виде компа с ПО для видеонаблюдения, либо готовая, отдельно стоящая железка в виде сетевого видеорегистратора (NVR).

3 – Обе камеры имеют собственный настраиваемый детектор движения, по срабатыванию которого способны делать снимки до нескольких кадров в секунду (Snapshot), с последующей их отправкой на определенный e-mail или загрузкой на заданный FTP-сервер.

4 – Обе камеры позволяют пользователю просматривать в реальном времени видеопоток как через собственный web-интерфейс, так и в различном ПО для видеонаблюдения, либо видеоплеере.

Что же из этого вырисовывается? А то, что нужно хранилище, но поскольку видео писать нечем, то будут только снапшоты. Куда их класть? На мылоящик кидать можно, но огромное количество писем (а кадров-снапшотов будет много) рано или поздно создаст проблему. Значит, остается FTP. Что ж, в подопытной сети ее центром является микротик RB751U-2HnD, да еще и с USB-портом – чем не вариант для локального FTP-сервера без дополнительных затрат? Как это будет выглядеть физически? А так – камеры подключаются витой парой к микротику (wi-fi тоже можно использовать, но лучше витухой), в микротик втыкается USB-флешка, поднимается FTP-сервер, создается отдельная учетка, на камерах прописываются настройки для, только что созданного, FTP, включается детектор движения в камерах, по тревоге картинки с камер записываются на USB-флешку, вроде все…

В этой схеме сразу отброшена функция записи видео, увы, но бюджетно это реализовать нельзя (по крайней мере, в связке «дешевая камера» + «роутер в роли FTP/SMB-сервера» + «флешка»). По сему, далее рассматривается вариант создания фото-архива детектора движения посредством IP-камер. Для кого-то это звучит несерьезно или малоэффективно, но для владения такой информацией, как количество людей/зверей приходивших в поле «зрения» камеры во время отсутствия хозяев, вполне годится. Также доступна информация, как марка машины, цвет одежды человека и некоторые черты лица. Почему некоторые? Зависит от разрешающей способности матрицы камеры.

Если вкратце – то данный вариант для очень нетребовательных пользователей. Для охраны бомбосклада не годится, а вот быть в курсе движений около дома с возможностью доступа к архиву за дней пять-неделю (может и более, зависит от накопителя) – вполне. Кроме этого в полной мере доступна возможность просмотра видео с камер вживую без каких-либо ограничений и препятствий и без добавления еще какого-либо оборудования.

Первым делом на микротике поднял FTP-сервер и всунул в него USB-флешку. Но не просто всунул, а через USB-HUB, т.к. модему тоже как-то жить надо. Хаб, к слову нашелся весьма удобный и простой как валенок – Ginzzu GR-410UW на три порта, в котором все завелось даже без дополнительного питания.

 

С компа работоспособность FTP была проверена через FileZilla и Total Commander с успешным результатом. Да, есть в микротике одна особенность при создании FTP-сервера – доступ пользователям дается на все каталоги и жестко задать какой-то один или несколько нельзя. В целом для моих задач это было неважно – в камерах четко прописывается путь для складывания снапшотов.

Следующим этапом была установка камер, настройка и проверка конечного результата.

С комнатной D-Link DCS-930L проблем не возникло абсолютно никаких, даже при подключению по wi-fi – снапшоты исправно появлялись на флешке, воткнутой в микротик, при срабатывании детектора движения в самой камере (настройки расписывать не буду, там палка-веревка). Однако есть одно «НО» – файлы камера пишет до окончания места на флешке, а дальше просто уже не может, т.е. писать циклично я ее заставить не смог. Да, такая опция в настройках есть, но почему-то это выглядело как перезапись одного и того же файла. Прошивка 1.12.03 (2015-02-03). Для просмотра видео в соответствующих программах (VLC, например) указывается адрес вида http://[password]:[user]@IPADDRESS:/video.cgi

Для аудио-потока (камера с микрофоном) - http://[password]:[user]@IPADDRESS:/audio.cgi

Польный список вариантов написания адреса для различных моделей здесь http://forums.dlink.com/index.php?topic=59172.0

А вот с китайским нонеймом пришлось повозиться. Более-менее вменяемое название камеры – это, наверное название прошивки (по крайней мере по этим словам в поисковиках можно что-то найти) - HI3518E_50H10L_S39 .

Видео можно смотреть через браузер, либо забирать RTSP-поток прогой, которая это умеет (VLC, например). Запрос выглядит следующим образом:

Для первого потока лучшего качества -

rtsp://IPADDRESS:554/user=[USERNAME]&password=[PASSWORD]&channel=1&stream=0.sdp?

Для второго потока меньшего качества -

rtsp://IPADDRESS:554/user=[USERNAME]&password=[PASSWORD]&channel=1&stream=1.sdp?

Взято отсюда http://www.ispyconnect.com/man.aspx?n=camera

Снапшоты она также циклично писать на FTP не умеет.

Веселье началось на этапе подготовки к монтажу на улице. Камера не поддерживает питание по технологии PoE, однако PoE-сплиттер с инжектором эту ситуацию решают в один момент (RF elements Passive PoE Set V2 (standard)).

Следующий сюрприз – вот вроде бы все хорошо, китайцы даже сделали герметичный колпачок для разъема витой пары, да, супер, но вот разъем питания абсолютно не защищен, да еще и смотрит абсолютно в противоположную сторону.

Подключение сплиттера возможно только в «раскряку», что, в свою очередь, создает проблему при укладке проводов в коробок для электропроводки. Герметичный колпачок оказался совсем не к месту…

Но под рукой кроме распределительной коробки ничего не оказалось, какая-никакая герметичность у нее есть все же. Да и размещать камеру планировалось аккурат под крышей, так что осадков там никаких быть не должно. Покупать специально гермобокс или что-то подобное не было времени, да и смысла особо тоже, более того просто было инетересно – а сколько же проживет конструкция в таком вот простецком исполнении?

До закрепления конструкции в конечной точке, решил проверить работу камеры и FTP. Тут ожидал еще один сюрприз – после настройки камеры, папки с текущей датой на флешке стали создаваться, но они были пусты. Как я не бился, папки так и оставались пустыми. Флешка была отформатировна в fat32, потом в ext3, потом заменена на другую, но тщетно! Также скудные настройки FTP в камере не давали места для маневров… При изменении пути на корень диска микротика ситуация опять же не изменялась.

 

Ради интереса поднял filezilla server на ноуте, перенастроил камеру на этот сервер – тут все отлично, и папки и файлы создаются. Указал в качестве FTP-сервера свой домашний NAS D-Link DNS-320 (через доменное имя no-ip) – и там все забегало только так! А вот если указать свой домашний RB2011 (на котором специально для этого теста был поднят FTP), то там только пустые папки создаются. Чудеса! Обидно, что в логах ни в микротике, ни в камере никаких ошибок относительно FTP не наблюдалось.

Что ж, решил посмотреть, что происходит при обмене данными между камерой и FTP на микротике. Есть в микротике классная штука – встроенный сниффер пакетов (Tools – Packet Sniffer). Для этого нужно указать интерфейс, с которого надо наловить пакеты (в примере wlan2) и имя файла (в примере cam), в который будут сохранены результаты (также можно указать больший допустимый объем файла, ведь бывает так, что приходится ждать прохождения нужного пакета несколько минут).

               

Далее полученный файл копируем на компьютер с установленным Wireshark и там открываем. Сперва будут видны все пакеты в куче для всех протоколов.

Но достаточно в строке фильтра ввести название интересующего протокола (в примере ARP), и вот уже можно наблюдать гораздо меньшее число пакетов.

Для моей задачи сниффером микротика «ловились» пакеты в момент срабатывания детектора движения камеры (я проводил рукой перед объективом). Итогом этих действий стала следующая информация:

Конкретно интересуюет строка: 500 ‘appe’ : command not understood\r\n

Что означает непонимание фтп-сервера команды фтп-клиента (камеры).

По совету одного коллеги с форума http://forummikrotik.ru/viewtopic.php?f=1&t=6343&sid=98248fc32e1a5f1d22a70b9a66bbd0cb написал в поддержку микротика, приложив данный скриншот. Ответ не заставил себя долго ждать:

« Hello,

APPE is not too common used command on FTP server, currently we do not have
plans to support it,
We will consider it for the future.

Regards
,
Sergejs »

Из чего следовало, что поддержки команды APPE для FTP-сервера нет, но, когда-нибудь, может быть, вдруг она будет сделана. Писал я также и на официальный форум микротика http://forum.mikrotik.com/viewtopic.php?f=2&t=99738&p=495941#p495941 и также получил там не менее официальный ответ:

« MikroTik FTP server is only for uploading NPK files and downloading backups. It is not designed to be a public FTP server for large files and resume downloads.

You can try our SMB implementation for file sharing. »

В поисках истины писал также на форум, посвященный подобного типа камерам http://forum.videon.spb.ru/viewtopic.php?f=20&t=6677&start=345 , правда задачу я ставил другую – найти способ исправить прошивку камеры, чтобы вместо APPE использовать PUT, но тщетно.

Увы и ах! Но про локальную запись фалов на FTP микротика пришлось забыть (по крайней мере с кокретно этой камерой). Флешку демонтировал, USB-hub тоже. В конечном итоге камера кидает снапшоты по интернету на мой домашний NAS (на момент создания системы это был D-Link DNS-320, на момент написания статьи – Synology DS-214SE). Юзер, находящийся в одном физическом месте с камерой, получает доступ к архиву снапшотов через браузер по FTP-протоколу. Конечно, технически выглядит это, мягко говоря, расточительно и криво. Получается, что одни и те же файлы дважды проходят один и тот же путь. Первый раз, когда камера отправляет файл на удаленный фтп-сервер, а второй – когда файлы начинает просматривать юзер, сидящий, фактически в шаговой доступности от камеры, но загружающий архивные снапшоты из интернета, тратя лимит 3G-трафика. Тем не менее этот вариант работает уже 4 месяца вполне сносно. В дальнейших планах запилить NVR или что-то подобное локально. В общем и целом, цель, поставленная в начале этой статьи, была достигнута.

D-Link DCS-930L оттуда тоже была демонтирована, т.к. наличие этой камеры носило больше вспомогательный характер (без ИК-подстветки камеру особо смысла в тех условиях ставить нет).

А китайская камера на улице живет вот так:

 

В качестве блока питания применил импульсник Arlight 12В 3А. Внутренняя городушка выгледела так (в кабель-канале и распред.коробке идет 220В):

Весьма любопытно как вся эта система перезимует и выдержит-ли мышей и подобных им зверей. Посмотрим…

А напоследок несколько слов о месте установки камеры:

Изначально я испробовал 3 различных точки установки камеры, последняя (на фото выше) показалась самой оптимальной. И все было хорошо до первого дождя…, а потом до первых морозов…

Не совсем удачным оказался выбор расположения камеры – под крышей, прямо под самыми волнами шифера. Как результат – посредине кадра либо струя воды в дождливую погоду, либо нехилая такая сосулька в зимнее время, в которую лупит ИК-подстветка в темное время суток, и засвечивает картинку. Все это поправимо, конечно, я это к тому, что изначально учесть все нюансы не удалось, с другой стороны теперь их очень наглядно видно.

Также в теплое время года в кадр иногда попадают всякие летучие звери, но это другая история, так же, как и про размер картинки снапшота, соотношение его сторон и другие специфичные настройки камеры.

В этом материале я преследовал цель рассказать о том, как задумка сделать простецкую систему обернулась весьма неожиданными граблями со стороны микротика. Надеюсь суть я донес.

 

------------------------------------------

Дополнение в 2018 году.

-------------------------------------------------------------------------------------

В 2016г. был добавлен NVR (N6200-4EL), который пишет видео постоянно на свой внутренний жесткий диск. Включить запись по движению удалось лишь однажды - после распаковки и настройки устройства в домашних условиях, и то, только при подключении монитора, мышки, клавиатуры к NVR и выполнении настроек через экранный интерфейс. Позже все настройки и перенастройки делались удаленно, как через WEB-интерфейс, так и через управляющую программу на компьютере. В таком варианте запись по наличию движения по неизвестной причине не работает. Впрочем, круглосуточная запись все же лучше обычных снапшотов.

 

 

 

 

В 2017 году (в летнее время) после очередной грозы перестал работать интернет. Само подключение на вэб-странице модема было активно, но трафик не шел. Вероятной причиной стал выход из строя каких-то компонентов в радио-тракте одного из антенных разъемов. Переключение антенны во второй антенный разъем на модеме решило проблему. Также был добавлен заземляющий провод от мачты до штыря, вбитого в землю.

Ближе к осени 2017г. пропала картинка с камеры и физическое подключение на, выделенном для нее, LAN-порту в микротике. Причина оказалась в плохом контакте центральной жилы разъема питания 12В, подававшего энергию в камеру через PoE-инжектор. При вращении штекера в гнезде, контакт иногда появлялся.

 

 

Уж не знаю, как там что-то могло повредиться в такой литой конструкции штекера, ведь сами кабели неподвижны, физических нагрузок нет. Кто-то лазил? Шевелил? Мыши? Следов погрызов я не нашел… И окисление внутри помещения маловероятно, хотя… В конечном итоге замена штекера решила проблему.

 

На текущий момент (лето 2018г) вся конструкция функционирует исправно.

А FTP на микротике еще раз проверял в том же 2017г. на актуальной, на тот момент, прошивке и ничего нового я не увидел. В конечном итоге, к этой идее реализации FTP-сервера я больше не возвращался.