Что такое IGMP snooping в роутере

Что такое и зачем нужна функция IGMP snooping

Для начала дадим определение IGMP, чтобы понять принцип работы технологии. Internet Group Management Protocol – протокол управления сетью мультивещания, который организует несколько устройств в группы. Он основан на протоколе IP и применяется в интернете повсеместно, эффективно используя ресурсы сети.

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

Таким образом snooping исключает передачу пользователю ненужных данных через multicast каналы

Это делает обмен данными на канальном уровне сети более эффективным и учитывает потребности сетевого уровня, что в особенности важно для поставщиков информации. Пользователи также получат оптимизированный контент, хотя в итоге нагрузка на сеть возрастёт. Без отслеживания и анализа данных, конечные потребители в виде конкретных IP-адресов, будут вынуждены «переваривать» дополнительную бесполезную для них информацию

IGMP snooping не только избавит пользователей от лишнего трафика, но и сделает обмен информацией более безопасным. Включенный режим отслеживания вовремя пресечёт попытки DDoS-атаки на сеть или конкретные адреса, к которым уязвим протокол Internet Group Management

Без отслеживания и анализа данных, конечные потребители в виде конкретных IP-адресов, будут вынуждены «переваривать» дополнительную бесполезную для них информацию. IGMP snooping не только избавит пользователей от лишнего трафика, но и сделает обмен информацией более безопасным. Включенный режим отслеживания вовремя пресечёт попытки DDoS-атаки на сеть или конкретные адреса, к которым уязвим протокол Internet Group Management.

Реализация

А теперь встаём следующая проблема – как это организовать. Представьте себе, что в сети у провайдера очень много узлов, коммутаторов, маршутизаторов, серверов и есть центральный сервер того же IPTV. Задача сервера отправить трафик таким образом, чтобы он максимально быстро через минимальное количество узлов дошёл до пользователя.

При этом нужно это сделать так, чтобы не образовалось кольцо – когда трафик начинает ходить по кругу и бесконечно. Поэтому путь пакетов будет выглядеть как дерево, да и топология будет использоваться подобная. То есть выходя пакет от сервера он подходит к одному из узлов. Дальше узел должен определить куда дальше отправлять пакет.

А теперь мы подобрались к протоколу IGMP (Internet Group Management Protocol) — это такой протокол, который позволяет быстро подключаться клиенту к ближайшему маршрутизатору. Он сообщает ему, что нужен трафик по тому или иному каналу. Если же запроса к маршрутизатору нет, то он просто простаивает и тем самым высвобождает ресурсы сети.

Также используется PIM (Protocol Independent Multicast) протокол – эта такая система, которая выстраивает адрес от сервера к конечному получателю через одну ветвь дерева. При этом система постоянно мониторит путь, чтобы менять его, если какой-то сегмент выключен или был перемещён.

Проще говоря, сервер транслирует только один сигнал каждого телевизионного канала. И пользователи получают только сигнал того канала, который запросили. Одновременно один сигнал могут получать и несколько приёмников. Именно для этого и нужен протокол IGMP.

Выбор RP

ip pim rp-address X.X.X.Xshow ip pim rpКлиент 2Bootstrapshow ip mrouteC-RP

BSR — BootStrap RouterC-BSR

BootStrap Message (BSM)Candidte-RP-Advertisementgroup-to-RP mappingRP-Setсамостоятельно

Завершая главу PIM SM, давайте ещё раз отметим важнейшие моменты

  1. Должна быть обеспечена обычная юникастовая связность с помощью IGP или статических маршрутов. Это лежит в основе алгоритма RPF.
  2. Дерево строится только после появления клиента. Именно клиент инициирует построение дерева. Нет клиента — нет дерева.
  3. RPF помогает избежать петель.
  4. Все маршрутизаторы должны знать о том, кто является RP — только с её помощью можно построить дерево.
  5. Точка RP может быть указана статически, а может выбираться автоматически с помощью протокола BootStrap.
  6. В первой фазе строится RPT — дерево от клиентов до RP — и Source Tree — дерево от источника до RP. Во второй фазе происходит переключение с построенного RPT на SPT — кратчайший путь от получателя до источника.

