Mikrotik и настройка RTSP для видеопотока с IP камеры

Обсуждение ПО и его настройки
dzhenkins
Сообщения: 10
Зарегистрирован: 21 фев 2019, 18:14

Всем привет. Помогите пожалуйста расколдовать загадку. Я в RouterOS не спец, и вообще от сетевых технологий далёк, но постараюсь максимально внять и понять тех, кто откликнится на помощь.

Имеем китайскую IP камеру TH38E5 с последней прошивкой, подключена к MikroTik hAP lite classic (RB941-2nD) с привязкой к 192.168.88.12, провайдер выдаёт статический белый IP, предположим 99.99.99.99. В настройках камеры доступ по 80 порту и 554. Плюс какой-то порт для PTZ, но это не интересует.
В Микротике сделал проброс портов, в том числе и для RTSP 554й порт.
Но, по rtsp ни одна прога не может подключится к камере и получить видеопоток ни в локалке ни из внешки((
Веб морда камеры доступна отовсюду.

Вот всё что в Firewall:

Код: Выделить всё

/ip firewall filter
add action=accept chain=forward connection-nat-state=dstnat in-interface=ether1
add action=accept chain=forward comment="forward and related connections" connection-state=established,related disabled=yes
add action=drop chain=forward connection-state=invalid disabled=yes
add action=accept chain=input connection-state=established,related disabled=yes
add action=drop chain=input connection-state=invalid disabled=yes
/ip firewall nat
add action=masquerade chain=srcnat
add action=masquerade chain=srcnat src-address=192.168.88.0/24
add action=dst-nat chain=dstnat dst-port=554 in-interface=ether1 protocol=tcp to-addresses=192.168.88.12 to-ports=554
add action=dst-nat chain=dstnat dst-address=99.99.99.99 dst-port=554 in-interface=bridge protocol=tcp src-address=192.168.88.0/24 to-addresses=192.168.88.12 to-ports=554
add action=dst-nat chain=dstnat dst-port=52777 in-interface=ether1 protocol=tcp to-addresses=192.168.88.12 to-ports=80
add action=dst-nat chain=dstnat dst-address=99.99.99.99 dst-port=52777 in-interface=bridge protocol=tcp src-address=192.168.88.0/24 to-addresses=192.168.88.12 to-ports=80
add action=dst-nat chain=dstnat dst-port=554 in-interface=ether1 protocol=udp to-addresses=192.168.88.12 to-ports=554
Конечно возможно стоит копать в настройках самой камеры, но всё же, как-то хочется убедится что в Микротике всё нормально. Как можно проверить проброс портов и убедится что при запросе по rtsp Микротик действительно направляет к камере, и как посмотреть что отвечает камера?


Аватара пользователя
Vlad-2
Модератор
Сообщения: 2531
Зарегистрирован: 08 апр 2016, 19:19
Откуда: Петропавловск-Камчатский (п-ов Камчатка)
Контактная информация:

1) надеюсь в роутере Вы отключили веб-морду самого роутера на 80-м порту?
(IP-Services, www) ?
1.1) Управляеть надо/очень желательно только через утилиту Winbox

2) В Файрволе, в закладке NAT = рекомендую пробросы портов переместить выше, относительно правил
маскарада (ибо внутри роутера, пробросы обрабатываются раньше маскарада)
2.1) У Вас два правила маскарада, и то правило, где нет указания исходящей сети,
оно более глобально, и вдобавок оно стоит первее, поэтому оно и выполняется,
а второе правило - холостое, срабатывать оно не будет успевать.
Так что тут Вы перемудрили. Надо оставить одно.

3) НО всё это мелочи, главные ошибки тех, кто пытается сделать пробросы:

а) устройство, на которое мы(Вы) делаете проброс - оно должно быть правильно
настроено, а именно: у камеры Вашей должен быть обязательно задан шлюз,
и шлюз этот должен быть - локальный адрес роутера. Так что проверьте камеру
тоже, кроме адреса, маски, ШЛЮЗ должен быть обязательно задан (камера
должна знать куда ей "отвечать" на пришедшие запросы).

