Для системы IoT существует требование, чтобы базовые станции автоматически обнаруживали близлежащие устройства и затем подключались к ним.Программное обеспечение на базовых станциях развертывается с использованием docker-compose.
Службы рекламируют с использованием mDNS (zeroconf) и идентифицируют себя как тип mytype
.Клиенты используют aiozeroconf для обнаружения служб, соответствующих _mytype._tcp.local.
.
Проблема заключается в том, что клиенты в сети, входящей в состав Docker, не обнаруживают службы в сети LAN - даже если они достижимы в противном случае.
В настоящее время у меня есть следующие настройки:
LAN (Wifi)
- IoT device
- ServiceA
- Host / base station
- ClientA
- Docker-compose network
- ServiceB
- ClientB
- ClientA находит ServiceA и ServiceB
- ClientB находит ServiceB
- avahi-Discover на узле находит оба ServiceAи ServiceB
- ClientB может подключаться к ServiceA с использованием IP-адреса локальной сети (192.168.xx)
Считается ли этот сценарий вне спецификации для mDNS (ServiceA больше не рассматривается в .local) или это можно решить?