MDT — Multicast Distribution TreeSPT — Shortest Path Tree(S, G)Source TreeRPT — Rendezvous Point Tree(*, G)Shared TreeHelloJoin (*, G)Join (S, G)Prune (*, G)Prune (S, G)RegisterRegister-StopBootstrapAssertCandidate-RP-AdvertisementRP-Reachable*Есть и другие типы сообщений в PIM, но это уже детали*

(Optional) Configuring a Static Router Port

Context

A router port is located on a Layer 2 device and connects to an upstream Layer 3 device (a multicast router or Layer 3 switch). When IGMP snooping is enabled in a VLAN, all interfaces in this VLAN learn forwarding entries from multicast
protocol packets. When an interface receives IGMP Query messages or Protocol Independent Multicast (PIM) Hello messages, the Layer 2 device sets this interface as a dynamic router port. A router port provides the following functions:

  • Receives multicast data from the upstream device.
  • Forwards IGMP Report/Leave messages. IGMP Report/Leave messages received in a VLAN are forwarded only to router ports in the VLAN.

A dynamic router port has an aging time. If a dynamic router port does not receive an IGMP Query or a PIM Hello message before the aging time expires, the device deletes the port from the router port list. To enable an interface to forward
IGMP Report/Leave messages to the upstream querier for a long time, configure the interface as a static router port.

On a ring network running IGMP snooping, if the downstream port of a device is configured
as a static router port, downstream ports of all devices on the ring network must be configured as static router ports. Otherwise, multicast traffic cannot be forwarded normally if the Layer 2 network topology changes. Therefore, it is not recommended
to configure downstream ports as static router ports.

Procedure

  1. Run system-view

    The system view is displayed.

  2. (Optional) Run vlan vlan-id

    The VLAN view is displayed.

  3. (Optional) Run undo igmp-snooping router-learning

    Dynamic router port learning is disabled.

    By default,
    dynamic router port learning is enabled in a VLAN.

    You can also disable router port learning by running the undo igmp-snooping router-learning vlan { { vlan-id1 [ to vlan-id2 ] } &<1–10> | all } command in the interface view.

  4. (Optional) Run quit

    Exit from the VLAN view.

  5. Run interface interface-type interface-number

    The interface view is displayed.

  6. Run igmp-snooping static-router-port vlan { vlan-id1 [ to vlan-id2 ] } &<1-10>

    The interface is configured as a static router port.

2800/2850/3450/3470/3750(T)/4610/8200/8250/8300/8370

QSW(config)#vlan 901   – создание влана

QSW(config-vlan901)# multicast-vlan – указание что влан является мультикастовым

QSW(config)#multicast-vlan group 224.2.2.0 254 – список разрешенных мультикаст-групп

QSW(config)#Interface Ethernet1/1-24

QSW(config-if-port-range)#switchport association multicast-vlan 901 – организация связки клиентского и мультикастового (901) вланов 

QSW(config-if-port-range)#igmp snooping drop query – отбрасывать квери сообщения со стороны абонентов

QSW(config-if-ethernet1/25)#Interface Ethernet1/25

QSW(config-if-ethernet1/25)#igmp snooping drop report – отбрасывать репорт сообщения со стороны аплинка

QSW(config)#ip igmp snooping – глобальное включение igmp-snooping

QSW(config)#ip igmp snooping vlan 901 – указание в каком влане будет работать igmp-snooping

QSW(config)#ip igmp snooping vlan 901 mrouter-port interface Ethernet1/25  – указание порта, через который на коммутатор приходит мультикаст

Настройка Querier

QSW(config)#ip igmp snooping vlan 1 l2-general-querier – включение querier

QSW(config)#ip igmp snooping vlan 1 l2-general-querier-source 10.10.254.37  – ip-адрес querier 

QSW(config)#ip igmp snooping vlan 1 l2-general-querier-version 2  – выбор версии IGMP

3300, 3310, 3750, 8200RQ

Настройка IGMP Snooping

