7.3. Настройка PIM-SM
Назначение
PIM-SM (Protocol Independent Multicasting-Sparse Mode) - это протокол многоадресной маршрутизации, предназначенный для эффективной работы в условиях, когда получатели многоадресного трафика распределены по сети относительно редко и большинство хостов не являются подписчиками многоадресных групп. Он помогает географически разнесенным узлам сети экономить полосу пропускания и снижает трафик за счет одновременной доставки одного потока информации в несколько мест.
Описание
PIM-SM использует модель рассылки на многоадресные группы с членством, инициируемым приемником. PIM-SM поддерживает как общие деревья (shared trees), так и деревья кратчайшего пути (SPT, Shortest Path trees) и использует механизмы динамического состояния для адаптации к изменяющимся условиям сети. PIM-SM использует протоколы маршрутизации для заполнения таблицы многоадресной маршрутизации.
Реализация PIM-SM на коммутаторе основана на стандарте IETF RFC 4601.
В данной главе используются сокращения и термины из RFC 4601, указанные также в глоссарии.
Настройка
Общая настройка PIM SM
PIM-SM - это протокол с динамическим состоянием. Основное требование - включить PIM-SM на нужных интерфейсах и правильно настроить информацию о RP, используя статические или динамические методы. Все состояния многоадресных групп поддерживаются динамически в результате сообщений “IGMP Report”, “Leave”, “PIM Join”, “PIM Prune”.
В примерах ниже приведены настройки PIM-SM для двух сценариев - со статическим и динамическим назначением RP.
Показана настройка коммутаторов в соответствии с представленной сетевой конфигурацией.
Общая настройка PIM SM (статический RP)
В примере ниже приведена настройка коммутатора “Switch1” и коммутатора “Switch2”. Коммутатор “Switch1” является Rendezvous Point (RP), а все маршрутизаторы статически настроены на работу с RP.
При настройке RP необходимо убедиться, что:
Каждый маршрутизатор включает оператор “IP PIM RP-адрес” (
1.1.1.1), даже если к нему не подключен ни один источник или член группы.В домене PIM существует только один RP-адрес для группового диапазона.
Все интерфейсы, на которых работает PIM-SM, должны иметь включенный режим
sparse-mode.
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Настройка портов, включение PIM-SM на коммутаторе “Switch1”
Switch1(config)# interface eth-0-1
Switch1(config-if)# no shutdown
Switch1(config-if)# no switchport
Switch1(config-if)# ip address 11.1.1.1/24
Switch1(config-if)# ip pim sparse-mode
Switch1(config-if)# exit
Switch1(config)# interface eth-0-9
Switch1(config-if)# no shutdown
Switch1(config-if)# no switchport
Switch1(config-if)# ip address 12.1.1.1/24
Switch1(config-if)# ip pim sparse-mode
Switch1(config-if)# exit
Шаг 3: Создание loopback-интерфейсов на коммутаторе “Switch1”
Switch1(config)# interface loopback 0
Switch1(config-if)# ip address 1.1.1.1/32
Switch1(config-if)# ip pim sparse-mode
Switch1(config-if)# exit
Шаг 4: Настройка портов, включение PIM-SM на коммутаторе “Switch2”
Switch2(config)# interface eth-0-1
Switch2(config-if)# no shutdown
Switch2(config-if)# no switchport
Switch2(config-if)# ip address 22.1.1.2/24
Switch2(config-if)# ip pim sparse-mode
Switch2(config-if)# exit
Switch2(config)# interface eth-0-9
Switch2(config-if)# no shutdown
Switch2(config-if)# no switchport
Switch2(config-if)# ip address 12.1.1.2/24
Switch2(config-if)# ip pim sparse-mode
Switch2(config-if)# exit
Шаг 5: Создание статических маршрутов
На коммутаторе “Switch1”:
Switch1(config)# ip route 22.1.1.0/24 12.1.1.2
На коммутаторе “Switch2”:
Switch2(config)# ip route 11.1.1.0/24 12.1.1.1
Switch2(config)# ip route 1.1.1.1/32 12.1.1.1
Шаг 6: Настройка статического RP-адреса
На коммутаторе “Switch1”:
Switch1(config)# ip pim rp-address 1.1.1.1
На коммутаторе “Switch2”:
Switch2(config)# ip pim rp-address 1.1.1.1
Шаг 8: Выход из режима “Global config”
Switch(config)# end
Шаг 9: Проверка
Вывод IP PIM-SM RP mapping. IP-адрес 1.1.1.1, настроенный статически, является RP для всех многоадресных групп `224.0.0.0/4``:
Switch1# show ip pim sparse-mode rp mapping
PIM group-to-RP mappings
Group(s): 224.0.0.0/4, Static
RP: 1.1.1.1
Uptime: 00:08:21
Вывод информации о порте:
Switch1# show ip pim sparse-mode interface
Address Interface VIF Ver/ Nbr DR DR Hold
Index Mode Count Prior Time
11.1.1.1 eth-0-1 0 v2/S 0 1 11.1.1.1 105
12.1.1.1 eth-0-9 2 v2/S 1 1 12.1.1.2 105
1.1.1.1 loopback0 3 v2/S 0 1 1.1.1.1 105
Вывод многоадресных маршрутов PIM-SM на коммутаторе “Switch1”:
Switch1# show ip pim sparse-mode mroute detail
IP Multicast Routing Table
Entries: 0
Entries: 1
Entries: 0
Entries: 0
FCR Entries: 0
Uptime: 00:01:32
RP: 1.1.1.1, RPF nbr: None, RPF idx: None
Upstream:
State: JOINED, SPT Switch: Enabled, JT: off
Macro state: Join Desired,
Downstream:
eth-0-9:
State: JOINED, ET Expiry: 179 secs, PPT: off
Assert State: NO INFO, AT: off
Winner: 0.0.0.0, Metric: 4294967295, Pref: 4294967295, RPT bit: on
Macro state: Could Assert, Assert Track
Join Olist:
eth-0-9
Вывод многоадресных маршрутов PIM-SM на коммутаторе “Switch2”:
Switch2# show ip pim sparse-mode mroute detail
IP Multicast Routing Table
Entries: 0
Entries: 1
Entries: 0
Entries: 0
FCR Entries: 0
Uptime: 00:00:43
RP: 1.1.1.1, RPF nbr: 12.1.1.1, RPF idx: eth-0-9
Upstream:
State: JOINED, SPT Switch: Enabled, JT Expiry: 18 secs
Macro state: Join Desired,
Downstream:
eth-0-1:
State: NO INFO, ET: off, PPT: off
Assert State: NO INFO, AT: off
Winner: 0.0.0.0, Metric: 4294967295, Pref: 4294967295, RPT bit: on
Macro state: Could Assert, Assert Track
Local Olist:
eth-0-1
Общая настройка PIM SM (динамический RP)
Статическая конфигурация RP подходит для небольшого стабильного домена PIM, однако непрактична для работы в больших сетях. В случае сбоя RP сетевому администратору придется изменить настройки вручную на всех маршрутизаторах PIM.
Еще одна причина выбора динамической конфигурации — гибкость управления многоадресным трафиком, которая позволяет назначать обслуживание разных групп разными RP и таким образом достигать избыточность и балансировку нагрузки.
Для динамического хранения информации RP на коммутаторе используется механизм BSR.
Ниже показана настройка в соответствии с представленной сетевой конфигурацией.
Для динамической настройки RP в соответствии с представленной конфигурацией сети, интерфейс loopback0 коммутатора “Switch1” и интерфейс loopback0 коммутатора “Switch2” настраиваются как кандидаты в RP с помощью команды ip pim rp-candidate. Интерфейс loopback0 коммутатора “Switch2” также настраивается как кандидат в BSR. Поскольку ни один другой маршрутизатор не будет настроен как кандидат в BSR, коммутатор “Switch2” будет выбран маршрутизатором BSR и будет отвечает за отправку информации о назначении многоадресных групп для RP всем остальным маршрутизаторам в этом домене PIM.
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Настройка портов, включение PIM-SM на коммутаторе “Switch1”
Switch1(config)# interface eth-0-1
Switch1(config-if)# no shutdown
Switch1(config-if)# no switchport
Switch1(config-if)# ip address 11.1.1.1/24
Switch1(config-if)# ip pim sparse-mode
Switch1(config-if)# exit
Switch1(config)# interface eth-0-9
Switch1(config-if)# no shutdown
Switch1(config-if)# no switchport
Switch1(config-if)# ip address 12.1.1.1/24
Switch1(config-if)# ip pim sparse-mode
Switch1(config-if)# exit
Шаг 3: Создание loopback-интерфейсов на коммутаторе “Switch1” и “Switch2”
Switch1(config)# interface loopback 0
Switch1(config-if)# ip address 1.1.1.1/32
Switch1(config-if)# ip pim sparse-mode
Switch1(config-if)# exit
Switch2(config)# interface loopback 0
Switch2(config-if)# ip address 2.2.2.2/32
Switch2(config-if)# ip pim sparse-mode
Switch2(config-if)# exit
Шаг 4: Настройка портов, включение PIM-SM на коммутаторе “Switch2”
Switch2(config)# interface eth-0-1
Switch2(config-if)# no shutdown
Switch2(config-if)# no switchport
Switch2(config-if)# ip address 22.1.1.2/24
Switch2(config-if)# ip pim sparse-mode
Switch2(config-if)# exit
Switch2(config)# interface eth-0-9
Switch2(config-if)# no shutdown
Switch2(config-if)# no switchport
Switch2(config-if)# ip address 12.1.1.2/24
Switch2(config-if)# ip pim sparse-mode
Switch2(config-if)# exit
Шаг 5: Создание статических маршрутов
На коммутаторе “Switch1”:
Switch1(config)# ip route 22.1.1.0/24 12.1.1.2
Switch1(config)# ip route 2.2.2.2/32 12.1.1.2
На коммутаторе “Switch2”:
Switch2(config)# ip route 11.1.1.0/24 12.1.1.1
Switch2(config)# ip route 1.1.1.1/32 12.1.1.1
Шаг 6: Настройка RP-кандидата и BSR-кандидата
На коммутаторе “Switch1”:
Switch1(config)# ip pim rp-candidate loopback0
На коммутаторе “Switch2”:
Switch2(config)# ip pim rp-candidate loopback0 priority 2
Switch2(config)# ip pim bsr-candidate loopback0
В качестве RP выбирается маршрутизатор с наивысшим приоритетом. Если два или более маршрутизаторов имеют одинаковый приоритет, для выбора RP используется хэш-функция механизма BSR, обеспечивающая выбор маршрутизаторами одного и того же RP для одной группы в PIM-домене.
Команда ip pim rp-candidate IFNAME PRIORITY служит для изменения приоритета по умолчанию любого кандидата RP.
Шаг 7: Выход из режима “Global config”
Switch(config)# end
Шаг 8: Проверка
Команда show ip pim sparse-mode rp mapping отображает подробную информацию о сопоставлении группы и RP. В выводе отображается информация о кандидатах RP.
Для диапазона групп 224.0.0.0/4 есть два кандидата в RP. Кандидат 1.1.1.1 имеет по умолчанию приоритет 192, тогда как кандидат 2.2.2.2 настроен на приоритет 2. Поскольку кандидат 2.2.2.2 имеет более высокий приоритет, он выбран в качестве RP для многоадресной группы 224.0.0.0/24. В список групп будут включены только разрешающие фильтры.
На коммутаторе “Switch2”:
Switch2# show ip pim sparse-mode rp mapping
PIM group-to-RP mappings
This system is the bootstrap router (v2)
Group(s): 224.0.0.0/4
RP: 2.2.2.2
Info source: 2.2.2.2, via bootstrap, priority 2
Uptime: 01:55:20, expires: 00:02:17
RP: 1.1.1.1
Info source: 1.1.1.1, via bootstrap, priority 192
Uptime: 01:55:23, expires: 00:02:13
Вывод информации о RP для группы `224.1.1.1``:
На коммутаторе “Switch2”:
Switch2# show ip pim sparse-mode rp-hash 224.1.1.1
RP: 2.2.2.2
Info source: 2.2.2.2, via bootstrap
I am RP!
После того, как информация о RP достигает всех PIM-маршрутизаторов в домене, они способны поддерживать все состояния маршрутизации при помощи сообщений “Join”/“Prune” от членов группы.
Отображения информации о деталях интерфейса и таблицы многоадресной маршрутизации аналогично подразделу “Общая настройка PIM SM (статический RP)”.
Настройка BSR (Bootstrap-router)
Каждая многоадресная группа PIM должна быть связана с IP-адресом RP. Этот адрес используется в качестве корня дерева распределения для конкретной группы, ветви которого распространяются на все узлы в домене, получающие трафик, отправленный в группу. Для того, чтобы информация от всех отправителей дошла до всех получателей, все маршрутизаторы в домене должны использовать одинаковое сопоставление групповых адресов с адресами RP. Чтобы определить RP для многоадресной группы, PIM-маршрутизатор хранит базу сопоставлений группы и RP, называемую RP-набором.
Механизм Bootstrap Router (BSR) для класса протоколов многоадресной маршрутизации в домене PIM использует концепцию RP в качестве средства для обнаружения приемниками источников, которые передают трафик в определенную многоадресную группу. Механизм BSR - это один из способов, с помощью которого многоадресных маршрутизатор может узнать набор сопоставлений группы и RP, необходимых для его работы.
Некоторые маршрутизаторы в домене PIM настроены как RP-кандидаты (C-RP). Подмножество C-RP в конечном итоге будет использоваться в качестве фактических RP для домена. RP, на с меньшим значением в поле приоритета, будет иметь более высокий приоритет.
Некоторые маршрутизаторы в домене PIM настроены как BSR-кандидаты (C-BSR). Один из этих C-BSR выбирается в качестве BSR (bootstrap-маршрутизатора) для домена, и все PIM-маршрутизаторы в домене узнают результат этих выборов через BSM (bootstrap messages). Выбирается C-BSR с наибольшим значением в поле приоритета. Затем C-RP сообщают о своих кандидатах BSR, который выбирает подмножество C-RP и рассылает соответствующие отображения RP-групп всем маршрутизаторам в домене через BSM.
Ниже показана настройка коммутаторов в соответствии с представленной конфигурацией сети.
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Настройка BSR-кандидата
На коммутаторе “Switch1”:
Switch1(config)# ip pim bsr-candidate loopback0
На коммутаторе “Switch2”:
Switch2(config)# ip pim bsr-candidate loopback0 10 25
Шаг 3: Настройка порта
Настройка приоритета DR и включение приема и отправки одноадресных BSM пакетов:
Switch(config)# interface eth-0-1
Switch(config-if)# ipv6 pim dr-priority 10
Switch(config-if)# exit
Switch(config)# interface loopback0
Switch(config-if)# ip pim unicast-bsm
Шаг 4: Выход из режима “Global config”
Switch(config-if)# end
Шаг 5: Проверка
Вывод состояния C-BSR на коммутаторе “Switch1”:
Switch1# show ip pim sparse-mode bsr-router
PIMv2 bootstrap information
This system is the bootstrap router (BSR)
BSR address: 1.1.1.1
Uptime: 00:00:13, BSR Priority: 64, Hash mask length: 10
Next bootstrap message in 00:01:00
Role: Candidate BSR
State: Elected BSR
Candidate RP: 1.1.1.1(loopback0)
Advertisement interval 60 seconds
Next C-RP advertisement in 00:00:54
Вывод состояния C-BSR на коммутаторе “Switch2”:
Switch2# show ip pim sparse-mode bsr-router
PIMv2 bootstrap information
BSR address: 1.1.1.1
Uptime: 00:01:38, BSR Priority: 64, Hash mask length: 10
Expires: 00:01:45
Role: Candidate BSR
State: Candidate BSR
Candidate RP: 2.2.2.2(loopback0)
Advertisement interval 60 seconds
Next C-RP advertisement in 00:00:29
Вывод настроек RP на E-BSR:
Switch1# show ip pim sparse-mode rp mapping
PIM group-to-RP mappings
This system is the bootstrap router (v2)
Group(s): 224.0.0.0/4
RP: 2.2.2.2
Info source: 2.2.2.2, via bootstrap, priority 0
Uptime: 00:17:09, expires: 00:01:58
RP: 1.1.1.1
Info source: 1.1.1.1, via bootstrap, priority 192
Uptime: 00:17:26, expires: 00:01:58
Вывод настроек RP на C-BSR:
Switch2# show ip pim sparse-mode rp mapping
PIM group-to-RP mappings
Group(s): 224.0.0.0/4
RP: 2.2.2.2
Info source: 1.1.1.1, via bootstrap, priority 0
Uptime: 00:17:39, expires: 00:01:44
RP: 1.1.1.1
Info source: 1.1.1.1, via bootstrap, priority 192
Uptime: 00:17:56, expires: 00:01:44