Суть проблемы
Если вы разбили свою сеть на сегменты, возможно, столкнулись с трудностями при использовании Chromecast, Airplay или подобных IoT-устройств, которые зависят от mDNS / Bonjour / ZeroConf или SSDP. Причина в том, что эти протоколы не маршрутизируются и не фильтруются. Многие с этим сталкиваются, и хотя существует множество решений, ни одно из них не является полностью надежным с точки зрения безопасности. Часто проблемы связаны с двунаправленным отражением трафика, отсутствием опций фильтрации, поддержкой только IPv4 и отсутствием отслеживания сессий.
Тем не менее, я разработал решение, которое, как мне кажется, сочетает в себе лучшие возможности всех известных подходов. В нем использованы несколько разных стратегий, ориентированных на RouterOS.
Какова наша цель?
Предположим, у нас есть сегментированные сети, устроенные следующим образом:
- Клиентская сеть, включающая ваши ПК, ноутбуки и смартфоны членов семьи.
- Гостевая сеть, состоящая из смартфонов и других устройств ваших гостей.
- IoT-сеть с Chromecast, Airplay и прочими IoT-устройствами.
Задача — пользоваться IoT-устройствами из клиентской сети, но при этом лишь ограниченное число устройств из IoT-сети должно быть доступно в гостевой. Также нежелательно транслировать mDNS/SSDP из IoT-сети в клиентскую или гостевую. Дополнительно нужно запретить гостям пользоваться mDNS/SSDP для доступа в клиентскую сеть (и наоборот).
Предложенное решение
Bonjour-reflector, который я разработал, — это улучшенная версия другого проекта с добавленной поддержкой таких протоколов, как SSDP.
Основные возможности:
- Точный контроль за рекламируемыми IoT-устройствами на основе MAC-адресов. Доступ можно задавать для каждого устройства отдельно.
- Анализ протоколов для более правильной обработки SSDP и mDNS. Устройство умеет различать запросы и объявления.
- Отслеживание сессий: мониторит, какие порты заняты для каждой сессии, и разрешает трафик только в нужном направлении.
- Поддержка IPv6, что позволяет использовать устройство как с IPv6, так и с IPv4.
- Один компактный бинарный файл размером примерно 8 МБ.
- Совместим с большинством Arm(64) + CHR Mikrotik.
Подробное руководство доступно в markdown на Github. Вот ссылка на инструкцию:
Если есть вопросы — обращайтесь, всегда рад помочь!
Если вы разбили свою сеть на сегменты, возможно, столкнулись с трудностями при использовании Chromecast, Airplay или подобных IoT-устройств, которые зависят от mDNS / Bonjour / ZeroConf или SSDP. Причина в том, что эти протоколы не маршрутизируются и не фильтруются. Многие с этим сталкиваются, и хотя существует множество решений, ни одно из них не является полностью надежным с точки зрения безопасности. Часто проблемы связаны с двунаправленным отражением трафика, отсутствием опций фильтрации, поддержкой только IPv4 и отсутствием отслеживания сессий.
Тем не менее, я разработал решение, которое, как мне кажется, сочетает в себе лучшие возможности всех известных подходов. В нем использованы несколько разных стратегий, ориентированных на RouterOS.
Какова наша цель?
Предположим, у нас есть сегментированные сети, устроенные следующим образом:
- Клиентская сеть, включающая ваши ПК, ноутбуки и смартфоны членов семьи.
- Гостевая сеть, состоящая из смартфонов и других устройств ваших гостей.
- IoT-сеть с Chromecast, Airplay и прочими IoT-устройствами.
Задача — пользоваться IoT-устройствами из клиентской сети, но при этом лишь ограниченное число устройств из IoT-сети должно быть доступно в гостевой. Также нежелательно транслировать mDNS/SSDP из IoT-сети в клиентскую или гостевую. Дополнительно нужно запретить гостям пользоваться mDNS/SSDP для доступа в клиентскую сеть (и наоборот).
Предложенное решение
Bonjour-reflector, который я разработал, — это улучшенная версия другого проекта с добавленной поддержкой таких протоколов, как SSDP.
Основные возможности:
- Точный контроль за рекламируемыми IoT-устройствами на основе MAC-адресов. Доступ можно задавать для каждого устройства отдельно.
- Анализ протоколов для более правильной обработки SSDP и mDNS. Устройство умеет различать запросы и объявления.
- Отслеживание сессий: мониторит, какие порты заняты для каждой сессии, и разрешает трафик только в нужном направлении.
- Поддержка IPv6, что позволяет использовать устройство как с IPv6, так и с IPv4.
- Один компактный бинарный файл размером примерно 8 МБ.
- Совместим с большинством Arm(64) + CHR Mikrotik.
Подробное руководство доступно в markdown на Github. Вот ссылка на инструкцию:
Если есть вопросы — обращайтесь, всегда рад помочь!