(QSW)(Config)#set igmp – включение IGMP Snooping(QSW)(Config)#set igmp vlan 777 – выбор влана(QSW)(Config)#set igmp fast-leave 777 – включение IGMP Snooping Fast Leave во влане(QSW)(Config)#set igmp report-suppression 777 – подавление пакетов Report(QSW)(Config)#set igmp report-suppression source-address 10.10.254.33 – source IP-адрес для отправки IGMP Report (QSW)(Config)#interface 1/0/24(QSW)(Interface 1/0/24)#igmp snooping mrouter-port – настройка mrouter порта

Настройка Querier

(QSW)(Config)#set igmp querier – включение querier(QSW)(Config)#set igmp querier vlan 777 – выбор влана для querier(QSW)(Config)#set igmp querier address 10.10.254.33 – ip-адрес querier (QSW)(Config)#set igmp querier version 2 – выбор версии IGMP

Настройка ограничения мультикаст групп при помощи аксесс-листа

(QSW)(Config)#access-list 6000 permit any 224.1.1.1 0.0.0.255 – разрешенный диапазон (QSW)(Config)#access-list 6000 deny every – запрет для всех остальных групп(QSW)(Config)#interface 1/0/1(QSW)(Interface 1/0/1)#ip access-group 6000 in – применения аксесс-листа на клиентском интерфейсе

Все остальные настройки можно посмотреть в мануалах, если появятся дополнительные вопросы необходимо обратится в техническую поддержку через систему Helpdesk.

Мультикастовые MAC-адреса

Так какие же MAC-адреса получателей подставляются в заголовок Ethernet таких пакетов? Широковещательные? Нет. Существует специальный диапазон MAC-адресов, в которые отображаются мультикастовые IP-адреса.

Эти специальные адреса начинаются так: 0x01005e и следующий 25-й бит должен быть 0 (попробуйте ответить, почему так). Остальные 23 бита (напомню, всего их в МАС-адресе 48) переносятся из IP-адреса.

Здесь кроется некоторая не очень серьёзная, но проблема. Диапазон мультикастовых адресов определяется маской 224.0.0.0/4, это означает, что первые 4 бита зарезервированы: 1110, а оставшиеся 28 бит могут меняться. То есть у нас 2^28 мультикастовых IP-адресов и только 2^23 MAC-адресов — для отображения 1 в 1 не хватает 5 бит. Поэтому берутся просто последние 23 бита IP-адреса и один в один переносятся в MAC-адрес, остальные 5 отбрасываются.

Multicast MAC Address

Фактически это означает, что в один мультикастовый MAC-адрес будет отображаться 2^5=32 IP-адреса. Например, группы 224.0.0.1, 224.128.0.1, 225.0.0.1 и так до 239.128.0.1 все будут отображаться в один MAC-адрес 0100:5e00:0001.

Если взять в пример дамп потокового видео, то можно увидеть:

Дамп мультикаста

IP адрес — 224.2.2.4, MAC-адрес: 01:00:5E:02:02:04.

Есть также другие мультикастовые MAC-адреса, которые никак не относятся к IPv4-мультикаст (). Все они, кстати, характеризуются тем, что последний бит первого октета равен 1.

Естественно, ни на одной сетевой карте, не может быть настроен такой MAC-адрес, поэтому он никогда не будет в поле Source MAC Ethernet-кадра и никогда не попадёт в таблицу MAC-адресов. Значит такие кадры должны рассылаться как любой Unknown Unicast во все порты VLAN’а.

Всего, что мы рассматривали прежде, вполне достаточно для полноценной передачи любого мультикастового трафика от потокового видео до биржевых котировок. Но неужели мы в своём почти совершенном мире будем мирится с таким безобразием, как широковещательная передача того, что можно было бы передать избранным?

Вовсе нет. Специально для перфекционистов придуман механизм IGMP Snooping.

Concepts

As shown in , Router (Layer 3 device)
receives multicast data from the multicast source and forwards the
data to downstream devices. IGMP snooping is configured on SwitchA
and SwitchB. HostA, HostB, and HostC are receiver hosts.

Figure 10-3  IGMP snooping ports

shows IGMP snooping ports. The following table describes these ports.

