# Мультикастовые 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](https://github.com/eucariot/SDSM/tree/7b345502febe9fd2568a2f2a3ba95b9749b5840f/habrastorage.org/files/1a7/99c/58e/1a799c58e33f4ddfaf61d7ee6a413fae.gif)](http://img-fotki.yandex.ru/get/9497/83739833.38/0_da344_9d589e31_XXL.png)

Фактически это означает, что в один мультикастовый 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.

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

![Дамп мультикаста](http://img-fotki.yandex.ru/get/9169/83739833.38/0_da343_9ffb645a_XXL.png)

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

Есть также другие мультикастовые MAC-адреса, которые никак не относятся к IPv4-мультикаст ([клик](https://en.wikipedia.org/wiki/Multicast_address#Ethernet)). Все они, кстати, характеризуются тем, что последний бит первого октета равен 1.

Естественно, ни на одной сетевой карте, не может быть настроен такой MAC-адрес, поэтому он никогда не будет в поле Source MAC Ethernet-кадра и никогда не попадёт в таблицу MAC-адресов. Значит такие кадры должны рассылаться как любой [Unknown Unicast](http://lookmeup.linkmeup.ru/#term430) во все порты VLAN'а.

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