IP Multicast
Материал из Xgu.ru
Содержание |
[править] Multicast адреса
Диапазоны адресов:
Диапазон | Описание |
---|---|
224.0.0.0 - 224.0.0.255 | Local Network Control Block |
224.0.1.0 - 224.0.1.255 | Internetwork Control Block |
224.0.2.0 - 224.0.255.255 | Ad hoc Block |
224.1.0.0 - 224.1.255.255 | Не назначен |
224.2.0.0 - 224.2.255.255 | SDP/SAP Block |
224.3.0.0 - 231.255.255.255 | Не назначен |
232.0.0.0 - 232.255.255.255 | Source Specific Multicast Block |
233.0.0.0 - 233.255.255.255 | GLOP Block |
234.0.0.0 - 238.255.255.255 | Не назначен |
239.0.0.0 - 239.255.255.255 | Administratively Scoped Block |
Популярные зарезервированные адреса:
Адрес | Описание |
---|---|
224.0.0.0 | Base address (reserved) |
224.0.0.1 | The All Hosts multicast group that contains all systems on the same network segment |
224.0.0.2 | The All Routers multicast group that contains all routers on the same network segment |
224.0.0.5 | AllSPFRouters address. Используется для отправки Hello-сообщений всем OSPF-маршрутизаторам. |
224.0.0.6 | AllDRouters address. Используется для отправки OSPF-сообщений выделенным маршрутизаторам OSPF. |
224.0.0.9 | RIP версии 2 |
224.0.0.10 | EIGRP-маршрутизаторы |
224.0.0.18 | VRRP |
224.0.0.22 | IGMP версии 3 |
224.0.0.102 | HSRP версии 2 |
224.0.0.251 | Multicast DNS address |
Multicast адреса могут выдаваться [1]:
- Static
- Scope-relative -- старшие 256 адресов в каждом административном диапазоне адресов зарезервированы для relative assignments.
- Dynamic
[править] Передача multicast трафика на сетевом уровне
[править] IGMP
Сообщения IGMP инкапсулируются в IP-пакеты с номером протокола 2, поле TTL равно 1. Так как TTL равно 1, то маршрутизаторы не передают пакеты IGMP.
[править] Querier
Querier -- это маршрутизатор, который отвечает за отправку multicast трафика в сегмент. Querier становится маршрутизатор у которого меньше IP-адрес.
Эта роль выбирается с помощью IGMP, так как могут использоваться различные протоколы маршрутизации multicast трафика. Если используются разные протоколы на маршрутизаторах, которые передают трафик в одну сеть, то маршрутизаторы не смогут обнаружить друг друга.
[править] Версии протокола
В IGMP версии 2 было добавлено сообщение Leave Group, которое позволяет маршрутизатору быстрее обнаружить отсутствие членов группы.
В IGMP версии 3 добавлена возможность указания списка источников. Это позволяет хосту указывать с каких адресов он хочет получать пакеты, а с каких нет.
[править] IGMPv1
[править] Формат сообщений IGMPv1
| 8 | 8 | 8 | 8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |Version| Type | Unused | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Group Address | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Отличия сообщений IGMPv1 от IGMPv2:
- первый октет разбит на два поля Version и Type,
- второй октет, в котором указывается Maximum Response Time в IGMPv2, не используется. Его значение 0x00.
- в IP-заголовке не устанавливается опция IP Router Alert.
[править] IGMPv2
Маршрутизаторы, на которых включен IGMP, отправляют Query:
- General Query -- отправляется на адрес 224.0.0.1 (все системы в подсети).
- Group-Specific Query -- отправляется в ответ на полученное сообщение Leave от клиента, для того чтобы проверить есть ли ещё участники группы для которой было получено сообщение Leave. Так как сообщение может не дойти до участников группы и, как следствие, маршрутизатор перестанет передавать трафик в сеть, то отправляются два сообщения Group-Specific Query с интервалом 1 секунду.
[править] Формат сообщений IGMPv2
| 8 | 8 | 8 | 8 | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Maximum | Checksum | | | Response Time | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Group Address | | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
IGMPv2 использует одинаковый формат сообщения для всех своих сообщений. Сообщения IGMP инкапсулируются в IP, в IP-заголовке IGMP соответствует номер протокола 2.
Так как сообщения IGMP не должны выходить за пределы сети, в которой они были сгенерированы, то поле TTL всегда установлено равным 1.
Кроме того, выставляется опция IP Router Alert, которая информирует маршрутизатор о том, что ему необходимо "более подробно анализировать этот пакет".
Поля сообщения IGMPv2:
- Type — поле определяет тип сообщения, размер 8 бит. Типы сообщений в IGMPv2:
- Membership Query (значение поля = 0x11) — используется маршрутизаторами для того чтобы определить наличие хостов, которые хотят получать групповую рассылку:
- General Membership Query устанавливает значение поля Group Address в 0.0.0.0.
- Group-Specific Query устанавливает значение поля Group Address равным адресу группы в которой отправляется запрос. Это сообщение отправляет маршрутизатор после того как он получает от хоста сообщение Leave Group. Оно используется для того чтобы определить остались ли хосты в этой группе.
- Version 1 Membership Report (значение поля = 0x12) — используется хостами IGMPv2 для обратной совместимости с IGMPv1.
- Version 2 Membership Report (значение поля = 0x16) — отправляется членом группы для того чтобы сообщить маршрутизатору, что в группе есть как минимум один хост.
- Leave Group (значение поля = 0x17) — отправляется членом группы для того чтобы сообщить маршрутизатору, что хост покидает группу.
- Membership Query (значение поля = 0x11) — используется маршрутизаторами для того чтобы определить наличие хостов, которые хотят получать групповую рассылку:
- Maximum Response Time — это поле используется только в сообщениях Query, 8 бит. Единицы измерения 1/10 секунды, по умолчанию значение поля 100 (10 секунд). Диапазон значений от 1 до 255 (0.1 до 25.5 секунд).
- Checksum — контрольная сумма вычисленная отправителем, 16 бит. Вычисляется контрольная сумма всего IP-пакета без учета заголовка.
- Group Address — устанавливается равным 0.0.0.0 в сообщениях General Query и равным адресу групповой рассылки в сообщениях Group-Specific. В сообщениях Membership Report это группа трафик которой хост хочет получать, а в сообщениях Leave Group это адрес группы которую хост хочет покинуть.
[править] Таймеры протокола
Таймеры протокола (значения соответствуют RFC 2236):
- Query Interval — интервал времени, который указывает частоту отправки сообщений Query. По умолчанию 125 секунд.
- Query Response Interval — максимальное время ожидания ответа от хоста на отправку периодических общих Query. По умолчанию 10 секунд. Диапазон значений от 1 до 255 (0.1 до 25.5 секунд).
- Group Membership Interval — интервал времени в течение которого маршрутизатор ожидает получения IGMP Report. Если он не был получен, то маршрутизатор считает, что в данной сети больше нет хостов, которые принадлежат группе. По умолчанию 260 секунд.
- Other Querier Present Interval — если в течение этого временного интервала маршрутизатор, который не стал querier, не получает IGMP Query от querier, то он считает, что querier не доступен. По умолчанию 255 секунд.
- Last Member Query Interval — интервал времени, который указывает частоту отправки Group-Specific Queries для одной и той же группы. По умолчанию 1 секунд.
- Version 1 Router Present Timeout — интервал времени в течение которого IGMPv2-хост ожидает получения IGMPv1 Query, если сообщение получено не было, то хост считает, что в сети нет маршрутизатора IGMPv1 и начинает отправлять сообщения IGMPv2. По умолчанию 400 секунд.
[править] Совместимость с IGMPv1
[править] Querier
Маршрутизатор с наименьшим IP-адресом становится Querier.
[править] IGMPv3
[править] Маршрутизация multicast трафика
Протокол | Dense mode | Sparse mode | Source-Based Trees | Shared Trees | Implicit Join | Explicit Join |
---|---|---|---|---|---|---|
PIM-DM | Да | Да | Да | |||
PIM-SM | Да | Да | Да | |||
DVMRP | Да | Да | Да | |||
MOSPF | Да | Да | Да | |||
CBT | Да | Да | Да |
[править] Protocol-Independent Multicast (PIM)
Сам протокол описан на странице PIM.
Его настройка на маршрутизаторах Cisco: PIM в Cisco.
Его настройка на коммутаторах ProCurve: PIM в ProCurve.
[править] Multicast OSPF (MOSPF)
MOSPF описан в RFC1584. Некоторые свойства протокола:
- MOSPF использует group membership LSA, Type 6, которые передаются в пределах зоны маршрутизатора.
- SPT высчитывается по требованию, когда приходит первый multicast пакет для группы.
- При вычислении SPF все маршрутизаторы знают где находятся участники групп на основании полученных group membership LSA.
- После того как выполнены вычисления SPF, соответствующие записи добавляются в таблицу маршрутизации multicast.
- MOSFP также как и OSPFv2 вычисляет SPT без петель, поэтому проверка RPF не нужна.
[править] Distance Vector Multicast Routing Protocol (DVMRP)
- DVMRP использует свой собственный дистанционно-векторный протокол маршрутизации, который похож на RIPv2:
- отправляет обновления каждые 60 секунд,
- 32 hop считается недостижимой метрикой маршрута.
- DVMRP использует сообщения Probe для обнаружения соседей, отправляя их на адрес 224.0.0.4.
- DVMRP использует truncated broadcast tree, которое аналогично SPT, с некоторыми исключенными линками.
[править] Multicast в ProCurve
- Основная страница: Multicast в ProCurve
[править] Multicast в Cisco
- Основная страница: Multicast в Cisco
[править] Multicast в Linux
- Основная страница: Multicast в Linux
[править] Дополнительная информация
|
---|