Table 10-1  IGMP snooping ports

Port Role

Function

Generation

Router port

Ports marked as blue points on SwitchA
and SwitchB.

NOTE:

A router port is a port on a
Layer 2 multicast device and connects to an upstream multicast router.
“Router port” mentioned in this document does not refer to a port
on a router.

A router port receives multicast packets from a Layer 3
multicast device such as a designated router (DR) or IGMP querier.

  • A dynamic router port is generated by IGMP snooping. A port
    becomes a dynamic router port when it receives an IGMP General Query
    message or PIM Hello message with any source address except 0.0.0.0.
    The PIM Hello messages are sent from the PIM port on a Layer 3 multicast
    device to discover and maintain neighbor relationships.

  • A static router port is manually configured.

Member port

Ports marked as yellow points on SwitchA
and SwitchB.

A member port is a user-side port connecting to group members.
A Layer 2 multicast device sends multicast data to the receiver hosts
through member ports.

  • A dynamic member port is generated by IGMP snooping. A Layer
    2 multicast device sets a port as a dynamic member port when the port
    receives an IGMP Report message.

  • A static member port is manually configured.

A router port and a member port are outbound interfaces
in Layer 2 multicast forwarding entries. A router port functions as
an upstream interface, while a member port functions as a downstream
interface. Port information learned through protocol packets is saved
as dynamic entries, and port information manually configured is saved
as static entries.

BIDIR PIM

Many-to-ManyПонятное дело, что инертный PIM SSM здесь совсем не подходит?Bidirectional PIM, BIDIR PIMИсточник1Источником2Источник1Источник2каждыйПолучательDF — Designated Forwarder

Если запрос PIM Join/Leave приходит на тот интерфейс, который в данном сегменте является DF, он передаётся в сторону RP по стандартным правилам.
Вот, например, R3. Если запросы пришли в DF интерфейсы, что помечены красным кругом, он их передаёт на RP (через R1 или R2, в зависимости от таблицы маршрутизации).

Если запрос PIM Join/Leave пришёл на не DF интерфейс, он будет проигнорирован.
Допустим, что клиент, находящийся между R1 и R3, решил подключиться и отправил IGMP Report. R1 получает его через интерфейс, где он выбран DF (помечен красным кругом), и мы возвращаемся к предыдущему сценарию. А R3 получает запрос на интерфейс, который не является DF. R3 видит, что тут он не лучший, и игнорирует запрос.

Если мультикастовый трафик пришёл на DF интерфейс, он будет отправлен в интерфейсы из списка OIL и в сторону RP.
Например, Источник1 начал передавать трафик

R4 получает его в свой DF интерфейс и передаёт его и в другой DF-интерфейс — в сторону клиента и в сторону RP, — это важно, потому что трафик должен попасть на RP и распространиться по всем получателям. Также поступает и R3 — одна копия в интерфейсы из списка OIL — то есть на R5, где он будет отброшен из-за проверки RPF, и другая — в сторону RP

Если мультикастовый трафик пришёл на не DF интерфейс, он должен быть отправлен в интерфейсы из списка OIL, но не будет отправлен в сторону RP.
К примеру, Источник2 начал вещать, трафик дошёл до RP и начал распространяться вниз по RPT. R3 получает трафик от R1, и он не передаст его на R2 — только вниз на R4 и на R5.

IGMP Snooping Proxy

У пытливого читателя может возникнуть вопрос по тому, как IGMP Snooping узнаёт все клиентские порты, учитывая, что на IGMP Query отвечает только один самый быстрый клиент, как мы говорили выше. А очень просто: IGMP Snooping не позволяет сообщениям Report ходить между клиентами. Они отправляются только в восходящие порты к маршрутизаторам. Не видя Report от других получателей этой группы, клиент обязан ответить на Query в течение Max Response Time, указанном в этом Query.

В итоге в сети на 1000 узлов на один IGMP Query в течение секунд 10 (обычное значение Max Response Time) придёт 1000 Report’ов маршрутизатору. Хотя ему достаточно было бы и одного для каждой группы.

И происходит это каждую минуту.

