Дорогие участники сообщества UniFi,
Уже довольно давно я сталкиваюсь с одной странной проблемой, но только недавно решил написать об этом здесь.
У меня есть два UniFi AP AC Pro, и на обоих кажется проявляется одна и та же беда. Драйверы Wi-Fi на этих точках доступа по какой-то непонятной причине сбрасывают ICMPv6 и/или связанные с IPv6 Ethernet-мультикасты.
1) Когда я захожу на свой маршрутизатор под Linux и запускаю такую команду, я вижу множество сообщений соседних запросов (neighbor solicitation), соседних объявлений (neighbor advertisement) и объявлений маршрутизатора (router advertisement):
tcpdump -nn -i br0.2 icmp6 and 'ip6[40] >= 130' -vvv
2) Когда захожу напрямую по SSH на AP и запускаю ту же команду (только интерфейс меняю на br0, чтобы он соответствовал мосту на AP), я тоже вижу все ICMP-сообщения.
3) Но на клиенте я замечаю очень мало сообщений neighbor solicitation/neighbor advertisement, и только для ссылочных IPv6-адресов (fe80::/64, а не для Ethernet-мультикаста). Когда возникает проблема, я вообще не вижу IPv6 Ethernet-мультикаст-трафик. Редко появляются объявления маршрутизатора на клиенте, словно AP вдруг решает пустить трафик — и тогда кратковременно появляется IPv6-связь, пока снова не истекут таймеры по объявлениям маршрутизатора из-за дальнейших потерь трафика.
Так как мои сообщения объявлений маршрутизатора живут совсем недолго (60 секунд), очень важно, чтобы они успевали доходить вовремя. Сейчас я делаю их широковещательными каждые 15 секунд.
Если хочется отфильтровать только объявления маршрутизатора, их можно ловить с помощью tcpdump с модифицированным фильтром: icmp6 and 'ip6[40] = 134'.
После перезагрузки AP проблема пропадает на короткое время, но через пару дней всё повторяется.
Я подозреваю, что дело в драйвере Wi-Fi на AP, а именно — в том, что он сбрасывает Ethernet-мультикаст-пакеты. Объявления маршрутизатора посылаются на Ethernet-мультикаст-адрес, который создаётся из IPv6-мультикаст-адреса.
Например, это Ethernet-мультикаст для всех IPv6-узлов в локальной сети (ff02::1), что соответствует адресу 33:33:00:00:00:01. Этот трафик сбрасывается и не доходит до клиента:
10:58:41.713393 2a:5f:e6:xx:xx:xx > 33:33:00:00:00:01, ethertype IPv6 (0x86dd), length 150: (flowlabel 0xcf736, hlim 255, next-header ICMPv6 (58) payload length: 96) fe80::428d:5cff:fexx:xxxx > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 96
Подробно про маппинг IPv6-мультикастов в Ethernet-мультикасты можно почитать здесь:
Конфигурация сети:
На Linux-маршрутизаторе запущен контроллер UniFi версии 6.0.28.0. Очень похожая, если не та же проблема наблюдалась и на контроллере из ветки версии 5.
AP работают на прошивке версии 4.0.80.10875, я также пробовал последнюю 4.3.21.11325 — без изменений.
Опция Multicast enhancements отключена.
Опция Block LAN to WAN Multicast and Broadcast Data тоже выключена.
В основном настройки по умолчанию.
У меня есть два ESSID: один подключён к основной LAN, другой — с мостом в VLAN 64. Проблема происходит на обоих ESSID.
Перекрёстных мультикаст/браудкаст штормов по ESSID нет, то есть трафик с LAN ESSID не идёт в VLAN 64 ESSID (что хорошо).
Другого оборудования UniFi в сети нет. AP питаются от коммутатора ZyXEL GS1900-10HP. Но раз трафик на AP виден, я не думаю, что проблема в коммутаторе.
Можете подсказать, что ещё проверить или перенастроить, чтобы проблему решить? Какие могут быть ошибки в моей конфигурации?
И последнее: я замечал такую же проблему уже год на нашей офисной сети с AP AC Pro. Вдруг ICMPv6-сообщения пропадают или не доходят до клиентов. Чаще всего это касается объявлений маршрутизатора, но касается и neighbor solicitation — а это значит, что клиенты на одном AP не видят друг друга, ведь соседний протокол не в состоянии узнать Ethernet-адрес другого участника.
Уже довольно давно я сталкиваюсь с одной странной проблемой, но только недавно решил написать об этом здесь.
У меня есть два UniFi AP AC Pro, и на обоих кажется проявляется одна и та же беда. Драйверы Wi-Fi на этих точках доступа по какой-то непонятной причине сбрасывают ICMPv6 и/или связанные с IPv6 Ethernet-мультикасты.
1) Когда я захожу на свой маршрутизатор под Linux и запускаю такую команду, я вижу множество сообщений соседних запросов (neighbor solicitation), соседних объявлений (neighbor advertisement) и объявлений маршрутизатора (router advertisement):
tcpdump -nn -i br0.2 icmp6 and 'ip6[40] >= 130' -vvv
2) Когда захожу напрямую по SSH на AP и запускаю ту же команду (только интерфейс меняю на br0, чтобы он соответствовал мосту на AP), я тоже вижу все ICMP-сообщения.
3) Но на клиенте я замечаю очень мало сообщений neighbor solicitation/neighbor advertisement, и только для ссылочных IPv6-адресов (fe80::/64, а не для Ethernet-мультикаста). Когда возникает проблема, я вообще не вижу IPv6 Ethernet-мультикаст-трафик. Редко появляются объявления маршрутизатора на клиенте, словно AP вдруг решает пустить трафик — и тогда кратковременно появляется IPv6-связь, пока снова не истекут таймеры по объявлениям маршрутизатора из-за дальнейших потерь трафика.
Так как мои сообщения объявлений маршрутизатора живут совсем недолго (60 секунд), очень важно, чтобы они успевали доходить вовремя. Сейчас я делаю их широковещательными каждые 15 секунд.
Если хочется отфильтровать только объявления маршрутизатора, их можно ловить с помощью tcpdump с модифицированным фильтром: icmp6 and 'ip6[40] = 134'.
После перезагрузки AP проблема пропадает на короткое время, но через пару дней всё повторяется.
Я подозреваю, что дело в драйвере Wi-Fi на AP, а именно — в том, что он сбрасывает Ethernet-мультикаст-пакеты. Объявления маршрутизатора посылаются на Ethernet-мультикаст-адрес, который создаётся из IPv6-мультикаст-адреса.
Например, это Ethernet-мультикаст для всех IPv6-узлов в локальной сети (ff02::1), что соответствует адресу 33:33:00:00:00:01. Этот трафик сбрасывается и не доходит до клиента:
10:58:41.713393 2a:5f:e6:xx:xx:xx > 33:33:00:00:00:01, ethertype IPv6 (0x86dd), length 150: (flowlabel 0xcf736, hlim 255, next-header ICMPv6 (58) payload length: 96) fe80::428d:5cff:fexx:xxxx > ff02::1: [icmp6 sum ok] ICMP6, router advertisement, length 96
Подробно про маппинг IPv6-мультикастов в Ethernet-мультикасты можно почитать здесь:
Конфигурация сети:
На Linux-маршрутизаторе запущен контроллер UniFi версии 6.0.28.0. Очень похожая, если не та же проблема наблюдалась и на контроллере из ветки версии 5.
AP работают на прошивке версии 4.0.80.10875, я также пробовал последнюю 4.3.21.11325 — без изменений.
Опция Multicast enhancements отключена.
Опция Block LAN to WAN Multicast and Broadcast Data тоже выключена.
В основном настройки по умолчанию.
У меня есть два ESSID: один подключён к основной LAN, другой — с мостом в VLAN 64. Проблема происходит на обоих ESSID.
Перекрёстных мультикаст/браудкаст штормов по ESSID нет, то есть трафик с LAN ESSID не идёт в VLAN 64 ESSID (что хорошо).
Другого оборудования UniFi в сети нет. AP питаются от коммутатора ZyXEL GS1900-10HP. Но раз трафик на AP виден, я не думаю, что проблема в коммутаторе.
Можете подсказать, что ещё проверить или перенастроить, чтобы проблему решить? Какие могут быть ошибки в моей конфигурации?
И последнее: я замечал такую же проблему уже год на нашей офисной сети с AP AC Pro. Вдруг ICMPv6-сообщения пропадают или не доходят до клиентов. Чаще всего это касается объявлений маршрутизатора, но касается и neighbor solicitation — а это значит, что клиенты на одном AP не видят друг друга, ведь соседний протокол не в состоянии узнать Ethernet-адрес другого участника.
