PIM-SM/SSM

Тонкая настройка протоколов мультикастовой маршрутизации довольно сложна и не рассматривается в данном документе. Для базовой настройки необходимо выполнить следующие действия.

Шаг 1. Включение мультикастовой маршрутизации командой конфигурационного режима ip multicast-routing.

Шаг 2. Включение протокола мультикастовой маршрутизации на нужных интерфейсах контекстной командой ip pim sparse-mode. При вводе этой команды на интерфейсе автоматически включается протокол IGMPv3.

Шаг 3. Статическое задание точки встречи деревьев от источника и клиентов (Rendezvous Point, далее — RP) командой ip pim rp-address <IP> [<POLICY-FILTER-LIST>] [override]. Здесь с помощью номера POLICY-FILTER-LIST можно привязать RP к определённой мультикастовой группе, а параметр override повышает приоритет статической записи о RP по сравнению с полученной динамическим путём. Динамический путь описан ниже.

Шаг 4. Добавление возможности переключения на более короткий маршрут до источника при помощи команды ip pim spt-treshold [group-list <POLICY-FILTER-LIST>], где номер POLICY-FILTER-LIST указывает конкретные мультикастные группы.

Этих шагов достаточно для успешной доставки мультикаст-трафика от сервера до клиентов, однако при выходе из строя RP все клиенты перестанут получать запрашиваемые данные.

Поэтому предпочтение отдаётся протоколу bootstrap, который динамически информирует участников мультикастового домена о RP.

Таким образом, на 4 шаге для информирования PIM-соседей о RP необходимо сконфигурировать кандидата на эту роль командой конфигурационного режима ip pim rp-candidate <название интерфейса> [priority <0-255>] [group-list <POLICY-FILTER-LIST>] [interval <1-16383>]. Параметры команды описаны в таблице ниже.

Таблица — Параметры команды ip pim rp-candidate

ПараметрОписание
<название интерфейса>Интерфейс, назначаемый кандидатом. Интерфейс должен быть предварительно создан в системе
priorityПриоритет,  при задании нескольких кандидатов. Чем меньше значение данного параметра, тем выше приоритет кандидата. Допустимые значения от 0 до 255. Значение по умолчанию 192
group-list <POLICY-FILTER-LIST>Группы, которым рассылается реклама о кандидате
intervalИнтервал рассылки сообщений в секундах. Допустимые значения от 1 до 16383

Далее необходимо сконфигурировать рекламных агентов, которые будут рассылать информацию о RP, так называемых BSR, командой конфигурационного режима ip pim bsr-candidate <название интерфейса> [<0-32>][<0-255>]. Параметры команды описаны в таблице ниже.

Таблица — Параметры команды ip pim bsr-candidate

ПараметрОписание
<название интерфейса>Интерфейс, назначаемый рекламным агентом (BSR). Интерфейс должен быть предварительно создан в системе
<0-32>Длина хэш-маски для расчёта хэш-значения RP. Допустимые значения от 0 до 32. Значение по умолчанию 10
<0-255>Приоритет BSR,  при наличии нескольких агентов в сети. Чем больше значение данного параметра, тем выше приоритет кандидата. Допустимые значения от 0 до 255. Значение по умолчанию 64

Ниже приведён пример схемы и конфигурирования маршрутизаторов. При мультикаст-вещании со стороны сервера Multicast-1 маршрут протекания трафика будет ECO-3 — ECO-2 — ECO-4 — PC1, а после того, как ближайший к клиенту маршрутизатор получит информацию о сервере, произойдёт SPT switchover — маршрут поменяется на ECO-3 — ECO-4 — PC1.

Рисунок


Шаг 1. Задание имени устройства и включение мультикастовой маршрутизации.

ecorouter(config)#hostname ECO-2
ecorouter(config)#ip multicast-routing

Шаг 2. Настройка портов, интерфейсов и сервисных интерфейсов.

ecorouter(config)#interface e3
ecorouter(config-if)#ip address 10.23.0.3/16
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#interface e4
ecorouter(config-if)#ip address 10.24.0.2/16
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#port ge3
ecorouter(config-port)#service-instance ge3/e3
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e3
ecorouter(config)#port ge4
ecorouter(config-port)#service-instance ge4/e4
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e4

Шаг 3. Включение маршрутизации.

ecorouter(config)#router isis
ecorouter(config-router)#net 49.0001.0000.0000.0003.00
ecorouter(config-router)#exit
ecorouter(config)#interface e3
ecorouter(config-int)#ip router isis
ecorouter(config-int)#interface e4
ecorouter(config-int)#ip router isis
ecorouter(config-int)#exit

Шаг 4. Задание информации о RP и включение возможности SPT-switchover.

ecorouter(config)#ip pim bsr-candidate e3
ecorouter(config)#ip pim rp-candidate e3 priority 20
ecorouter(config)#ip pim spt-treshold

Конфигурация оставшихся маршрутизаторов будет аналогичной.  

ecorouter(config)#hostname ECO-3
ecorouter(config)#ip multicast-routing
ecorouter(config)#interface e1
ecorouter(config-if)#ip address 10.13.0.3/16
ecorouter(config-if)#ip router isis
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#interface e2
ecorouter(config-if)#ip address 10.23.0.3/16
ecorouter(config-if)#ip router isis
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#interface e4
ecorouter(config-if)#ip address 10.34.0.3/16
ecorouter(config-if)#ip router isis
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#port ge1
ecorouter(config-port)#service-instance ge1/e1
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e1
ecorouter(config)#port ge2
ecorouter(config-port)#service-instance ge2/e2
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e2
ecorouter(config)#port ge4
ecorouter(config-port)#service-instance ge4/e4
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e4
ecorouter(config)#router isis
ecorouter(config-router)#net 49.0001.0000.0000.0003.00
ecorouter(config)#hostname ECO-4
ecorouter(config)#ip multicast-routing
ecorouter(config)#ip pim spt-treshold
ecorouter(config)#ip pim bsr-candidate e3
ecorouter(config)#ip pim rp-candidate e3 priority 40
ecorouter(config)#interface e1
ecorouter(config-if)#ip address 10.14.0.4/16
ecorouter(config-if)#ip router isis
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config-if)#ip igmp version 2
ecorouter(config)#interface e2
ecorouter(config-if)#ip address 10.24.0.4/16
ecorouter(config-if)#ip router isis
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#interface e3
ecorouter(config-if)#ip address 10.34.0.4/16
ecorouter(config-if)#ip router isis
ecorouter(config-if)#ip pim sparse-mode
ecorouter(config)#port ge2
ecorouter(config-port)#service-instance ge2/e2
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e2
ecorouter(config)#port ge4
ecorouter(config-port)#service-instance ge4/e4
ecorouter(config-service-instance)#encapsulation untagged
ecorouter(config-service-instance)#connect ip interface e4
ecorouter(config)#router isis
ecorouter(config-router)#net 49.0001.0000.0000.0003.00

Подробнее о IGMP можно прочитать в соответствующем разделе.

Для включения Source-Specific-Multicast требуется ввести дополнительную команду ip pim ssm {default | range} <номер policy-filter-list>, где default означает применить ко всем группам, а range и номер policy-filter-list позволяют выделить конкретные группы, для которых будет использоваться SSM. Подробнее о настройке SSM-mapping и policy-filter-list читайте в соответствующих разделах.