Multicast — модель доставки IP-пакетов группе получателей через одну передачу отправителя. Узел подписывается на multicast-группу (IGMP-запрос в IPv4, MLD в IPv6), и маршрутизаторы доставляют трафик только на те ветви сети, где есть подписчики. Это радикально снижает нагрузку на сеть при потоковой передаче данных нескольким получателям.
Как работает
IPv4 зарезервировал диапазон 224.0.0.0/4 для multicast-адресов. Подгруппы:
224.0.0.0/24— link-local (не маршрутизируются):224.0.0.1— все хосты,224.0.0.2— все маршрутизаторы,224.0.0.5/6— OSPF.224.0.1.0-238.255.255.255— глобальные multicast-адреса.239.0.0.0/8— locally scoped (аналог RFC 1918 для multicast).
Узел сообщает маршрутизатору о подписке через IGMP (Internet Group Management Protocol). Маршрутизаторы обмениваются информацией о multicast-группах через PIM (Protocol Independent Multicast) — чаще всего PIM-SM (Sparse Mode). Строится дерево распределения: отправитель → корень дерева → ветви → получатели. Трафик не дублируется: каждый канал несёт одну копию.
В корпоративных сетях multicast используется для видеоконференций, обновления ПО на множестве машин одновременно, финансовых тикеров (market data). В хостинговой инфраструктуре — для репликации данных между кластерными узлами (Corosync в HA-кластерах использует multicast 239.255.1.1) и VXLAN-туннелей.
История
IP Multicast предложил Стив Декринг в диссертации 1988 года и описал в RFC 1112 (1989). IGMP v1 появился там же. IGMP v2 (RFC 2236, 1997) добавил явный leave-механизм, IGMP v3 (RFC 3376, 2002) — подписку на конкретных отправителей (SSM, Source-Specific Multicast). Широкого распространения в публичном интернете multicast так и не достиг из-за сложности маршрутизации и сложностей с биллингом трафика — операторы отключили его в межоператорских стыках.
Multicast vs Unicast vs Broadcast
| Модель | Получателей | Копий пакета | Применение |
|---|---|---|---|
| Unicast | 1 | 1 | HTTP, SSH, большинство протоколов |
| Broadcast | Все в подсети | 1 (рассылка в L2) | ARP, DHCP, NetBIOS |
| Multicast | Группа подписчиков | 1 (репликация на маршрутизаторах) | IPTV, HA-кластеры, OSPF |
| Anycast | Ближайший узел | 1 | DNS root, CDN, BGP anycast |
На что обращать внимание
При настройке HA-кластера (Pacemaker/Corosync) убедитесь, что multicast разрешён в сети между узлами — некоторые облачные платформы и VLAN-конфигурации блокируют его. Альтернатива — unicast-транспорт Corosync. В публичных облаках (AWS, GCP) multicast недоступен; вместо него используют unicast-репликацию или проприетарные overlay-сети. Для Docker Swarm и Kubernetes multicast не нужен — они используют unicast gossip-протоколы.
Мультикаст в хостинге и облаках
В классических VLAN-сетях мультикаст работает через IGMP snooping: коммутатор отслеживает IGMP-запросы и рассылает трафик только на порты, которые его запросили. Без IGMP snooping мультикаст деградирует до broadcast — засоряя все порты VLAN. В публичных облаках (AWS, Yandex Cloud) мультикаст недоступен: используются unicast-протоколы (Unicast, PTP) вместо него. Решения для кластеризации БД (Galera Cluster, PostgreSQL Patroni) в облаке переходят на unicast-режим автообнаружения.