Привет! У меня постоянно возникают проблемы с тем, чтобы стабильно находить свои колонки AirPlay и управлять переключателями HomeKit в среде с разными радиоканалами. У меня есть USG, 8-портовый коммутатор UniFi, 4 точки доступа AP-AC-LR и CloudKey. Для простоты мои точки доступа называются North, South, East и West. East и West подключены напрямую к коммутатору. North и South подключаются по беспроводным цепочкам — одна через East, другая через West. У меня настроено 3 SSID:
- oddly (смешанный 2,4 и 5 ГГц)
- oddly2g (только 2,4 ГГц)
- oddly5g (только 5 ГГц)
Я назначил каналы так, чтобы они не перекрывались (за исключением uplink-соединений, где пары AP вынуждены быть на одном канале 5 ГГц), и уменьшил мощность передачи у большинства точек доступа. В целом сеть ведёт себя хорошо, если не считать проблем с Apple/Bonjour/mDNS/multicast. Все мои колонки AirPlay и переключатели HomeKit работают только на 2,4 ГГц, и чтобы не было путаницы, они все подключены к чистому SSID oddly2g. Мой AppleTV — единственное AirPlay-устройство, которое работает на 5 ГГц. Телефон обычно подключается к oddly и может переключаться между 2,4 и 5 ГГц. Для экспериментов я принудительно подключаю телефон к oddly2g или oddly5g.
Что я заметил: я вижу свои AirPlay-колонки и переключатели HomeKit, когда нахожусь на 2,4 ГГц, независимо от того, к какому SSID подключён (oddly2g или oddly, где я случайно попадаю на 2,4, а не 5 ГГц). Но если я на 2,4 ГГц, то не всегда вижу AppleTV на 5 ГГц. Если без смены точки доступа принудительно перевести телефон на oddly5g и попасть на радиоканал, отличный от того, на котором колонки, они сразу пропадают — кроме AppleTV, который тоже на 5 ГГц. Раньше у меня был включён IGMP-Snooping, но я не нашёл информации о парном IGMP-Querier, поэтому отключил его. При отключении только коммутатор и USG прошли процедуру перепрошивки.
Я также подключился по SSH к CloudKey и создал файл config.properties с такими строками:
config.igmpsnoop_enabled.oddly=false
config.igmpsnoop_enabled.oddly2g=false
config.igmpsnoop_enabled.oddly5g=false
После этого переключил индикаторы на точках доступа. Они не явно проходили перепрошивку. С тех пор всё вроде работает лучше и устройства видны, кроме AppleTV — его видно только если ты подключён к той же точке доступа, что и он.
Я не сетевой инженер (извиняюсь, я просто разработчик), но всё это, похоже, вопрос маршрутизации или передачи multicast между радиоканалами. IGMP Snooping должен сокращать объём multicast-трафика, отслеживая его и направляя только нужным устройствам, но, возможно, в контексте Bonjour он работает не очень корректно. Без IGMP Querier, похоже, snooping вовсе не функционирует? Или где-то предполагается, что multicast-пакет, пришедший на 2,4 ГГц, уже был получен всеми на точке доступа и его не нужно ретранслировать на 5 ГГц по беспроводной линии, а не просто отправлять через uplink? Или наоборот — когда пакет приходит по 5 ГГц uplink, точка доступа отражает его только на 2,4 ГГц, вместо того, чтобы отправлять и клиентам, подключённым к 5 ГГц? В общем, отключение IGMP Snooping и на уровне сети, и через CLI на каждой точке доступа пока улучшило ситуацию.
Будем надеяться.
- oddly (смешанный 2,4 и 5 ГГц)
- oddly2g (только 2,4 ГГц)
- oddly5g (только 5 ГГц)
Я назначил каналы так, чтобы они не перекрывались (за исключением uplink-соединений, где пары AP вынуждены быть на одном канале 5 ГГц), и уменьшил мощность передачи у большинства точек доступа. В целом сеть ведёт себя хорошо, если не считать проблем с Apple/Bonjour/mDNS/multicast. Все мои колонки AirPlay и переключатели HomeKit работают только на 2,4 ГГц, и чтобы не было путаницы, они все подключены к чистому SSID oddly2g. Мой AppleTV — единственное AirPlay-устройство, которое работает на 5 ГГц. Телефон обычно подключается к oddly и может переключаться между 2,4 и 5 ГГц. Для экспериментов я принудительно подключаю телефон к oddly2g или oddly5g.
Что я заметил: я вижу свои AirPlay-колонки и переключатели HomeKit, когда нахожусь на 2,4 ГГц, независимо от того, к какому SSID подключён (oddly2g или oddly, где я случайно попадаю на 2,4, а не 5 ГГц). Но если я на 2,4 ГГц, то не всегда вижу AppleTV на 5 ГГц. Если без смены точки доступа принудительно перевести телефон на oddly5g и попасть на радиоканал, отличный от того, на котором колонки, они сразу пропадают — кроме AppleTV, который тоже на 5 ГГц. Раньше у меня был включён IGMP-Snooping, но я не нашёл информации о парном IGMP-Querier, поэтому отключил его. При отключении только коммутатор и USG прошли процедуру перепрошивки.
Я также подключился по SSH к CloudKey и создал файл config.properties с такими строками:
config.igmpsnoop_enabled.oddly=false
config.igmpsnoop_enabled.oddly2g=false
config.igmpsnoop_enabled.oddly5g=false
После этого переключил индикаторы на точках доступа. Они не явно проходили перепрошивку. С тех пор всё вроде работает лучше и устройства видны, кроме AppleTV — его видно только если ты подключён к той же точке доступа, что и он.
Я не сетевой инженер (извиняюсь, я просто разработчик), но всё это, похоже, вопрос маршрутизации или передачи multicast между радиоканалами. IGMP Snooping должен сокращать объём multicast-трафика, отслеживая его и направляя только нужным устройствам, но, возможно, в контексте Bonjour он работает не очень корректно. Без IGMP Querier, похоже, snooping вовсе не функционирует? Или где-то предполагается, что multicast-пакет, пришедший на 2,4 ГГц, уже был получен всеми на точке доступа и его не нужно ретранслировать на 5 ГГц по беспроводной линии, а не просто отправлять через uplink? Или наоборот — когда пакет приходит по 5 ГГц uplink, точка доступа отражает его только на 2,4 ГГц, вместо того, чтобы отправлять и клиентам, подключённым к 5 ГГц? В общем, отключение IGMP Snooping и на уровне сети, и через CLI на каждой точке доступа пока улучшило ситуацию.
Будем надеяться.