В этом случае можно настроить проксирование IGMP-запросов. Тогда коммутатор не просто «слушает» проходящие пакеты, он их перехватывает.

Правила работы IGMP Snooping могут отличаться для разных производителей. Поэтому рассмотрим их концептуально:

  1. Если на коммутатор приходит самый первый запрос Report на группу, он отправляется вверх к маршрутизатору, а интерфейс вносится в список нисходящих. Если же такая группа уже есть, интерфейс просто добавляется в список нисходящих, а Report уничтожается.
  2. Если на коммутатор приходит самый последний Leave, то есть других клиентов нет, этот Leave будет отправлен на маршрутизатор, а интерфейс удаляется из списка нисходящих. В противном случае просто удаляется интерфейс, Leave уничтожается.
  3. Если IGMP Query приходит от маршрутизатора, коммутатор перехватывает его, отправляет в ответ IGMP Report для всех групп, которые в данный момент имеют получателей.
    А дальше, в зависимости от настроек и производителя, либо этот же самый Query рассылается во все клиентские порты, либо коммутатор блокирует запрос от маршрутизатора и сам выступает в роли Querier, периодически опрашивая всех получателей.

Таким образом снижается и доля лишнего служебного трафика в сети и нагрузка на маршрутизатор.

Multicast Routing Overview

IP Multicast is a technology that allows one-to-many and many-to-many distribution of data on the Internet. Senders send their data to a multicast IP destination address, and receives express an interest in receiving traffic destined for such an address. The network then figures out how to get the data from senders to receivers.

If both the sender and receiver for a multicast group are on the same local broadcast subnet, then the routers do not need to be involved in the process, and communication can take place directly. If, however, the sender and receiver are on different subnets, then a multicast routing protocol needs to be involved in setting up multicast forwarding state on the tree between the sender and the receivers.

MikroTik supports PIM-SM multicast routing protocol. PIM means «platform independent multicast» — i.e. this protocol is not tied to any particular unicast routing IGP. SM means «sparse-mode»; as opposed to dense-mode, in sparse-mode protocols explicit control messages are used to ensure that traffic is only delivered to the subnets where there are receivers that requested to receive it.

In addition to the routing protocols used to set up forwarding state between subnets, a way is needed for the routers to discover that there are local receivers on a directly attached subnet. For IPv4 this role is served by the Internet Group Management Protocol (IGMP).

Service Models: ASM vs SSM

There are two different models for IP multicast:

  • Any Source Multicast (ASM), in which a receiver joins a multicast group, and receives traffic from any senders that send to that group.
  • Source-Specific Multicast (SSM), in which a receiver explicitly joins to a (source, group) pairing.

Multicast Addressing

For IPv4, multicast addresses are in the range 224.0.0.0 to 239.255.255.255 inclusive.
Addresses within 232.0.0.0/8 are reserved for SSM usage.
Addresses in 239.0.0.0/8 are ASM addresses defined for varying sizes of limited scope.
Addresses within 224.0.0.0/24 are considered link-local and are not forwarded between subnets. Mostly these addresses are used by applications that do not require communication to other networks. Here are some assigned hostgroup addresses by the internet assigned numbers authority (IANA):

  • 224.0.0.1 — All systems on the subnet
  • 224.0.0.2 — All routers on the subnet
  • 224.0.0.9 — For RIPv2
  • 224.0.0.14 — For VRRP
  • 224.0.1.1 — Network time protocol (NTP)

The internet assigned numbers authority (IANA) allocates ethernet addresses from 01:00:5E:00:00:00 through 01:00:5E:7F:FF:FF for multicasting, therefore leaving only 23 bits available for the multicast group ID.

Пример II

IGMP

IGMP — Internet Group Management Protocol1.IGMP Membership Report2.(*, 224.2.2.4)(172.16.0.5, 224.2.2.4)OIL — Outbound Interface Listshow ip mroute3.IGMP Query*Дамп отфильтрован по IGMP*General Query*Дамп отфильтрован по IGMP*4.IGMP LeaveGroup Specific Queryтолько*Дамп отфильтрован по IGMP*

И ещё раз

