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 читайте в соответствующих разделах.