Multicast. IGMP. Конспект.

Мультикаст-рассылка — технология, позволяющая передавать одинаковый трафик группе хостов, тем самымм экономя пропускную способность канала. Например, в IPTv есть 3 потока для 100 хостов — канал СТС, ТНТ и МузТВ. Без мультикаст пришлось бы передавать каждому получателю отдельный поток трафика, что загрузило бы канал. С мультикаст мы передаем по одному уникальному потоку, в данном случае 3 потока.

Делиться на L3 Routing и L2 Multicast. На L3 работают PIM и ряд других (MOSPF, DVMRP…). На L2 работает IGMP.
PIM работает между маршрутизаторами.

Multicast

Каждому каналу присваивается свой IP из диапазона Multicast-адресов 224.0.0.0/4. Когда один их хостов запускает ПО для просмотра каналов, то это ПО начинает прослушивать какой-то из этих IP-адресов, например 239.1.1.10. Другие хосты, которые хотят смотреть тот же канал, например, СТС, также начинают прослушивать этот IP. Также данное ПО назначает виртуальный Multicast MAC-адрес на всех этих хостах, который генерируется из данного multicast-адреса. Они всегда начинаются на 01-00-5E-xx-xx-xx.

Когда хост запускает приложение (например, плеер), IGMP формирует сообщение маршрутизатору.
— Membership Query
— Membership Report
— Leave / Join

IGMP Join. Пример: Хост 1 запускает VLC Player и говорит, что он хочет прослушивать мультикаст-трафик, который вещается на 239.1.1.10. Далее на сетевую карточку вешается multicast-макадрес как secondary и высылается сообщение IGMP Join. Высылается оно на адрес группы.

Screenshot_2

На данный момент маршрутизатор знает, что за интерфейсом е0/0 находится клиенты, которые слушают мультикаст-трафик 239.1.1.10.

Membership Query Маршрутизатор высылает IGMP Query для 239.1.1.10 на 224.0.0.1. «Есть ли кто живой в сети, кто прослушивает этот адрес 239.1.1.10?» Если никто не отвечает, то маршрутизатор прекращает передавать трафик на интерфейс, за которым были клиенты 239.1.1.10.
Если же клиенты ответили есть, то они отвечают на query сообщением IGMP Report. Хосты не отвечают на Query одновременно, а делают это по истечении таймера, который разный на всех хостах. Если маршрутизатор получил хоть один Report, то он продолжает отсылать трафик. Остальные хосты не отсылают Report в таком случае, потому как незачем это делать. Они просто сбрасывают свои таймеры.

Screenshot_3

Leave. Выход хоста из группы Предположим, что на одном их хостов закрывают VLC Player, данный хост генерирует IGMP Leave и отсылает его на 224.0.0.1.
Получая такое сообщение, маршрутизатор высылает внутрь сети Query 239.1.1.10 чтобы узнать, есть ли активные клиенты. На хостах, которые получили этот Query, и какой-то хостс наименьшим таймером вышлет Report.

Screenshot_4

Мультикаст-адреса могут быть только как Destination. При пересылке от хоста во фрейме фигурирует его (хоста) реальный мак. Поэтому на свитче не будет мультикаст мак-адреса. Как же передаваьт трафик только заинтересованным хостам?
Для этого IGMP Snooping. Когда IGMP Snooping на включен коммутаторе, коммутатор просматривает IGMP Join сообщения и записывает данные в cam-таблицу fa0/0 -> multicast-мак-адрес. Когда маршрутизатор передает мультикаст, то оно будет передано только тем, кто заинтересован в этом трафике.

Screenshot_5

Есть аналоги IGMP — CGMP (Cisco Group Management Protocol) и RGMP (Router-port Group Management Protocol)

Если маршрутизатор не один, а несколько, то обработкой IGMP будет заниматься тот, у кого наименьший IP.

R7# ip multicast-routing //включаем глобальную поддержку Multicast
 R7# int e0/1.79
 R7# ip pim dense-mode //включаем PIM на интерфейсе в сторону хостов

Просмотр таблицы Multicast — show ip mroute
ip igmp access-group позволяет ограничивать с помощью access-list группы, к которым возможно подключаться.