Конфигурация сегмента:
[хосты] <=N:1=> [DGS-3200 для комнат] <=N:1=> [DGS-3200 отдела] <=1:1=> [корп.свитч] <=1:N=> [ещё хосты]
Конфигурация связана с конфигурацией нашего сайта (и распределением ответственности между нами и IT корпорации), поменять её не получится.
Сеть - лаборатория. Выделенного источника мультикаст трафика нет, любой хост может быть как источником, так и приёмником. Злоумышленнику (DoS) в сегменте делать нечего, возникающие ошибки использования быстро устраняются организационным путём.
"Корп.свитч" - это наша VLAN в корпоративной системе свитчей (Cisco), прямого контроля у нас над ней нет, как и гарантии, что наши запросы на изменения в ней будут сделаны точно и в срок. Multicast querier (IGMP v3) - там (unicast router тоже там, multicast routing пока отсутствует, но может появится со временем - тоже там).
IGMP snooping и filter_unregistered_groups на всех DGS включён. querier запрещён. Если разрешить querier он включается на одном из DGS, игнорируя querier корп.свитча, что приводит к невозможности подписки хостов, подключённых к DGS, на стримы с источников, подключённых к корп.свитчу.
Адресное пространство мультикаста - общее; диапазон мультикаст адресов распределён но источникам статически (организационно). Тем не менее, хочется технически локализовывать распространение мультикаст потоков (по умолчанию - весь сегмент, по нетмаске - в пределах свитча комнаты или свитча отдела), чтобы уменьшить нагрузку на корп.свитч. limited_multicast_group в этой конфигурации почему-то не работает:
Код:
create mcast_filter_profile profile_id 4 profile_name Test1Cast
config mcast_filter_profile profile_id 4 add 239.254.0.0 - 239.254.255.255
config limited_multicast_addr ports 9-16 add profile_id 4 access deny
- по-прежнему подписывает и шлёт пакеты на dynamic router port аплинка (например, 16). Если аплинк - DGS отдела, то этот трафик можно зарезать там на входе, через config access_profile, но это некрасиво и не работает, если нужно локализовать трафик в пределах отдела.
Вопрос: что могло быть сделано неправильно? Что могло было быть сделано лучше?
Ещё вопрос: в этой же конфигурации порт DGS корректно подписывается на мультикаст, когда он присоединяется к группе, но отписывается от него только через ~3 минуты после того, как он покидает группу. Вне зависимости от того, идёт ли мультикаст из соседнего порта (не детектируемого как роутер порт) или через аплинк с корп.свитча. Хост на порте посылает IGMP leave, querier посылает IGMP query раз в 1 минуту, на что хост на порте тоже корректно отвечает.
На всякий случай, со свитча отдела (остальные настроены так же):
Код:
Command: show igmp_snooping
IGMP Snooping Global State : Enabled
VLAN Name : default
Query Interval : 125
Max Response Time : 10
Robustness Value : 2
Last Member Query Interval : 1
Host Timeout : 260
Router Timeout : 260
Leave Timer : 2
Querier State : Disabled
Querier Router Behavior : Non-Querier
State : Enabled
Fast Leave : Enabled
Receive Query Count : 8689
Send Query Count : 0
Version : 3
Прошивки 1.11.B003 (на A1 версиях свитчей) и 1.11.B004 (на A2 версии), разницы в их поведении не наблюдается.