- Форум
- /
- IT и телекоммуникации
- /
- Конфигурация сетевого оборудования
- /
- IP Multicast-маршрутизация: Описание и конфигурация PIM, DVMRP, IGMP/CGMP, настройка Mcast (часть 1)
IP Multicast-маршрутизация: Описание и конфигурация PIM, DVMRP, IGMP/CGMP, настройка Mcast (часть 1)
Rendering Error in layout Widget/Social: Call to a member function exists() on null. Please enable debug mode for more information.
9 года 7 мес. назад - 9 года 7 мес. назад #37
от TOLLIFi
IT и Телеком: IP-телефония, интернет-технологии, программирование, web-сервисы.
COM_KUNENA_MESSAGE_CREATED_NEW
Статья посвящена описанию и конфигурации сетевого оборудования для поддержки Multicast-маршрутизации в сети на сетевом уровне. Здесь приведены общие положения по работе протокола PIM, его режимах (sparse-, dense-, sparse-dense-mode), RPF (Reverse Path Forwarding) и взаимодействие с протоколами канального уровня IGMP/CGMP (более подробное описание которых будет приведено в следующей статье), а также краткое описание DVMRP и MSDP. В качестве исходной сети была выбрана сеть DMVPN из предыдущих тем (
Dual-Hub Dual-Cloud DMVPN
).
Ниже представлена минимальная конфигурация (на сетевом уровне) для организации multicast-вещания и запуска сервисов таких, как IPTV и т.п. В прикрепленных файлах подробная информация по описанию и конфигурации протоколов PIM, DVMRP, IGMP/CGMP на оборудовании Cisco Systems для запуска multicast (далее Mcast) в сети.
За основу была взята типичная корпоративная сеть DMVPN на mGRE-туннелях:
--- MCAST-АДРЕСАЦИЯ И ЗОНЫ ОТВЕТСТВЕННОСТИ ПРОТОКОЛОВ MCAST-МАРШРУТИЗАЦИИ >>>
Mcast-трафик, в отличие от Unicast/Broadcast-трафика может распространяться только на определенных получателей конкретной Mcast-группы, при этом на Mcast-маршрутизаторе (далее MR) происходит репликация Mcast-потока, во-избежание дублирования одинаковых потоков трафика и загрузки каналов передачи данных, посредством протоколов PIM, IGMP/CGMP:
Таблица Mcast-адресов, зарезервированных Internet Assigned Numbers Authority (IANA) (сетевым администраторам рекомендуется придерживаться данного соглашения при формировании собственного адресного пространства Multicast):
Cisco IOS поддерживает следующие протоколы Mcast-маршрутизации:
- IGMP (Internet Group Management Protocol) – используется в локальном сегменте сети между хостами, коммутаторами и интерфейсом маршрутизатора для обмена информацией о принадлежности хоста к той или иной Mcast-группе (аналогично переключению TV-каналов).
- PIM (Protocol Independent Multicast) – используется на сетевом уровне для обмена служебной информацией между MR, для определения направления Mcast-потока (либо к next-hop-MR, либо в direct-локальную сеть) и формирования таблицы Mcast.
- DVMRP (Distance Vector Multicast Routing Protocol) – протокол Mcast, используемый в multicast-backbone-зонах интернет (MBONE).
- CGMP (Cisco Group Management Protocol) – протокол Cisco, расширенный аналог протокола IGMP.
На рисунке показаны зоны ответственности протоколов Mcast:
Кратко весь Mcast-процесс:
1. Пользователь (PC Host) запускает VLC-плеер или т.п. сабж и выбирает нужный TV-канал.
2. Сабж формирует IGMP-request-пакет (IGMP JOIN) и отправляет по определенному Mcast-IP-адресу назначения.
3. Пакет доходит до коммутатора. Если это дефолтный Cisco-коммутатор, то он, по-умолчанию, пропускает IGMP-запросы на любой Mcast-поток (ничего доп. конфигурить не нужно!) и фиксирует у себя в таблице Group Members новую запись.
4. Пакет доходит до MR, который генерирует PIM-запрос к next-hop-MR до истоника Mcast-вещания (в случае с dense-mode), либо до RP-MR (в случае с sparse-mode).
5. Дойдя до источника Mcast-вещания, последний формирует Mcast-трафик (к примеру, для IPTV на 1 канал обычного TV-качества используется полоса пропускания ~4.5Mb/s) и процесс обмена служебной информации происходит, примерно, в обратном порядке.
6. На дисплее пользователя появляется чудесная картинка))
7. Если пользователь переключает канал, то сабж сначала отправляет IGMP LEAVE, сообщая MR о том, что он покидает текущую Mcast-группу, а затем снова IGMP JOIN уже на новую Mcast-группу.
Но далеко не все так просто! Генерируется гораздо больше различных запросов/ответов между MR и приемопередатчиками Mcast. Далее постараюсь описать основные этапы настройки Mcast.
--- ПРОТОКОЛ PIM: ВЕРСИИ, РЕЖИМЫ РАБОТЫ, RPF-АЛГОРИТМ >>>
PIM - протокол Mcast-маршрутизации, не зависящий от протоколов unicast-маршрутизации, используемых в сети. Существуют 2 реализации протокола PIM: version 1 и version 2, как ни странно)). Используется для построения дерева Mcast-потока по сети, на основе unicast-таблицы маршрутизации.
3 основных режима работы PIM:
- Dense-mode – использует механизм «лавинной рассылки и отсечения», т.е. MR посылает всем все Mcast-потоки, которые зарегистрированы на нем, а затем отсекает никем (ни MR, ни хостами) неиспользованные потоки (по-умолчанию, этот процесс повторяется каждые 3 мин.).
- Sparse-mode – работает по принципу «запрос-ответ». Если хост или MR запросил какой-то Mcast-поток, то он пересылает запрос вышестоящему MR и так до источника Mcast.
- Sparse-Dense-mode - смешенный режим, поддерживающий одновременно Sparse- и Dense-mode. Обычно используется в смешенных Mcast-доменах (например, при объединении подсетей).
Исходя из выше сказанного, возникает очевидное преимущество Sparse-mode в распределенных Mcast-сетях. Загрузка каналов минимальная. Но есть еще отличия в этих режимах по методам построения дерева Mcast-потока:
- Dense-mode – строит дерево от источника до Mcast-группы по принципу Source Specific Multicast (S,G) (S - источник, G – группа). Например, (10.1.1.1, 224.12.0.2).
- Sparse-mode – в сети должен обязательно существовать RP-MR (Rendezvous Point), до которого от источника дерево будет строится по принципу (S,G), а от него до назначения по принципу Any Source Multicast (*,G) (* - любой источник).
Пример включения Mcast глобально на маршрутизаторе + активация Mcast на интерфейсе (PIM Sparse-mode или PIM-SM):
Существуют еще 2 режима, т.н. расширения PIM (доп. информация в прикрепленных файлах):
- Bidirectional mode.
- Source Specific Multicast (SSM) mode.
Особенности версий протокола PIM
Впрочем как обычно для большинства протоколов, v2 доработана с учетом недостатков v1. Поэтому сразу к основным преимуществам PIMv2:
1. Имеется возможность назначать один RP с множеством Backup-RP.
2. Поддержка BSR для автоматического поиска Backup-RP и формирования новой карты Group-RP-mapping в сетях с разномастными производителями сетевого оборудования (описание см. ниже).
3. PIMv2 больше не является частью IGMP, а работает автономно.
4. Обратная совместимость с PIMv1.
пример включения PIMv2 на интерфейсе (конфигурация по-умолчанию):
RPF (Reverse Path Forwarding)
PIM использует функцию проверки обратного маршрута (RPF), основываясь на таблице Unicast-маршрутизации, чтобы не создавать полностью новую независимую таблицу Mcast-маршрутизации. RPF помогает избежать дублирования Mcast-потока в сети с множеством резервных, дублирующих каналов, предотвращает образование петель Mcast-маршрутов.
Схожий алгоритм используется при проверке обратной Unicast-маршрутизации, активируется командой: ip verify unicast reverse-path (режим конфигурации интерфейса).
При поступлении нового Mcast-потока на MR RPF действует по следующему алгоритму:
1. MR ищет адрес источника в Unicast-таблице маршрутизации и сверяет входящий интерфейс с интерфейсом в таблице маршрутизации для подсети источника (сверяет интерфейс для обратного маршрута).
2. Если входящий интерфейс и интерфейс в таблице маршрутизации совпадают, то MR отправляет Mcast-поток дальше, согласно Mcast-таблице маршрутизации.
3. Если п.2 не выполняется, то пакеты отбрасываются.
--- RENDEZVOUS POINTS (RP): ОПИСАНИЕ И МЕТОДЫ ОПРЕДЕЛЕНИЯ >>>
RP - это центральный маршрутизатор, который должен быть определен, если испольлзуется PIM-SM (PIM Sparse-mode), и к которому должны быть "привязаны" все источники Mcast. Т.е. весь поток направляется сначала на RP по источник-ориентированному дереву маршрутов (source-based distribution tree), откуда дальше распространяется на Mcast-пользователей по распределенному дереву маршрутов (shared distribution tree). Каждый RP "обслуживает" отдельную Mcast-группу адресов, т.е. можно задать 2 и более RP в сети, но при этом каждый RP будет отвечать за конкретную Mcast-группу.
Модели выбора RP:
1. Статическая (вручную) - обычно используется в небольших сетях. Основной недостаток - отсутствие RP-резервирования. Должен быть указан на всех MR в Mcast-домене.
пример статического определения PIM-SM RP:, здесь:
- 192.168.255.254 - IP-адрес RP-MR;
- ACL-IPTV - ACL, в котором указаны все Mcast-адреса (группы), за которые отвечает RP-MR;
- override - игнорировать любые другие несовпадения информации об RP-MR и его Mcast-группах.
- no ip pim dm-fallback - отключить автоматический переход в Dense-mode (PIM-DM) (подробнее см. ниже).
2. Cisco Auto-RP - используется в средних и крупных сетях, построенных на оборудовании Cisco Systems. Протокол Auto-RP динамически составляет карту "Group-RP-mapping". Обмен Auto-RP-сообщениями между Cisco-маршрутизаторами осуществляется по Mcast-IP-адресам: 224.0.1.39 и 224.0.1.40 по принципу Dense-mode. Нет необходимости указывать вручную на каждом MR информацию об RP-MR. В данном случае выбираются 1 или несколько RP-MR, на них указываются соответствующие Mcast-группы и включается функция распространения Auto-RP-анонсов в сети, на остальных MR, д.б. включена функция поиска Auto-RP-сообщений. При этом также сами RP-MR должны прослушивать сеть на присутствие Auto-RP-анонсов от других RP-MR.
Таким образом, можно настроить Backup-RP-MR в сети для разных Mcast-групп, что является одним из преимуществ при таком подходе. Если на MR настроен статический RP-MR и в это же время включен Auto-RP, то приоритетной считается информация от Cisco Auto-RP (если не указана команда override). Также предоставляется возможность ограничения Auto-RP-Mcast-домена, путем изменения поля TTL в сообщениях Auto-RP. Если настроен режим Sparse-Dense-mode, то при отсутствии RP для какой-то Mcast-группы, для данной группы будет автоматически включен режим Dense-mode, что приведет к загрузке каналов, поэтому рекомендуется указывать для всех возможных Mcast-групп RP-MR (но можно предотвратить возврат к Dense-mode применив команду: no ip pim dm-fallback).
пример для определения PIM-SM Auto-RP (анонсирование и прослушивание Auto-RP-сообщений):, здесь:
- ip pim autorp listener - позволяет Mcast-трафику для двух групп Auto-RP (224.0.1.39 и 224.0.1.40) распространяться в режиме PIM-DM по PIM-SM-интерфейсам.
- ip pim accept-rp auto-rp - (необязательный параметр) заставляет MR принимать только Auto-RP-сообщения и игнорировать все другие сообщения об RP в сети (также можно добавить ACL, указав список доверенных IP-адресов Auto-RP-маршрутизаторов) (более подробно про тюнинг PIM, RP и IGMP можно прочитать в прикрепленных файлах);
- ip pim send-rp-announce - включить рассылку Auto-RP-сообщений;
- Loopback0 - в качестве IP источника использовать IP Loopback0;
- scope 16 - ограничение Auto-RP-Mcast-домена до 16-hops (т.е. TTL=16);
- ACL-IPTV-RP1 - ACL, в котором указаны все Mcast-адреса (группы), за которые отвечает RP-MR1 (т.е. текущий RP-MR);
- ip pim send-rp-discovery - включить поиск Auto-RP-сообщений.
3. Bootstrap Router (BSR) - похожая на Auto-RP-модель, но может использоваться в сетях с оборудованием разных производителей. Сообщения инкапсулируются в PIMv2, поэтому отсутствует возможность ограничения BSR-Mcast-домена (scope) и используется в сетях только с PIM версии 2. Отсутствует риск возврата к Dense-mode, как в случае с Auto-RP. Среди множества BSR-MR с одинаковыми Mcast-группами, активные BSR выбираются исходя из BSR-MR-приоритетов.
пример для определения PIM-SM BSR:, здесь:
- loopback0 - в качестве IP источника использовать IP loopback0;
- 30 - hash-mask (значение по-умолчанию - 30) (подробнее см. в прикрепленных материалах);
- 10 - приоритет RP-MR (чем меньше значение, тем приоритетнее RP-MR);
- group-list ACL-IPTV - ACL, в котором указаны все Mcast-адреса (группы), за которые отвечает RP-MR.
Условия определения RP-маршрутизаторов:
- в сетях, построенных только на маршрутизаторах Cisco, где используется только метод Auto-RP, любой маршрутизатор может быть определен в качестве RP-MR;
- в сетях, построенных на маршрутизаторах Cisco PIMv2 и маршрутизаторах других производителей, любой маршрутизатор может быть определен в качестве RP-MR;
- в сетях, построенных на маршрутизаторах Cisco PIMv2, Cisco PIMv1 и маршрутизаторах других производителей, только Cisco PIMv2 должен определяться в качестве RP-MR.
--- СОПУТСТВУЮЩИЕ MCAST-ПРОТОКОЛЫ И ВЗАИМОДЕЙСТВИЕ МЕЖДУ MCAST-ДОМЕНАМИ >>>
MSDP (Multicast Source Discovery Protocol)
Используется для обнаружения Mcast-источников между различными Mcast-доменами. Обычно используется между Mcast-доменами сетей провадеров, а также для создания бэкапных RP (Hot-Standby RP). RP-MR обмениваются MSDP-сообщениями (создают MSDP-сессии друг с другом), анонсируя/обнаруживая новые источники Mcast. Таким образом, разные Mcast-домены работают автономно и при этом RP в этих доменах дублируют друг друга, поскольку RP одного домена знает все источники Mcast (SA) от RP другого домена и наоборот.
На основе протокола MSDP можно организовать Hot-Standby-RP (Backup RP) (другое название технологии - Anycast RP). Схема сети домена представлена на рисунке:
Ключевой момент при построении Anycast RP - использование единого IP-адреса (/32) для RP разных доменов (или для RP, которые должны дублировать функции друг друга). После чего все MR Mcast-домена, при указании RP, должны ссылаться на этот самый единый IP-адрес. Получается некое подобие балансировки сетевой нагрузки на маршрутизаторы (RP-MR).
пример конфигурации MSDP:
1. RP1:2. RP2:3. Все остальные MR:, здесь:
- Loopback0 - интерфейс для RP (единый для всех RP, маска подсети - /32);
- Loopback1 - интерфейс для MSDP-сессий между RP;
- ip msdp peer ... - определение RP-peer;
- ip msdp originator-id loopback 1 - использовать IP-адрес Loopback1-интерфейса в качестве адреса источника в SA-сообщениях, порождаемых RP (подробнее см. в прикрепленных материалах).
Важное замечание!
Если в сети используются протоколы динамической маршрутизации, либо иные сервисы, которые могут использовать Loopback-интерфейсы, будьте осторожны при настройке Mcast-домена. Некоторые протоколы, как, например, OSPF, BGP и др., могут автоматически использовать Loopback-интерфейсы в качестве значения Router-ID. Появляется вероятность совпадения Router-ID при использовании одного и того же Host-IP (как в примере, Loopback0, IP=10.0.0.1) для дублирующих друг друга RP-MR. В таком случае следует вручную задавать значения Router-ID для различных протоколов динамической маршрутизации.
В некоторых случаях необходимо ограничить взаимодействие RP-MR между различными Mcast-доменами во-избежание неверного определения RP для каждого из доменов (т.е. необходима автономность Mcast-доменов). На этот случай предусмотрено определение пограничных доменных MR (Edge-MR), на пограничных интерфейсах которых устанавливается запрет на прием и отсылку BSR- или Auto-RP-сообщений.
пример блокировки BSR-сообщений:пример блокировки Auto-RP-сообщений:
SAP (Session Announcement Protocol)
Протокол используется для предоставления дополнительной информации о текущей Mcast-сессии. Сессии описываются протоколом SDP (Session Description Protocol), который предоставляет информацию о названии текущей сессии, время окончания, используемые медиа-кодеки и т.п. Используются протоколы в основном IPTV-приложениями. SAP используется для транспортировки и распространения SDP-сообщений от MBONE-приложений и некоторых других приложений (224.2.127.254 - для распространения SDP в глобальном Mcast-домене, 239.255.255.255 - для административных сессии).
Для прослушивания и анонсирования SDP/SAP-сессии в основном используются SDR (Session Directory)-приложениями. Активировать прослушивание Session Directory-сообщений на интерфейсе и изменить время кэширования информации можно с помощью команд в режиме конфигурации интерфейса.
пример:
--- ПРИМЕР КОНФИГУРАЦИИ MCAST-МАРШРУТИЗАЦИИ В СЕТИ >>>
Mcast-домен (PIM-SM) построен таким образом, что оба HUB-маршрутизатора являются RP-MR, резервируют друг друга и между ними поднята MSDP-сессия (для этого используется IP-адрес Loopback0), при этом каждый из них имеет Loopback255-интерфейс с одинаковым хостовым IP-адресом 192.168.255.255/32 для анонсирования Auto-RP-сообщений (соответственно испольуется метод Cisco Auto-RP). Все остальные маршрутизаторы (Site) должны прослушивать Auto-RP и идентифицировать IP-адрес 192.168.255.255 в качестве RP в PIM-SM-домене.
1. HUB1:2. HUB2:3. Site1:4. Site2:
Проверка взаимодействия MR по протоколам PIM-SM, Anycast RP (MSDP), Cisco Auto-RP):
Активность MSDP-сессии:HUB PIM Neighbors:Site PIM Neighbors:RP-Mapping:
А теперь можно включить любой источник и приемник Mcast и проверить работоспособность Mcast-домена.
пример для источника (VLC-плеер):пример для приемника (VLC-плеер):
Ниже представлена минимальная конфигурация (на сетевом уровне) для организации multicast-вещания и запуска сервисов таких, как IPTV и т.п. В прикрепленных файлах подробная информация по описанию и конфигурации протоколов PIM, DVMRP, IGMP/CGMP на оборудовании Cisco Systems для запуска multicast (далее Mcast) в сети.
За основу была взята типичная корпоративная сеть DMVPN на mGRE-туннелях:
--- MCAST-АДРЕСАЦИЯ И ЗОНЫ ОТВЕТСТВЕННОСТИ ПРОТОКОЛОВ MCAST-МАРШРУТИЗАЦИИ >>>
ВНИМАНИЕ: Спойлер!
[ Нажмите, чтобы развернуть ]
[ Нажмите, чтобы скрыть ]
Mcast-трафик, в отличие от Unicast/Broadcast-трафика может распространяться только на определенных получателей конкретной Mcast-группы, при этом на Mcast-маршрутизаторе (далее MR) происходит репликация Mcast-потока, во-избежание дублирования одинаковых потоков трафика и загрузки каналов передачи данных, посредством протоколов PIM, IGMP/CGMP:
Таблица Mcast-адресов, зарезервированных Internet Assigned Numbers Authority (IANA) (сетевым администраторам рекомендуется придерживаться данного соглашения при формировании собственного адресного пространства Multicast):
Название (eng.) | Адреса | Описание |
Reserved Link-Local Addresses | 224.0.0.0 - 224.0.0.255 | Зарезервированы для использования сетевыми протоколами в локальном сетевом сегменте |
Globally Scoped Addresses | 224.0.1.0 - 238.255.255.255 | Зарезервированы для отправки Mcast-трафика между организациями и через Интернет |
Source Specific Multicast | 232.0.0.0 - 232.255.255.255 | Зарезервированы для использования в моделях отправки SSM-датаграмм, где данные передаются только получателям с явно заданной группой |
GLOP Addresses | 233.0.0.0 - 233.255.255.255 | Зарезервированы для статически определенных адресов организациями, у которых уже есть присвоенная автономная система (AS) |
Limited Scope Address | 239.0.0.0 - 239.255.255.255 | Зарезервированы в качестве административных или ограниченных диапазонов адресов, используемых частными Mcast-доменами/организациями (пользовательские адреса) |
Cisco IOS поддерживает следующие протоколы Mcast-маршрутизации:
- IGMP (Internet Group Management Protocol) – используется в локальном сегменте сети между хостами, коммутаторами и интерфейсом маршрутизатора для обмена информацией о принадлежности хоста к той или иной Mcast-группе (аналогично переключению TV-каналов).
- PIM (Protocol Independent Multicast) – используется на сетевом уровне для обмена служебной информацией между MR, для определения направления Mcast-потока (либо к next-hop-MR, либо в direct-локальную сеть) и формирования таблицы Mcast.
- DVMRP (Distance Vector Multicast Routing Protocol) – протокол Mcast, используемый в multicast-backbone-зонах интернет (MBONE).
- CGMP (Cisco Group Management Protocol) – протокол Cisco, расширенный аналог протокола IGMP.
На рисунке показаны зоны ответственности протоколов Mcast:
Кратко весь Mcast-процесс:
1. Пользователь (PC Host) запускает VLC-плеер или т.п. сабж и выбирает нужный TV-канал.
2. Сабж формирует IGMP-request-пакет (IGMP JOIN) и отправляет по определенному Mcast-IP-адресу назначения.
3. Пакет доходит до коммутатора. Если это дефолтный Cisco-коммутатор, то он, по-умолчанию, пропускает IGMP-запросы на любой Mcast-поток (ничего доп. конфигурить не нужно!) и фиксирует у себя в таблице Group Members новую запись.
4. Пакет доходит до MR, который генерирует PIM-запрос к next-hop-MR до истоника Mcast-вещания (в случае с dense-mode), либо до RP-MR (в случае с sparse-mode).
5. Дойдя до источника Mcast-вещания, последний формирует Mcast-трафик (к примеру, для IPTV на 1 канал обычного TV-качества используется полоса пропускания ~4.5Mb/s) и процесс обмена служебной информации происходит, примерно, в обратном порядке.
6. На дисплее пользователя появляется чудесная картинка))
7. Если пользователь переключает канал, то сабж сначала отправляет IGMP LEAVE, сообщая MR о том, что он покидает текущую Mcast-группу, а затем снова IGMP JOIN уже на новую Mcast-группу.
Но далеко не все так просто! Генерируется гораздо больше различных запросов/ответов между MR и приемопередатчиками Mcast. Далее постараюсь описать основные этапы настройки Mcast.
--- ПРОТОКОЛ PIM: ВЕРСИИ, РЕЖИМЫ РАБОТЫ, RPF-АЛГОРИТМ >>>
ВНИМАНИЕ: Спойлер!
[ Нажмите, чтобы развернуть ]
[ Нажмите, чтобы скрыть ]
PIM - протокол Mcast-маршрутизации, не зависящий от протоколов unicast-маршрутизации, используемых в сети. Существуют 2 реализации протокола PIM: version 1 и version 2, как ни странно)). Используется для построения дерева Mcast-потока по сети, на основе unicast-таблицы маршрутизации.
3 основных режима работы PIM:
- Dense-mode – использует механизм «лавинной рассылки и отсечения», т.е. MR посылает всем все Mcast-потоки, которые зарегистрированы на нем, а затем отсекает никем (ни MR, ни хостами) неиспользованные потоки (по-умолчанию, этот процесс повторяется каждые 3 мин.).
- Sparse-mode – работает по принципу «запрос-ответ». Если хост или MR запросил какой-то Mcast-поток, то он пересылает запрос вышестоящему MR и так до источника Mcast.
- Sparse-Dense-mode - смешенный режим, поддерживающий одновременно Sparse- и Dense-mode. Обычно используется в смешенных Mcast-доменах (например, при объединении подсетей).
Исходя из выше сказанного, возникает очевидное преимущество Sparse-mode в распределенных Mcast-сетях. Загрузка каналов минимальная. Но есть еще отличия в этих режимах по методам построения дерева Mcast-потока:
- Dense-mode – строит дерево от источника до Mcast-группы по принципу Source Specific Multicast (S,G) (S - источник, G – группа). Например, (10.1.1.1, 224.12.0.2).
- Sparse-mode – в сети должен обязательно существовать RP-MR (Rendezvous Point), до которого от источника дерево будет строится по принципу (S,G), а от него до назначения по принципу Any Source Multicast (*,G) (* - любой источник).
Пример включения Mcast глобально на маршрутизаторе + активация Mcast на интерфейсе (PIM Sparse-mode или PIM-SM):
!
ip multicast-routing
!
interface gigabitEthernet 0/0
ip pim sparse-mode
!
- Bidirectional mode.
- Source Specific Multicast (SSM) mode.
Особенности версий протокола PIM
Впрочем как обычно для большинства протоколов, v2 доработана с учетом недостатков v1. Поэтому сразу к основным преимуществам PIMv2:
1. Имеется возможность назначать один RP с множеством Backup-RP.
2. Поддержка BSR для автоматического поиска Backup-RP и формирования новой карты Group-RP-mapping в сетях с разномастными производителями сетевого оборудования (описание см. ниже).
3. PIMv2 больше не является частью IGMP, а работает автономно.
4. Обратная совместимость с PIMv1.
пример включения PIMv2 на интерфейсе (конфигурация по-умолчанию):
!
interface gigabitEthernet 0/0
ip pim version 2
!
RPF (Reverse Path Forwarding)
PIM использует функцию проверки обратного маршрута (RPF), основываясь на таблице Unicast-маршрутизации, чтобы не создавать полностью новую независимую таблицу Mcast-маршрутизации. RPF помогает избежать дублирования Mcast-потока в сети с множеством резервных, дублирующих каналов, предотвращает образование петель Mcast-маршрутов.
Схожий алгоритм используется при проверке обратной Unicast-маршрутизации, активируется командой: ip verify unicast reverse-path (режим конфигурации интерфейса).
При поступлении нового Mcast-потока на MR RPF действует по следующему алгоритму:
1. MR ищет адрес источника в Unicast-таблице маршрутизации и сверяет входящий интерфейс с интерфейсом в таблице маршрутизации для подсети источника (сверяет интерфейс для обратного маршрута).
2. Если входящий интерфейс и интерфейс в таблице маршрутизации совпадают, то MR отправляет Mcast-поток дальше, согласно Mcast-таблице маршрутизации.
3. Если п.2 не выполняется, то пакеты отбрасываются.
--- RENDEZVOUS POINTS (RP): ОПИСАНИЕ И МЕТОДЫ ОПРЕДЕЛЕНИЯ >>>
ВНИМАНИЕ: Спойлер!
[ Нажмите, чтобы развернуть ]
[ Нажмите, чтобы скрыть ]
RP - это центральный маршрутизатор, который должен быть определен, если испольлзуется PIM-SM (PIM Sparse-mode), и к которому должны быть "привязаны" все источники Mcast. Т.е. весь поток направляется сначала на RP по источник-ориентированному дереву маршрутов (source-based distribution tree), откуда дальше распространяется на Mcast-пользователей по распределенному дереву маршрутов (shared distribution tree). Каждый RP "обслуживает" отдельную Mcast-группу адресов, т.е. можно задать 2 и более RP в сети, но при этом каждый RP будет отвечать за конкретную Mcast-группу.
Модели выбора RP:
1. Статическая (вручную) - обычно используется в небольших сетях. Основной недостаток - отсутствие RP-резервирования. Должен быть указан на всех MR в Mcast-домене.
пример статического определения PIM-SM RP:
!
ip multicast-routing
!
interface Loopback0
ip pim sparse-mode
!
interface gigbitEthernet0/0
ip pim sparse-mode
!
ip pim rp-address 192.168.255.254 ACL-IPTV override
no ip pim dm-fallback
!
- 192.168.255.254 - IP-адрес RP-MR;
- ACL-IPTV - ACL, в котором указаны все Mcast-адреса (группы), за которые отвечает RP-MR;
- override - игнорировать любые другие несовпадения информации об RP-MR и его Mcast-группах.
- no ip pim dm-fallback - отключить автоматический переход в Dense-mode (PIM-DM) (подробнее см. ниже).
2. Cisco Auto-RP - используется в средних и крупных сетях, построенных на оборудовании Cisco Systems. Протокол Auto-RP динамически составляет карту "Group-RP-mapping". Обмен Auto-RP-сообщениями между Cisco-маршрутизаторами осуществляется по Mcast-IP-адресам: 224.0.1.39 и 224.0.1.40 по принципу Dense-mode. Нет необходимости указывать вручную на каждом MR информацию об RP-MR. В данном случае выбираются 1 или несколько RP-MR, на них указываются соответствующие Mcast-группы и включается функция распространения Auto-RP-анонсов в сети, на остальных MR, д.б. включена функция поиска Auto-RP-сообщений. При этом также сами RP-MR должны прослушивать сеть на присутствие Auto-RP-анонсов от других RP-MR.
Таким образом, можно настроить Backup-RP-MR в сети для разных Mcast-групп, что является одним из преимуществ при таком подходе. Если на MR настроен статический RP-MR и в это же время включен Auto-RP, то приоритетной считается информация от Cisco Auto-RP (если не указана команда override). Также предоставляется возможность ограничения Auto-RP-Mcast-домена, путем изменения поля TTL в сообщениях Auto-RP. Если настроен режим Sparse-Dense-mode, то при отсутствии RP для какой-то Mcast-группы, для данной группы будет автоматически включен режим Dense-mode, что приведет к загрузке каналов, поэтому рекомендуется указывать для всех возможных Mcast-групп RP-MR (но можно предотвратить возврат к Dense-mode применив команду: no ip pim dm-fallback).
пример для определения PIM-SM Auto-RP (анонсирование и прослушивание Auto-RP-сообщений):
!
ip multicast-routing
!
interface Loopback0
ip pim sparse-mode
!
interface gigabitEthernet0/0
ip pim sparse-mode
!
ip pim autorp listener
ip pim accept-rp auto-rp
ip pim send-rp-announce Loopback0 scope 16 group-list ACL-IPTV-RP1
ip pim send-rp-discovery Loopback0 scope 16
no ip pim dm-fallback
!
- ip pim autorp listener - позволяет Mcast-трафику для двух групп Auto-RP (224.0.1.39 и 224.0.1.40) распространяться в режиме PIM-DM по PIM-SM-интерфейсам.
- ip pim accept-rp auto-rp - (необязательный параметр) заставляет MR принимать только Auto-RP-сообщения и игнорировать все другие сообщения об RP в сети (также можно добавить ACL, указав список доверенных IP-адресов Auto-RP-маршрутизаторов) (более подробно про тюнинг PIM, RP и IGMP можно прочитать в прикрепленных файлах);
- ip pim send-rp-announce - включить рассылку Auto-RP-сообщений;
- Loopback0 - в качестве IP источника использовать IP Loopback0;
- scope 16 - ограничение Auto-RP-Mcast-домена до 16-hops (т.е. TTL=16);
- ACL-IPTV-RP1 - ACL, в котором указаны все Mcast-адреса (группы), за которые отвечает RP-MR1 (т.е. текущий RP-MR);
- ip pim send-rp-discovery - включить поиск Auto-RP-сообщений.
3. Bootstrap Router (BSR) - похожая на Auto-RP-модель, но может использоваться в сетях с оборудованием разных производителей. Сообщения инкапсулируются в PIMv2, поэтому отсутствует возможность ограничения BSR-Mcast-домена (scope) и используется в сетях только с PIM версии 2. Отсутствует риск возврата к Dense-mode, как в случае с Auto-RP. Среди множества BSR-MR с одинаковыми Mcast-группами, активные BSR выбираются исходя из BSR-MR-приоритетов.
пример для определения PIM-SM BSR:
!
ip multicast-routing
!
interface Loopback0
ip pim sparse-mode
!
interface gigabitEthernet0/0
ip pim sparse-mode
!
ip pim bsr-candidate Loopback0 30 10
ip pim rp-candidate Loopback0 group-list ACL-IPTV
no ip pim dm-fallback
!
- loopback0 - в качестве IP источника использовать IP loopback0;
- 30 - hash-mask (значение по-умолчанию - 30) (подробнее см. в прикрепленных материалах);
- 10 - приоритет RP-MR (чем меньше значение, тем приоритетнее RP-MR);
- group-list ACL-IPTV - ACL, в котором указаны все Mcast-адреса (группы), за которые отвечает RP-MR.
Условия определения RP-маршрутизаторов:
- в сетях, построенных только на маршрутизаторах Cisco, где используется только метод Auto-RP, любой маршрутизатор может быть определен в качестве RP-MR;
- в сетях, построенных на маршрутизаторах Cisco PIMv2 и маршрутизаторах других производителей, любой маршрутизатор может быть определен в качестве RP-MR;
- в сетях, построенных на маршрутизаторах Cisco PIMv2, Cisco PIMv1 и маршрутизаторах других производителей, только Cisco PIMv2 должен определяться в качестве RP-MR.
--- СОПУТСТВУЮЩИЕ MCAST-ПРОТОКОЛЫ И ВЗАИМОДЕЙСТВИЕ МЕЖДУ MCAST-ДОМЕНАМИ >>>
ВНИМАНИЕ: Спойлер!
[ Нажмите, чтобы развернуть ]
[ Нажмите, чтобы скрыть ]
MSDP (Multicast Source Discovery Protocol)
Используется для обнаружения Mcast-источников между различными Mcast-доменами. Обычно используется между Mcast-доменами сетей провадеров, а также для создания бэкапных RP (Hot-Standby RP). RP-MR обмениваются MSDP-сообщениями (создают MSDP-сессии друг с другом), анонсируя/обнаруживая новые источники Mcast. Таким образом, разные Mcast-домены работают автономно и при этом RP в этих доменах дублируют друг друга, поскольку RP одного домена знает все источники Mcast (SA) от RP другого домена и наоборот.
На основе протокола MSDP можно организовать Hot-Standby-RP (Backup RP) (другое название технологии - Anycast RP). Схема сети домена представлена на рисунке:
Ключевой момент при построении Anycast RP - использование единого IP-адреса (/32) для RP разных доменов (или для RP, которые должны дублировать функции друг друга). После чего все MR Mcast-домена, при указании RP, должны ссылаться на этот самый единый IP-адрес. Получается некое подобие балансировки сетевой нагрузки на маршрутизаторы (RP-MR).
пример конфигурации MSDP:
1. RP1:
!
ip pim rp-address 10.0.0.1
no ip pim dm-fallback
!
interface loopback 0
ip address 10.0.0.1 255.255.255.255
!
interface loopback 1
ip address 10.1.1.1 255.255.255.255
!
ip msdp peer 10.1.1.2 connect-source loopback 1
ip msdp originator-id loopback 1
!
!
ip pim rp-address 10.0.0.1
no ip pim dm-fallback
!
interface loopback 0
ip address 10.0.0.1 255.255.255.255
!
interface loopback 1
ip address 10.1.1.2 255.255.255.255
!
ip msdp peer 10.1.1.1 connect-source loopback 1
ip msdp originator-id loopback 1
!
!
ip pim rp-address 10.0.0.1
no ip pim dm-fallback
!
- Loopback0 - интерфейс для RP (единый для всех RP, маска подсети - /32);
- Loopback1 - интерфейс для MSDP-сессий между RP;
- ip msdp peer ... - определение RP-peer;
- ip msdp originator-id loopback 1 - использовать IP-адрес Loopback1-интерфейса в качестве адреса источника в SA-сообщениях, порождаемых RP (подробнее см. в прикрепленных материалах).
Важное замечание!
Если в сети используются протоколы динамической маршрутизации, либо иные сервисы, которые могут использовать Loopback-интерфейсы, будьте осторожны при настройке Mcast-домена. Некоторые протоколы, как, например, OSPF, BGP и др., могут автоматически использовать Loopback-интерфейсы в качестве значения Router-ID. Появляется вероятность совпадения Router-ID при использовании одного и того же Host-IP (как в примере, Loopback0, IP=10.0.0.1) для дублирующих друг друга RP-MR. В таком случае следует вручную задавать значения Router-ID для различных протоколов динамической маршрутизации.
В некоторых случаях необходимо ограничить взаимодействие RP-MR между различными Mcast-доменами во-избежание неверного определения RP для каждого из доменов (т.е. необходима автономность Mcast-доменов). На этот случай предусмотрено определение пограничных доменных MR (Edge-MR), на пограничных интерфейсах которых устанавливается запрет на прием и отсылку BSR- или Auto-RP-сообщений.
пример блокировки BSR-сообщений:
!
interface gigabitEthernet0/0
ip pim bsr-border
!
!
ip access-list standard ACL-AUTO-RP
deny 224.0.1.39
deny 224.0.1.40
permit any
!
interface gigabitEthernet 0/0
ip multicast boundary ACL-AUTO-RP
!
SAP (Session Announcement Protocol)
Протокол используется для предоставления дополнительной информации о текущей Mcast-сессии. Сессии описываются протоколом SDP (Session Description Protocol), который предоставляет информацию о названии текущей сессии, время окончания, используемые медиа-кодеки и т.п. Используются протоколы в основном IPTV-приложениями. SAP используется для транспортировки и распространения SDP-сообщений от MBONE-приложений и некоторых других приложений (224.2.127.254 - для распространения SDP в глобальном Mcast-домене, 239.255.255.255 - для административных сессии).
Для прослушивания и анонсирования SDP/SAP-сессии в основном используются SDR (Session Directory)-приложениями. Активировать прослушивание Session Directory-сообщений на интерфейсе и изменить время кэширования информации можно с помощью команд в режиме конфигурации интерфейса.
пример:
!
ip sap cache-timeout 360
!
interface gigabitEthernet 0/0
ip sap listen
!
--- ПРИМЕР КОНФИГУРАЦИИ MCAST-МАРШРУТИЗАЦИИ В СЕТИ >>>
ВНИМАНИЕ: Спойлер!
[ Нажмите, чтобы развернуть ]
[ Нажмите, чтобы скрыть ]
Mcast-домен (PIM-SM) построен таким образом, что оба HUB-маршрутизатора являются RP-MR, резервируют друг друга и между ними поднята MSDP-сессия (для этого используется IP-адрес Loopback0), при этом каждый из них имеет Loopback255-интерфейс с одинаковым хостовым IP-адресом 192.168.255.255/32 для анонсирования Auto-RP-сообщений (соответственно испольуется метод Cisco Auto-RP). Все остальные маршрутизаторы (Site) должны прослушивать Auto-RP и идентифицировать IP-адрес 192.168.255.255 в качестве RP в PIM-SM-домене.
1. HUB1:
!
ip multicast-routing
ip sap cache-timeout 360
!
interface Loopback0
ip address 192.168.255.254 255.255.255.255
ip pim sparse-mode
ip sap listen
!
interface Loopback1
ip address 192.168.254.254 255.255.255.255
!
interface Loopback255
description *** Anycast RP Interface ***
ip address 192.168.255.255 255.255.255.255
ip pim sparse-mode
ip sap listen
!
interface Tunnel1
description *** DMVPN Tunnel to Spoke ***
ip address 172.16.254.254 255.255.255.0
ip pim sparse-mode
ip sap listen
!
interface GigabitEthernet0/0
description *** HUB LAN ***
ip address 10.0.254.2 255.255.255.0
ip address 10.0.253.2 255.255.255.0 secondary
ip pim sparse-mode
ip sap listen
!
router ospf 1
router-id 192.168.255.254
network 172.16.0.0 0.0.255.255 area 0
!
router ospf 2
router-id 192.168.254.254
network 10.0.0.0 0.255.255.255 area 0
network 192.168.0.0 0.0.255.255 area 0
!
no ip pim dm-fallback
ip pim autorp listener
ip pim accept-rp auto-rp
ip pim send-rp-announce Loopback255 scope 16 group-list ACL-IPTV
ip pim send-rp-discovery Loopback0 scope 16
ip pim register-source Loopback0
ip msdp peer 192.168.255.253 connect-source Loopback0
ip msdp description 192.168.255.253 MCAST-HUB2
ip msdp cache-sa-state
ip msdp originator-id Loopback0
ip msdp password peer 192.168.255.253 MsDpPaSsWoRd
!
ip access-list standard ACL-AUTO-RP
deny 224.0.1.39
deny 224.0.1.40
permit any
ip access-list standard ACL-IPTV
permit 239.98.0.0 0.0.0.255
!
!
ip multicast-routing
ip sap cache-timeout 360
!
interface Loopback0
ip address 192.168.255.253 255.255.255.255
ip pim sparse-mode
ip sap listen
!
interface Loopback1
ip address 192.168.254.253 255.255.255.255
!
interface Loopback255
description *** Anycast RP Interface ***
ip address 192.168.255.255 255.255.255.255
ip pim sparse-mode
ip sap listen
!
interface Tunnel1
description *** DMVPN Tunnel to Spoke ***
ip address 172.16.253.254 255.255.255.0
ip pim sparse-mode
ip sap listen
!
interface GigabitEthernet0/0
description *** HUB LAN ***
ip address 10.0.254.3 255.255.255.0
ip address 10.0.253.3 255.255.255.0 secondary
ip pim sparse-mode
ip sap listen
!
router ospf 1
router-id 192.168.255.253
network 172.16.0.0 0.0.255.255 area 0
!
router ospf 2
router-id 192.168.254.253
network 10.0.0.0 0.255.255.255 area 0
network 192.168.0.0 0.0.255.255 area 0
!
no ip pim dm-fallback
ip pim autorp listener
ip pim accept-rp auto-rp
ip pim send-rp-announce Loopback255 scope 16 group-list ACL-IPTV
ip pim send-rp-discovery Loopback0 scope 16
ip pim register-source Loopback0
ip msdp peer 192.168.255.254 connect-source Loopback0
ip msdp description 192.168.255.254 MCAST-HUB1
ip msdp cache-sa-state
ip msdp originator-id Loopback0
ip msdp password peer 192.168.255.254 MsDpPaSsWoRd
!
ip access-list standard ACL-AUTO-RP
deny 224.0.1.39
deny 224.0.1.40
permit any
ip access-list standard ACL-IPTV
permit 239.98.0.0 0.0.0.255
!
!
ip multicast-routing
ip sap cache-timeout 360
!
interface Loopback0
ip address 192.168.255.1 255.255.255.255
ip pim sparse-mode
ip sap listen
!
interface Tunnel1
description *** DMVPN Tunnel to HUB1 ***
ip address 172.16.254.1 255.255.255.0
ip pim sparse-mode
ip sap listen
!
interface Tunnel2
description *** DMVPN Tunnel to HUB2 ***
ip address 172.16.253.1 255.255.255.0
ip pim sparse-mode
ip sap listen
!
interface Vlan1
description *** Spoke LAN ***
ip address 10.0.1.1 255.255.255.0
ip multicast boundary ACL-AUTO-RP
ip pim sparse-mode
ip sap listen
!
no ip pim dm-fallback
ip pim autorp listener
ip pim accept-rp auto-rp
ip pim send-rp-discovery scope 16
ip pim register-source Loopback0
!
ip access-list standard ACL-AUTO-RP
deny 224.0.1.39
deny 224.0.1.40
permit any
ip access-list standard ACL-IPTV
permit 239.98.0.0 0.0.0.255
!
!
ip multicast-routing
ip sap cache-timeout 360
!
interface Loopback0
ip address 192.168.255.2 255.255.255.255
ip pim sparse-mode
ip sap listen
!
interface Tunnel1
description *** DMVPN Tunnel to HUB1 ***
ip address 172.16.254.2 255.255.255.0
ip pim sparse-mode
ip sap listen
!
interface Tunnel2
description *** DMVPN Tunnel to HUB2 ***
ip address 172.16.253.2 255.255.255.0
ip pim sparse-mode
ip sap listen
!
interface Vlan1
description *** Spoke LAN ***
ip address 10.0.2.1 255.255.255.0
ip multicast boundary ACL-AUTO-RP
ip pim sparse-mode
ip sap listen
!
no ip pim dm-fallback
ip pim autorp listener
ip pim accept-rp auto-rp
ip pim send-rp-discovery scope 16
ip pim register-source Loopback0
!
ip access-list standard ACL-AUTO-RP
deny 224.0.1.39
deny 224.0.1.40
permit any
ip access-list standard ACL-IPTV
permit 239.98.0.0 0.0.0.255
!
Проверка взаимодействия MR по протоколам PIM-SM, Anycast RP (MSDP), Cisco Auto-RP):
Активность MSDP-сессии:
HUB1#show ip msdp peer
MSDP Peer 192.168.255.253 (?), AS ?
Description: MCAST-HUB2
Connection status:
State: Up, Resets: 0, Connection source: Loopback0 (192.168.255.254)
Uptime(Downtime): 3d23h, Messages sent/received: 5719/5715
Output messages discarded: 0
Connection and counters cleared 3d23h ago
SA Filtering:
Input (S,G) filter: none, route-map: none
Input RP filter: none, route-map: none
Output (S,G) filter: none, route-map: none
Output RP filter: none, route-map: none
SA-Requests:
Input filter: none
Peer ttl threshold: 0
SAs learned from this peer: 0
Number of connection transitions to Established state: 1
Input queue size: 0, Output queue size: 0
MD5 signature protection on MSDP TCP connection: enabled
Message counters:
RPF Failure count: 0
SA Messages in/out: 4/0
SA Requests in: 0
SA Responses out: 0
Data Packets in/out: 0/0
HUB1#
HUB1#show ip pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
P - Proxy Capable, S - State Refresh Capable, G - GenID Capable
Neighbor Interface Uptime/Expires Ver DR
Address Prio/Mode
10.0.254.3 GigabitEthernet0/0 8w3d/00:01:21 v2 1 / DR S P G
172.16.254.1 Tunnel1 3d15h/00:01:30 v2 1 / S G
172.16.254.2 Tunnel1 3d22h/00:01:39 v2 1 / S G
HUB1#
Site1#show ip pim neighbor
PIM Neighbor Table
Mode: B - Bidir Capable, DR - Designated Router, N - Default DR Priority,
S - State Refresh Capable
Neighbor Interface Uptime/Expires Ver DR
Address Prio/Mode
172.16.254.254 Tunnel1 3d15h/00:01:24 v2 1 / DR S
172.16.253.254 Tunnel2 2d08h/00:01:39 v2 1 / DR S
Site1#
Site1#show ip pim rp mapping
PIM Group-to-RP Mappings
This system is an RP-mapping agent
Group(s) 239.98.0.0/24
RP 192.168.255.255 (?), v2v1
Info source: 192.168.255.255 (?), elected via Auto-RP
Uptime: 1d15h, expires: 00:02:23
Site1#
А теперь можно включить любой источник и приемник Mcast и проверить работоспособность Mcast-домена.
пример для источника (VLC-плеер):
Медиа -> Потоковое вещание -> вк."Файл" -> кн."Добавить..." (свой *.avi или др. медиа файл) -> кн."Поток" -> вк."Пути назначения" -> галочка "Воспроизводить локально" + Новый путь назначения: UDP (legacy) -> 239.98.0.1 -> вк."Параметры" -> TTL=3 -> кн."Поток".
Медиа -> Открыть URL... -> udp://@239.98.0.1:1234
Это вложение скрыто для гостей.
Пожалуйста, зарегистрируйтесь или войдите, чтобы увидеть его.
Пожалуйста, зарегистрируйтесь или войдите, чтобы увидеть его.
Это вложение скрыто для гостей.
Пожалуйста, зарегистрируйтесь или войдите, чтобы увидеть его.
Пожалуйста, зарегистрируйтесь или войдите, чтобы увидеть его.
IT и Телеком: IP-телефония, интернет-технологии, программирование, web-сервисы.
Last edit: 9 года 7 мес. назад by TOLLIFi.
Пожалуйста Войти или Регистрация, чтобы присоединиться к беседе.
- Вы здесь:
-
Главная
-
Форум
-
IT и телекоммуникации
-
Конфигурация сетевого оборудования
- IP Multicast-маршрутизация: Описание и конфигурация PIM, DVMRP, IGMP/CGMP, настройка Mcast (часть 1)