L2 Multicast. IGMP. Практика.

2021.09.07. Kurapov Alexey.

L2 Multicast. IGMP

IGMP — Internet Group Management Protocol это сетевой протокол взаимодействия клиентов multicast трафика и ближайшего к ним маршрутизатора Default Gateway.

IGMP используется клиентами и коммутаторами для соединения клиентов и локального маршрутизатора, осуществляющего multicast передачу. Далее между локальным и удаленным маршрутизаторами используется протокол Protocol Independent Multicast (PIM), с его помощью групповой трафик направляется от источника multicast трафика к многочисленным клиентам групповой передачи.

Рассмотрим топологию:



Первоначальная конфигурация минимальная:

               На Client_1:

               На Default Gateway:

               На клиенте Client_1 указываем какой multicast трафик хотим принимать, подписываемся на определенные multicast ip адреса (группы):

 

В Wireshark видим – Client_1 начинает высылать IGMP Report, часто называемые JOIN сообщениями:

 

 

На Default Gateway включаем multicast маршрутизацию и протокол PIM на интерфейсе в сторону клиента:

 

               Wireshark:

              

 

Как видим шлюз отправляет сообщения:

1.      На multicast адрес 224.0.1.40 – проприетарный протокол Cisco, рассмотрим позже, т.е. шлюз по умолчанию подписывается на группу 224.0.1.40,

2.      На multicast адрес 224.0.0.1 – все хосты с multicast обрабатывают эти пакеты.

               В сообщениях с ip dest 224.0.0.1 -  указан multicast адрес 0.0.0.0, т.е. роутер спрашивает, есть хоть кто-то заинтересованный в любом multicast трафике, клиент отвечает сообщениями Report:

Client_1 заинтересован в multicast трафике на группы 239.1.1.1 и 239.2.2.2.

 

               Таблица маршрутизации multicast трафика на роутере:

 

 

               Есть подписчики на трафик с ip dest 239.1.1.1 и 239.2.2.2 и они находятся за интерфейсом gi0/0. При получении шлюзом пакета с ip dest 239.1.1.1 или 239.2.2.2, он отправит его через интерфейсы, указанные в OIL Outgoing interface list – куда передаются пакеты.

               Incoming interface – откуда ожидаются пакеты, сейчас –Null, ни откуда.

               * - source ip – любой ip, в IGMP v2, в IGMP v3source ip указывается обязательно, например, в IP ТВ приставки зашиты ip адреса серверов.

               Роутер отправляет Query general, чтобы узнать есть ли активные клиенты, если ответа не будет, шлюз перестанет пересылать multicast трафик на интерфейсы, указанные в OIL, это требуется в случае некорректного отключения клиентов.

 

 Как видно в нашем случае клиент отвечает сообщениями Report  (JOIN):

 

 

Эмулируем корректное отключение клиента:

Смотрим Wireshark:

 

1.   От клиента приходят Leave сообщения на 224.0.0.2 – все роутеры.

Leave messages означают – клиент больше не заинтересован в получении multicast трафика с ip destination 239.2.2.2 и 239.1.1.1. 

2. Роутер высылает Query specific для 239.2.2.2 и 239.1.1.1 – возможно есть еще активные клиенты. Если нет ответа, то интерфейсы удаляются из OIL. Удаляются в течении Max Resp Time



Рассмотрим еще раз кратко как работает IGMP:


    1. Нет активных клиентов, шлюз с включенной multicast маршрутизацией отправляет на интерфейсы с включенным PIM протоколом сообщения General Query с ip dest 224.0.0.1 - все устройства, заинтересованные в любом multicast трафике.
    2. На клиенте настраиваем join group и клиент отправляет сообщения Report (JOIN) для настроенных групп.
    3. Периодически шлюз высылает сообщения Query general, клиент отвечает сообщениями Report (JOIN.)
    4. Клиент отключается от multicast рассылки - отправляет сообщения Leave на ip dest 224.0.02 - все маршрутизаторы, участвующие в multicast рассылке. Роутер отправляет Specific Query для определенных multicast групп на случай наличия активных клиентов за данным интерфейсом. 
Пакеты 331 и 339 отправляет коммутатор:


    5. Аналогично пункту 1, нет активных клиентов, шлюз с включенной multicast маршрутизацией отправляет на интерфейсы с включенным PIM протоколом сообщения General Query с ip dest 224.0.0.1 - все устройства, заинтересованные в любом multicast трафике.

    В следующей статье рассмотрим случай, когда имеется несколько клиентов, а также как работает IGMP Snooping на коммутаторах.

 

 

Комментарии

Популярные сообщения из этого блога