IGMPIGMP ReportIGMP General QueryIGMP Group Sepcific QueryIGMP LeaveQuerier

PIM

PIM — Protocol Independent MulticastCBT version 2 is not, and was not, intended to be backwards compatible with version 1; we do not expect this to cause extensive compatibility problems because we do not believe CBT is at all widely deployed at this stage.

  • PIM Dense Mode (DM)
  • PIM Sparse Mode (SM)

MLD Snooping

Используемые сетевые элементы

Сеть многоадресной рассылки IPv6 состоит из следующих сетевых элементов:

  • Источник многоадресной рассылки

    Устройство, которое отправляет многоадресные данные на хосты-получатели. Например, видеосервер является источником многоадресной рассылки.

  • Устройство независимой от протокола многоадресной рассылки IPv6 (PIM)

    Устройство, которое использует протокол PIM IPv6 для генерации и ведения записей многоадресной маршрутизации и пересылки многоадресных данных на основе записей многоадресной маршрутизации. В сети многоадресной рассылки IPv6 все устройства уровня 3 должны запускать IPv6 PIM; в противном случае пути многоадресной передачи не могут быть установлены

  • MLD querier

    Устройство, которое обменивается сообщениями MLD с хостами-получателями для создания и обслуживания группового членства. В сети многоадресной рассылки на устройствах уровня 3, подключенных к сетевым сегментам получателей, должен работать протокол MLD или должны быть настроены статические группы MLD. В противном случае вышестоящие PIM-устройства не смогут распознать группы многоадресной рассылки, к которым пользователи хотят присоединиться и, следовательно, не смогут устанавливать
    тракты многоадресной передачи.

  • Устройство MLD snooping

    Устройство, которое прослушивает IGMP-сообщения, которыми обмениваются вышестоящие устройства многоадресной рассылки уровня 3 и хосты-получатели для создания и ведения записей многоадресной рассылки уровня 2, которые используются для точной пересылки многоадресных данных в сети уровня 2. Чтобы предотвратить широковещательную рассылку многоадресных пакетов в сети уровня 2 и сохранить полосу пропускания сети, рекомендуется настроить MLD snooping на устройствах уровня
    2.

  • Получатель

    Пользователь многоадресной рассылки, который принимает многоадресные данные. Получателем может быть ПК, телевизионная приставка или любое устройство с установленным клиентом многоадресной рассылки.

В главе «Конфигурирование MLD Snooping» описано, как настроить MLD Snooping на устройстве уровня 2.

Поддержка версий

Табл. 7-11  Продукты и версии, поддерживающие MLD Snooping

ПродуктМодель продуктаВерсия ПО

S12700

S12708 и S12712

V200R005C00, V200R006C00, V200R007C00, V200R007C20, V200R008C00, V200R009C00, V200R010C00, V200R011C10, V200R012C00

S12710

V200R010C00, V200R011C10, V200R012C00

S12704

V200R008C00, V200R009C00, V200R010C00, V200R011C10, V200R012C00

ПРИМЕЧАНИЕ: Подробная информация о сопоставлениях программного обеспечения см. Hardware Query Tool.

Характеристики зависимости и ограничения

  • Все конфигурирования MLD Snooping на интерфейсах, упомянутых в этой главе, выполняются на физических интерфейсах уровня 2, включая интерфейсы Eth-Trunk.
  • Если во VLAN требуются услуги многоадресной передачи уровня 2 и уровня 3, сначала включите MLD и PIM (IPv6) на соответствующем интерфейсе VLANIF, а затем включите MLD Snooping в VLAN. Если MLD Snooping впервые включен в VLAN, MLD и PIM (IPv6) не могут быть включены на интерфейсе VLANIF.
  • Если на расширенный ACL ссылаются в политике MLD Snooping, правила в ACL могут указывать только IP-адреса источника или пункта назначения. Если расширенный ACL содержит правило, которое указывает тип протокола или номер порта протокола, политика отслеживания MLD не вступает в силу.

Соображения по конфигурациям IGMP Snooping

