Перейти к основному содержимому

Конфигурация режима PIM Sparse

Протокол независимой маршрутизации для мультикастинга в режиме Sparse Mode (PIM-SM) — это протокол маршрутизации мультикастов, разработанный для эффективной работы в глобальных сетях (WAN) с редко распределенными группами. Он помогает географически распределенным узлам сети экономить пропускную способность и уменьшать трафик, одновременно доставляя единый поток информации в несколько мест. PIM-SM использует модель IP-мультикаста с инициацией членства от получателя, поддерживает как общие, так и деревья кратчайшего пути, и использует механизмы с мягким состоянием для адаптации к изменяющимся условиям сети. Он полагается на протокол сбора топологии для заполнения таблицы маршрутизации мультикастов маршрутами.

Терминология

Ниже приведено краткое описание терминов и концепций, используемых для описания протокола PIM-SM:

Точка встречи (Rendezvous Point)

Маршрутизатор Rendezvous Point (RP) настраивается как корень дерева распределения, не зависящего от источника, для группы мультикастов. Сообщения Join от получателей для группы отправляются в направлении RP. Данные от отправителей отправляются в RP, чтобы получатели могли обнаружить, кто является отправителем, и получать трафик, предназначенный для группы.

База информации о маршрутизации мультикастов

База информации о маршрутизации мультикастов (Multicast Routing Information Base, MRIB) — это таблица топологии мультикастов, полученная из таблицы маршрутизации уникастов. В PIM-SM MRIB определяет, куда отправлять сообщения Join/Prune. Она также предоставляет метрики маршрутизации для адресов назначения. Эти метрики используются при отправке и обработке сообщений Assert.

Обратный форвардинг по пути (Reverse Path Forwarding)

Обратный форвардинг по пути (RPF) — это оптимизированная форма флуда, при которой маршрутизатор принимает пакет от SourceA через интерфейс IF1 только в том случае, если IF1 — это интерфейс, который маршрутизатор использует для достижения SourceA. Чтобы определить, является ли интерфейс правильным, маршрутизатор обращается к своим таблицам маршрутизации уникастов. Пакет, который поступает через интерфейс IF1, пересылается, так как таблица маршрутизации указывает этот интерфейс как кратчайший путь. Таблица маршрутизации уникастов маршрутизатора определяет кратчайший путь для пакетов мультикастов. Поскольку маршрутизатор принимает пакет только от одного соседа, он передает пакет только один раз, что означает, что (при условии использования точка-точка соединений) каждый пакет передается по каждому каналу один раз в каждом направлении.

База информации о деревьях

База информации о деревьях (Tree Information Base, TIB) — это коллекция состояний на маршрутизаторе PIM, хранящая состояние всех деревьев распределения мультикастов на этом маршрутизаторе. TIB создается путем получения сообщений Join/Prune, сообщений Assert и информации IGMP от локальных хостов.

Вверх по потоку (Upstream)

Вверх по потоку указывает, что трафик направляется к корню дерева. Корнем дерева может быть либо источник, либо RP.

Вниз по потоку (Downstream)

Вниз по потоку указывает, что трафик направляется от корня дерева. Корнем дерева может быть либо источник, либо RP.

Деревья, основанные на источнике

В деревьях, основанных на источнике (Source-Based Trees), пути форвардинга основаны на кратчайшем уникастовом пути к источнику. Если метрика уникастовой маршрутизации — это hop counts, ветви деревьев мультикастов, основанных на источнике, минимальны по количеству переходов. Если метрика — это delay, ветви минимальны по задержке. Соответствующее дерево мультикастов напрямую соединяет источник со всеми получателями для каждого источника мультикастов. Весь трафик к членам связанной группы проходит по дереву, созданному для их источника. Деревья, основанные на источнике, имеют две записи со списком исходящих интерфейсов — адрес источника и группу мультикастов.

Общие деревья

Общие деревья, или деревья RP (RPT), полагаются на центральный маршрутизатор, называемый Rendezvous Point (RP), который получает весь трафик от источников и пересылает этот трафик получателям. Для каждой группы мультикастов существует одно дерево, независимо от количества источников. Только маршрутизаторы на дереве знают о группе, и информация отправляется только заинтересованным получателям. С RP у получателей есть место для присоединения, даже если источник отсутствует. Общее дерево является однонаправленным, и информация передается только от RP к получателям. Если хост, отличный от RP, должен отправить данные по дереву, данные сначала должны быть туннелированы в RP, а затем переданы мультикастом членам. Это означает, что даже если получатель также является источником, он может использовать дерево только для получения пакетов от RP, но не для отправки пакетов в RP (если только источник не находится между RP и получателями).

Примечание: Не все хосты являются получателями.

Маршрутизатор начальной загрузки

Когда новый отправитель мультикастов начинает отправлять пакеты данных или новый получатель начинает отправлять сообщения Join в направлении RP для этой группы мультикастов, отправителю необходимо знать маршрутизатор следующего перехода в направлении RP. Маршрутизатор начальной загрузки (Bootstrap Router, BSR) предоставляет информацию о сопоставлении группы с RP всем маршрутизаторам PIM в домене, позволяя им сопоставлять правильный адрес RP.

