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.

Показана настройка коммутаторов в соответствии с представленной сетевой конфигурацией.

image

Рис. 7.1 Конфигурация сети

Общая настройка 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.

Ниже показана настройка в соответствии с представленной сетевой конфигурацией.

image

Рис. 7.2 Конфигурация сети

Для динамической настройки 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.

Ниже показана настройка коммутаторов в соответствии с представленной конфигурацией сети.

image

Рис. 7.3 Конфигурация сети

Шаг 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