Появился пользовательский роутер Shenzhen Gongjin Electronics Co и сломал почти у всех IPv6, и так неоднозначно работающий в сети:
Итак, для нормального функционирования Ipv6 в сети должен нормально функционировать мультикаст трафик. Все задачи в сети от обнаружения соседей, до получения IP адреса решаются с использованием мультикаста. Даже когда надо просто спросить адрес соседа - аналог APR, то из последних 24х битов IP адреса искомого хоста вычисляется адрес группы и именно туда шлется запрос на получение mac адреса, а клиент обязан входить в эту свою группу. В общем мультикаст для IPv6 очень важен.
Для обеспечения работы мультикаста в ethernet Ipv6 сетях используется в чем-то похожий на igmp snooping протокол - MLD.
Квериер постоянно отсылает запросы, и каждый коммутатор получает его адрес, как адрес мультикаст роутера. Чем меньше адрес квериера - тем он приоритенее, и вот в сети разделенной трафик сегментейшеном появился пользовательский квериер на одной из ветвей дерева! Его МАС как назло меньше текущего нашего Квериера, и он выигрывает выборы, наш квериер замолкает.
Пример пакета:
Код:
18:34:43.964656 00:07:26:44:21:3d > 33:33:00:00:00:01, ethertype IPv6 (0x86dd), length 90: (hlim 1, next-header Options (0) payload length: 36) fe80::207:26ff:fe44:213d > ff02::1: HBH (rtalert: 0x0000) (padn)[icmp6 sum ok] ICMP6, multicast listener query, length 28v2 [max resp delay=10] [gaddr :: sflag robustness=2 qqi=60]
Юзер висит на 22м порту DES-3528 (прошивка уже 3.10.B052)
Фигня война, думаю счас поможет:
Код:
config mld_snooping mrouter_ports_forbidden vlanid 10 add 22
, не помогло, так и сыпятся от юзера multicast listener query, хотя аналогичной команды в ipv4 было достаточно. Коммутатор абонента не назначает этот порт как роутерный себе, но коммутаторы в округе которые его слышат продолжают назначать.
Ну думаю так легко не взять, Wireshark в зубы, часик времени и получились packet_content_mask ACL - не работают, переделал для CPU ALC не работают, подвигал на vlan ибо фиг знает как там у 3528 packet_content_mask работает, не получил результата.
Перепроверил себя, ошибок не нашел, и сделал обычное и CPU правило ethernet ACL и запретил ходить на MAC 33:33:00:00:00:01 - нет результата, пакеты летят как летели. Создал ipv6 CPU правило - тоже не помогает. А вот стоит отключить MLD snooping на коммутаторе, данные больше не ходят.
В общем чего, я прошу, блокируйте отправку пакетов похожих на пакеты мультикаст маршрутизаторов с портов отмеченных как mld_snooping mrouter_ports_forbidden .
P.S. Не смог DGS-3620 настроить для рассылки multicast listener query с адреса fe80::0, чтобы уж точно никто не мог выиграть выборы квериера в сегменте. При настройке IPv6 адреса на коммутаторе, автоматически создается link local из мас адреса и только он используется как mld источник. Тупик.