Page tree
Skip to end of metadata
Go to start of metadata

IGMP Snooping

IGMP Snooping - процесс отслеживания сетевого трафика IGMP, который позволяет сетевым устройствам канального уровня (коммутаторам) отслеживать IGMP-сообщения между потребителями и поставщиками многоадресного (multicast) IP-трафика.

Коммутатор слушает проходящие через него IGMP-пакеты и создает таблицу портов источников и портов получателей. Если в порт пришел IGMP Report - порт добавляется в таблицу получателей, если IGMP Query - в таблицу источников. Соответственно, multicast-поток, пришедший на коммутатор будет доставлен только тем клиентам, которые запрашивают данный поток.

Рассмотрим настройку технологии IGMP-Snooping на коммутаторах SNR.

Настройка IGMP Snooping

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

MVR – это технология подключения пользовательских VLAN к одной Multicast VLAN, которая позволяет серверу передавать multicast-поток в одной VLAN, в то время как конечные пользователи смогут получать его, находясь в различных VLAN. Пользователи подключаются к multicast-рассылке и отключаются от нее, отправляя сообщения IGMP Join/Leave на порт вещания. Это позволяет не передавать multicast-поток во все пользовательские VLAN и экономить ресурсы оборудования.

Настройка MVR

S2960, S2962, S2965, S2982G, S2985G, S2990G, S2995G, S3850G, S2990X, S300X, S300G, S4550

Настройку можно разделить на четыре основных части:

  1. Глобальное объявление Multicast VLAN.
  2. Объявление связи с Multicast VLAN на порту.
  3. Настройка Source/Destination Multicast Control.
  4. Включение технологии IGMP Snooping, настройку которой мы рассмотрели в предыдущем разделе.

Для того чтобы глобально объявить 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 destination-control - глобально включает IP Multicast Destination Control на коммутаторе. После этого можно применять multicast ACL на интерфейсах и при включении технологии IGMP Snooping эти ACL будут применяться при регистрации multicast-групп;
  • ip multicast source-control - глобально включает IP Multicast Source Control на коммутаторе. После этого можно применять multicast ACL на интерфейсах.

Важно!

В момент включения 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
!
SNR-S2970G-24S, SNR-S2970G-48S

В данном случае нам необходимо включить глобально MVR, затем прописать используемые нами multicast-группы, и, наконец, объявить на интерфейсах группы, которые разрешены для подписки на данном интерфейсе. Также, если необходимо, можно настроить технологию IGMP Snooping.

Для того, чтобы объявить глобально о включении MVR на нашем оборудовании, и прописать к Multicast VLAN необходимые для вещания multicast-группы необходимо воспользоваться следующими командами:

!
mvc
mvc group <IP-адрес> <count number>
mvc vlan <vlan_id>
!
  • mvc - глобально включает режим MVR на оборудовании. По умолчанию режим MVR отключен;
  • mvc group <IP-адрес> <count number> - данная команда используется для осуществления прописки multicast-групп, существующих в нашей Multicast VLAN. Только объявленные под данной командой группы будут доступны для подписки на выбранных нами клиентских интерфейсах. Параметр <count number> может использоваться для объявления диапазона групп, идущих последовательно, одна за одной;
  • mvc vlan vlan_id - используется для объявления Multicast VLAN. По умолчанию номер Multicast VLAN - 4096. Только один Multicast VLAN может быть объявлен на оборудовании и может быть использован только для передачи мультикаст потока.

После этого необходимо прописать какие группы будут доступны для подписки на интерфейсе и задать режим работы клиентских интерфейсов:

!
mvc type receiver
mvc vlan vlan_id group <IP-адрес> (list)
!
  • mvc type receiver - данная команда включает режим, в котором через интерфейс будет передаваться multicast-поток. Без данной команды все настройки MVR на интерфейсе будут отменены;
  • mvc vlan vlan_id group <IP-адрес> (list) - данная команда предназначена для объявления multicast-групп, доступных для подписки на данном интерфейсе. В случае большого количества multicast-групп есть возможность воспользоваться параметром list. Данный параметр позволяет назначить не отдельную группу, а ACL на интерфейс, в котором прописаны все наши multicast-группы, что позволит снизить размер конфигурационного файла оборудования.

Простой пример конфигурации:

!
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
!