б) и ещё самая большая ошибка - при созданий правил проброса, проверять работу пробросов
надо с другого физического канала. То есть мы как бы приоткрыли дверь снаружи,
а многие начинающие делают пробросы, но лезут изнутри в эти же двери, и конечно же ошибка.
Самый простой способ, не выходя из дому: включаете на смартфоне режим ТОЧКИ доступа,
подключаете ноутбук через эту точку на смартфоне и уже работая в Интернете через смартфон,
и соответственно через сотового оператора, доходите до своего роутера снаружи и пытаетесь
зайти на камеру по открытому порту.
Для тестов на 5-10 минут (даже если нет на смартфоне включенного трафика), думаю
такой тест всё равно можно сделать....и сильно отразиться на балансе телефона.


И вот самые простые работающие правила пробросов (как пример Вам, ибо у Вас там тоже много лишнего)

Код: Выделить всё

/ip firewall nat
add action=dst-nat chain=dstnat comment=mTorrents dst-port=1313 in-interface=pppoe-out1-RTK protocol=tcp to-addresses=192.168.0.11 to-ports=1313
add action=dst-nat chain=dstnat comment=mTorrents dst-port=1313 in-interface=pppoe-out1-RTK protocol=udp to-addresses=192.168.0.11 to-ports=1313



На работе(ах): 2xCCR1016-12G, RB3011UiAS и hAP lite (RB941)
Дома: CCR1016-12G, RBcAP2n (standalone), RB wAP LTE kit
Для тестов(под рукой): RB3011UiAS, hAP mini (RB931) и что-то ещё по мелочи
MTCNA
MTCRE
dzhenkins
Сообщения: 10
Зарегистрирован: 21 фев 2019, 18:14

Спасибо за развёрнутый ответ. Итак, скрин настроек камеры прилагаю.
Изображение
Извне по rtsp подключатся пробую. В локалке работает. Проблема как раз таки получить видеопоток извне)) Поэтому зайдействован и телефон и соседский интернет))
Про лишний маскарад знаю, убрал.
Роутером управляю только через винбокс, в сервисах остальное закрыто наглухо))

У Вас пример перебросов с указанием интерфейсов pppoe-out1-RTK, в моем случае это не катит, интернет приходит четко через ether1) А лишнего у меня разве что перебросы с протоколом udp, их можно убрать, добавлял на всяк случай, авось повезёт))

Вот и получается загадка неразгаданная....


Аватара пользователя
Vlad-2
Модератор
Сообщения: 2531
Зарегистрирован: 08 апр 2016, 19:19
Откуда: Петропавловск-Камчатский (п-ов Камчатка)
Контактная информация:

Давайте по-порядку:

1) у правил есть счётчики срабатывания, при обращении на порт проброса, счётчик(и) у правил проброса
с нуля начинают уже не быть равны? То есть если пакет попадает, то счётчик показывает это.
2) на счёт примера и интерфейса pppoe-out1-RTK - это пример, Вы должны подставить тот интерфейс,
на котором у Вас идёт интернет(на котором именно получаете адрес/прописан адрес).
3) я много пробросов делал, и разные порты, в том числе делал пробросы видеорегистраторов с их
портами странными, всё работало.
4) я (если не знаю или если сомневаюсь) то делаю по два правила (TCP и UDP) на ОДИН порт.
Так легче и проще, точно что заработает, и ещё и отследить что сработало проще.

Краткий вывод:
Если снаружи при обращении на порты проброса счётчик срабатывает, пробросы сделаны правильно.
И надо искать проблему либо в камере, либо Вы уже на программном уровне не так работаете
с нужным портом/трафиком, или для работы программы с камерой нужны ещё другие порты.