Поток данных от источника к получателям в домене сети PIM-SM

1.      Отправка сообщений Hello

Маршрутизаторы PIM периодически отправляют сообщения Hello для обнаружения соседних маршрутизаторов PIM. Сообщения Hello отправляются мультикастом с использованием адреса 224.0.0.13 (группа ALL-PIM-ROUTERS). Маршрутизаторы не отправляют подтверждение о получении сообщения Hello. Значение holdtime определяет, как долго информация остается действительной. В PIM-SM получатель вниз по потоку должен присоединиться к группе, прежде чем трафик будет пересылаться на интерфейс.

2.      Выбор назначенного маршрутизатора

В сети с множественным доступом, где подключено несколько маршрутизаторов, один из маршрутизаторов выбирается для выполнения роли назначенного маршрутизатора (Designated Router, DR) на определенный период. DR отвечает за отправку сообщений Join/Prune в RP для локальных членов.

3.      Определение точки встречи

PIM-SM использует BSR для создания сообщений начальной загрузки и распространения информации о RP. Сообщения мультикастятся группе на каждом канале. Если BSR не очевиден, маршрутизаторы заполняют домен объявлениями.

Маршрутизатор с наивысшим приоритетом (если приоритеты одинаковы, применяется больший IP-адрес) выбирается в качестве RP. Маршрутизаторы получают и хранят сообщения начальной загрузки, созданные BSR. Когда DR получает индикацию членства от IGMP (или пакет данных) от напрямую подключенного хоста для группы, для которой у него нет записи, назначенный маршрутизатор (DR) сопоставляет адрес группы с одним из кандидатов RP, который может обслуживать эту группу. Затем DR отправляет сообщение Join/Prune в направлении этого RP. В небольшом домене RP также может быть настроен статически.

4.      Присоединение к общему дереву

Чтобы присоединиться к группе мультикастов, хост отправляет сообщение IGMP своему маршрутизатору вверх по потоку, после чего маршрутизатор может принимать мультикастовый трафик для этой группы. Маршрутизатор отправляет сообщение Join своему соседу PIM вверх по потоку в направлении RP. Когда маршрутизатор получает сообщение Join от маршрутизатора вниз по потоку, он проверяет, существует ли состояние для группы в его таблице маршрутизации мультикастов. Если состояние уже существует, сообщение Join достигло общего дерева, и интерфейс, с которого было получено сообщение, добавляется в список исходящих интерфейсов. Если состояние не существует, создается запись, интерфейс добавляется в список исходящих интерфейсов, и сообщение Join снова отправляется в направлении RP.

5.      Регистрация с RP

DR может начать получать трафик от источника, не имея состояния источника или группы для этого источника. В этом случае DR не имеет информации о том, как доставить мультикастовый трафик в RP через дерево. Когда DR источника получает начальный мультикастовый пакет, он инкапсулирует его в сообщение Register и отправляет его в RP для этой группы. RP деинкапсулирует каждое сообщение Register и пересылает извлеченный пакет данных членам вниз по потоку на RPT. После того как путь от источника к RP установлен, DR начинает отправлять трафик в RP как стандартные IP-мультикастовые пакеты, а также инкапсулированные в сообщения Register. RP временно получает пакеты дважды. Когда RP обнаруживает нормальные мультикастовые пакеты, он отправляет сообщение Register-Stop DR источника, указывая, что он должен прекратить отправку пакетов Register.

6.      Отправка сообщений Register-Stop

Когда RP начинает получать трафик от источника как в виде сообщений Register, так и в виде неинкапсулированных IP-пакетов, он отправляет сообщение Register-Stop DR. Это уведомляет DR о том, что трафик теперь принимается как стандартные IP-мультикастовые пакеты на SPT. Когда DR получает это сообщение, он прекращает инкапсулировать трафик в сообщения Register.

7.      Обрезка (Pruning) интерфейса

Маршрутизаторы, подключенные к получателям, отправляют сообщения Prune в RP, чтобы разорвать связь источника с RP. Когда RP получает сообщение Prune, он больше не пересылает трафик от источника, указанного в сообщении Prune. Если все члены группы мультикастов обрезаны, состояние IGMP DR удаляется, а интерфейс удаляется из списков источников и групп для этой группы.

8.      Форвардинг мультикастовых пакетов

Маршрутизаторы PIM-SM пересылают мультикастовый трафик на все интерфейсы, ведущие к получателям, которые явно присоединились к группе мультикастов. Сообщения отправляются на адрес группы в локальной подсети и имеют Time to Live (TTL), равный одному (1). Маршрутизатор выполняет проверку RPF и пересылает пакет. Если маршрутизатор вниз по потоку отправил Join этому маршрутизатору или является членом этой группы, то трафик, который поступает на правильный интерфейс, отправляется на все исходящие интерфейсы, ведущие к получателям вниз по потоку.

Обратная связь