Основные функции IGMP Snooping позволяют устройству создавать и поддерживать таблицу многоадресной пересылки уровня 2 и осуществлять многоадресную передачу данных по требованию на канальном уровне. Перед настройкой функций IGMP Snooping вы должны рассмотреть следующие элементы.

IGMP Snooping Querier

Для включения IGMP Snooping, многоадресный маршрутизатор должен быть развернут в топологии сети для генерации запросов IGMP. Без запроса отчеты о членстве в IGMP и таблицы членства в группах не могут регулярно извлекаться и обновляться, что приводит к нестабильной работе IGMP Snooping. Когда IGMP Snooping Querier настроен, он отправляет запросы IGMP через определенный интервал времени, чтобы генерировать сообщения отчетов IGMP от сетевого коммутатора с многоадресным членством. И IGMP Snooping прослушивает эти отчеты IGMP для установления соответствующей переадресации.

IGMP Snooping Proxy

IGMP Snooping proxy – расширенная функция. При включении коммутатора IGMP Snooping начинает работать так же, как и IGMP Snooping, а затем, когда коммутатор получает запрос IGMP от маршрутизатора, он незамедлительно отвечает в соответствии со своим состоянием. Если этот параметр отключен, запросы IGMP в VLAN и отчеты с узлов затопляются. Таким образом, прокси-сервер IGMP Snooping предотвращает внезапный всплеск трафика отчетов IGMP в ответ на запросы и уменьшает количество запросов IGMP, необходимых для обработки. Однако задержка вводится при распространении состояния IGMP через VLAN.

Версия IGMP Snooping

IGMP имеет три версии протокола: V1, V2 и V3. Соответственно, вы можете выбрать версию IGMP Snooping на устройстве уровня 2 для обработки сообщений IGMP в разных версиях. Обычно IGMPv1 идентифицирует запрашиваемый маршрутизатор на основе протокола многоадресной маршрутизации. IGMPv2 добавляет возможность групповых запросов, позволяя запрашивающему отправлять сообщения хостам в многоадресной группе. IGMPv3 приносит больше улучшений для поддержки фильтрации определенных источников

IGMP snooping with L3 aware ASICs

To fix this issue, we need switches with special ASICs that are able to look into the frame and differentiate between IGMP and non-IGMP multicast traffic. Here’s what that would look like:

Above you can see the changes that were made to the CAM table:

  • The first entry tells the switch to forward all IGMP traffic with destination 0100.5exx.xxx to the internal interface. This allows the CPU to look at the different IGMP messages.
  • The second entry tells the switch to forward all non-IGMP traffic with destination 0100.5e01.0101 (group 239.1.1.1) to interface Gi0/1 and Gi0/4.

The switch will now intercept all IGMP messages, they are only sent to the internal interface which puts our switch in total control of all IGMP traffic.

IGMP Group Leave

Let’s continue the story, let’s say that H1 and H2 are listening to multicast group 239.1.1.1. Suddenly, H1 is no longer interested so it will send a leave group message:

Leave group messages are always sent to multicast group 224.0.0.2 using destination MAC address 0100.5e00.0002. When the switch receives the IGMP leave, it will forward it on the internal interface to the CPU.

In response, the switch will send an IGMP general query on the interface that connects to H1:

The IGMP general query is only sent on the Gi0/1 interface and we do this to check if there are any other hosts that are interested in multicast group 239.1.1.1 on this interface. There are two possible outcomes:

  • If another host was connected to the Gi0/1 interface which was still interested in receiving traffic for 239.1.1.1 then the switch would just get rid of the group leave message, nothing will change.
  • When the switch doesn’t receive a membership report then the CPU will remove the Gi0/1 interface from the CAM table. Since we still have a second listener (H2), the switch will not forward the leave group message to the router.

Here’s what the CAM table looks like now:

Above you can see that interface Gi0/1 has been removed from the CAM table. No messages have been forwarded to the router.

A few minutes later, H2 decides that it also wants to leave multicast group 239.1.1.1 so it will send an IGMP leave group message:

Above you can see the switch receives the IGMP leave group from H2 which is forwarded to the CPU. Here’s what happens next:

Поделитесь в социальных сетях:FacebookTwitterВКонтакте
Напишите комментарий