P.S.
А параметр MTU на камеры Вы "трогали?" (изменяли) ???



На работе(ах): 2xCCR1016-12G, RB3011UiAS и hAP lite (RB941)
Дома: CCR1016-12G, RBcAP2n (standalone), RB wAP LTE kit
Для тестов(под рукой): RB3011UiAS, hAP mini (RB931) и что-то ещё по мелочи
MTCNA
MTCRE
anad
Сообщения: 185
Зарегистрирован: 24 ноя 2016, 21:14

попадала в руки сильно китайская камера, у которой TTL в RTSP потоке ставился 1. ( надо бы проверить)
Ну и не забываем прокидывать и UDP тоже ( вообще он чаще используется для RTCP )


dzhenkins
Сообщения: 10
Зарегистрирован: 21 фев 2019, 18:14

Параметр MTU не трогал... а что это за параметр и на что он влияет?
При запросе RTSP извне счетчик пакетов и трафика сдвигается с места (кстати подскажите, как правильно и где в Микротике такие моменты смотреть?) . Поэтому тоже грешил на камеру. Но в локалке RTSP работает ведь, значит и с камерой должно быть норм всё. В итоге начал ругать Микротик, что он где-то недопропускает трафик. Или такие выводи не стоит делать?


TTL в RTSP потоке ставился 1. Это что и как это ставить?))


anad
Сообщения: 185
Зарегистрирован: 24 ноя 2016, 21:14

dzhenkins писал(а): 22 фев 2019, 10:43 Параметр MTU не трогал... а что это за параметр и на что он влияет?
При запросе RTSP извне счетчик пакетов и трафика сдвигается с места (кстати подскажите, как правильно и где в Микротике такие моменты смотреть?) . Поэтому тоже грешил на камеру. Но в локалке RTSP работает ведь, значит и с камерой должно быть норм всё. В итоге начал ругать Микротик, что он где-то недопропускает трафик. Или такие выводи не стоит делать?


TTL в RTSP потоке ставился 1. Это что и как это ставить?))
TTL это количество возможных передач пакета между компами в сети, в 99% случаев оно оказывается "зашито" в софт камеры. Посмотреть не сложно, если понимать что такое dump и как им пользоваться. Но если не понимаете, что такое MTU и TTL - позовите кого-нибудь кто понимает посмотреть что происходит.

Все что можно прежддлжить попробовать это заменить dst-nat на netmap ( а вдруг !! оно только локальным компам отдает) .
И принудилтельно поставить TTL примерно так
/ip firewall mangle add action=change-ttl chain=input new-ttl=set:64 src-address=


dzhenkins
Сообщения: 10
Зарегистрирован: 21 фев 2019, 18:14

anad писал(а): 22 фев 2019, 13:15 Все что можно прежддлжить попробовать это заменить dst-nat на netmap ( а вдруг !! оно только локальным компам отдает) .
И принудилтельно поставить TTL примерно так
/ip firewall mangle add action=change-ttl chain=input new-ttl=set:64 src-address=
Не помогло(


anad
Сообщения: 185
Зарегистрирован: 24 ноя 2016, 21:14

dzhenkins писал(а): 22 фев 2019, 13:22
anad писал(а): 22 фев 2019, 13:15 Все что можно прежддлжить попробовать это заменить dst-nat на netmap ( а вдруг !! оно только локальным компам отдает) .
И принудилтельно поставить TTL примерно так
/ip firewall mangle add action=change-ttl chain=input new-ttl=set:64 src-address=
Не помогло(
тогда только смотреть на локальном уровне что приходит от камеры - схватить трафик дампом и думать на полученным


Sertik
Сообщения: 1598
Зарегистрирован: 15 сен 2017, 09:03

Может у Вас провайдер блокирует 554 порт ?


фрагменты скриптов, готовые работы, статьи, полезные приемы, ссылки
viewtopic.php?f=14&t=13947
Ответить