IGMP Snooping - процесс отслеживания сетевого трафика IGMP, который позволяет сетевым устройствам канального уровня (коммутаторам) отслеживать IGMP-сообщения между потребителями и поставщиками многоадресного (multicast) IP-трафика.
Коммутатор слушает проходящие через него IGMP-пакеты и создает таблицу портов источников и портов получателей. Если в порт пришел IGMP Report - порт добавляется в таблицу получателей, если IGMP Query - в таблицу источников. Соответственно, multicast-поток, пришедший на коммутатор будет доставлен только тем клиентам, которые запрашивают данный поток.
Рассмотрим настройку технологии IGMP-Snooping на коммутаторах SNR.
IGMP Snooping может быть включен в одной или нескольких VLAN следующими командами:
ip igmp snooping ip igmp snooping vlan <> |
В момент включения IGMP Snooping в данной VLAN входящий multicast-трафик будет остановлен! |
Далее рекомендуется статически указать коммутатору порт, который подключен к маршрутизатору multicast-потока:
ip igmp snooping vlan <> mrouter-port interface <> |
В случае, если mrouter-port не указать статически - он будет выбран динамически при получении IGMP Query либо PIM Hello пакетов. |
По умолчанию для каждой VLAN установлено ограничение в 50 групп. Изменить ограничение можно с помощью команды:
ip igmp snooping vlan <> limit group <> |
Также по умолчанию на коммутаторе включен IGMP Snooping Proxy. Для IGMPv2 функционал может проксировать сообщения Join, Leave и отправлять Specific Query подписчику при получении Leave. Рассмотрим настройки данного функционала.
Указать Source IP-адрес у Specific Query пакетов (по-умолчанию 0.0.0.0):
ip igmp snooping vlan <> l2-general-querier-source <IP-address> |
Многие клиенты, игнорируя RFC, не отвечают на Specific Query с адресом источника 0.0.0.0, поэтому при использовании IGMP Snooping Proxy рекомендуется изменить данный IP-адрес! |
Указать Source IP-адрес у Report пакетов (по умолчанию Join проксироваться не будет):
ip igmp snooping vlan <> report source-address <IP-address> |
Для отключения IGMP Snooping Proxy можно воспользоваться следующей командой:
no ip igmp snooping proxy |
Если вы хотите, чтобы коммутатор был Querier-ом и рассылал IGMP General Query самостоятельно, необходимо применить:
ip igmp snooping vlan <> l2-general-querier |
По умолчанию при получении Leave от подписчика, коммутатор уменьшает таймер подписки для порта до 3 секунд и, в зависимости от наличия IGMP Snooping Proxy , отправляет Specific Query, либо передает Leave дальше. Есть возможность настроить функционал быстрого отключения клиентского порта от multicast-потока - коммутатор отключит порт от потока сразу после получения Leave:
ip igmp snooping vlan <> immediate-leave |
MVR – это технология подключения пользовательских VLAN к одной Multicast VLAN, которая позволяет серверу передавать multicast-поток в одной VLAN, в то время как конечные пользователи смогут получать его, находясь в различных VLAN. Пользователи подключаются к multicast-рассылке и отключаются от нее, отправляя сообщения IGMP Join/Leave на порт вещания. Это позволяет не передавать multicast-поток во все пользовательские VLAN и экономить ресурсы оборудования.
Настройку можно разделить на четыре основных части:
Для того чтобы глобально объявить VLAN как multicast необходимо применить:
vlan <> multicast-vlan |
Multicast VLAN на коммутаторе может быть только один! |
Связь c Multicast Vlan на порте коммутатора объявляется командой:
switchport association multicast-vlan <> |
Команда применяется в режиме конфигурации выбранного вами интерфейса. При этом интерфейс должен быть помещен в пользовательский VLAN в режиме Access.
В случае, если необходимо Multicast VLAN отдать тегированным, на некоторых моделях коммутаторов SNR присутствует команда:
switchport association multicast-vlan <> out-tag <> |
Для того, чтобы осуществить настройки Source/Destination Multicast Control необходимо воспользоваться следующими командами:
ip multicast destination-control ip multicast source-control |
В момент включения IP Multicast Source Control на коммутаторе входящий multicast-трафик будет остановлен! В случае если источник multicast-трафика не указан в ACL то все пакеты с этого источника будут отброшены коммутатором! |
Подробнее с настройкой IP Multicast Source/Destination Control можно ознакомиться в нашей статье.
Для корректной работы MVR рекомендуется включать ip multicast destination-control! |
Простой пример полной конфигурации:
! vlan 899 name multicast multicast-vlan ! multicast destination-control ! Interface Ethernet0/0/7 switchport access vlan 742 switchport association multicast-vlan 899 ! ip igmp snooping ip igmp snooping vlan 899 ip igmp snooping vlan 899 limit-group 1024 ip igmp snooping vlan 899 l2-general-querier-source 192.168.1.1 ip igmp snooping vlan 899 mrouter-port interface Ethernet0/0/45 ! |
В данном случае нам необходимо включить глобально MVR, затем прописать используемые нами multicast-группы, и, наконец, объявить на интерфейсах группы, которые разрешены для подписки на данном интерфейсе. Также, если необходимо, можно настроить технологию IGMP Snooping.
Для того, чтобы объявить глобально о включении MVR на нашем оборудовании, и прописать к Multicast VLAN необходимые для вещания multicast-группы необходимо воспользоваться следующими командами:
! mvc mvc group <IP-адрес> <count number> mvc vlan <vlan_id> ! |
После этого необходимо прописать какие группы будут доступны для подписки на интерфейсе и задать режим работы клиентских интерфейсов:
! mvc type receiver mvc vlan vlan_id group <IP-адрес> (list) ! |
Простой пример конфигурации:
! mvc vlan vlan_id group 224.0.1.15 ! С использованием ACL: ! ip access-list Multi permit ip 224.0.1.15 0.0.0.255 permit ip 224.0.1.28 0.0.0.255 ! mvc vlan vlan_id group list Multi ! |