LINUX.ORG.RU
решено ФорумAdmin

Обнаружение устройств из разных подсетей

 , ,


0

1

Исполнил я свою мечту: поставил себе роутер с OpenWRT и наконец вынес всякие слишком умные домашние девайсы в отдельную сеть с запретом доступа в основную. Сразу проверил что доступ к этим устройствам из основной сети есть, но сегодня обнаружил что мобильное приложение для управелния одним из устройств перестало работать. Предполагаю что дело в изоляции broadcast трафика между разными сетями, но точно не могу определить.

Вопрос: можно как-либо эту проблему диагностировать, и если действительно дело в broadcast трафике, есть ли простые способы её решить?

Устройства подключены по Wi-Fi к разным интерфейсам с разными сетями, у каждой сети своя собственная firewall zone’а. Форвард из зоны lan(где работает клиент) в зону iot(где работает устройство) разрешен, но обнаружения устройства больше не происходит. При том что ping идет. Для коммуникации используется протокол Sony SongPal, если важно.

Если дело именно в броадкасте(а не в мультикасте, например), то решить просто с наскока не получится.

Определить можно, посмотрев что шлет твой девайс через tcpdump на роутере.

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

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)

Так, при изучении исходников библиотеки-клиента заметил что для общения клиента с сервером используется протокол UPnP, а для обнаружения соответственно должен использоваться протокол SSPD, что я и вижу в трафике. Утилита gssdp-discover при нахождении в одной сети с устройством успешно находит какие-то эндпоинты на нем, отлично.

Стало быть мне действительно нужно именно multicast роутить между сетями каким то образом.

Честно говоря у меня трудности с этим, из полезного смотрю на материал https://openwrt.org/docs/guide-user/network/wan/udp_multicast. Может быть кому-нибудь будет что добавить?

Спасибо!

shooter93 ★★
() автор топика
3 февраля 2023 г.

Решилось с использованием демона smcroute.

Например для обнаружения устройств в основной сети(br-lan) из гостевой(br-guest) получилась вот такая конфигурация:

phyinit br-guest enable
mgroup from br-guest group 239.255.255.250
mroute from br-guest group 239.255.255.250 to br-lan

shooter93 ★★
() автор топика