14.3. Настройка PIMv6-SM
Назначение
Протокол PIMv6-SM (Protocol Independent Multicasting-Sparse Mode for IPv6) — это протокол многоадресной маршрутизации, предназначенный для эффективной работы в условиях, когда получатели многоадресного трафика распределены по сети относительно редко и большинство хостов не являются подписчиками многоадресных групп. Он помогает географически разнесенным узлам сети экономить полосу пропускания и снижает трафик за счет одновременной доставки одного потока информации в несколько мест.
Описание
PIMv6-SM использует модель многоадресной рассылки IPv6 с членством по инициативе получателя, поддерживая как общие деревья, так и деревья кратчайшего пути, и использует механизмы динамического состояния для адаптации к изменяющимся условиям сети. Он опирается на протокол сбора топологии для заполнения таблицы многоадресной маршрутизации маршрутами.
В протоколе PIM-SM для выбора Bootstrap Router (BSR) каждый кандидат на роль BSR может быть в одном из трех состояний:
C-BSR – маршрутизатор является кандидатом на роль BSR для локального домена PIM-SM, но в настоящее время есть другой маршрутизатор, который является предпочтительным для выполнения роли BSR.
P-BSR – временное состояние, когда маршрутизатор является кандидатом на роль BSR для домена PIM-SM перед тем как стать избранным (elected) BSR. При этом ни один другой маршрутизатор не является более предпочтительным BSR. Это временное состояние специально введено для предотвращения «скачков» (thrashing) в процессе выбора, когда кандидаты активно обмениваются сообщениями и могли бы многократно менять статус BSR за короткий промежуток времени.
E-BSR – маршрутизатор является избранным (elected) BSR для локального домена PIM-SM и должен выполнять все функции BSR.
Реализация PIMv6-SM на коммутаторе основана на стандарте RFC 4601.
Настройка
Общая настройка PIMv6-SM со статическим RP
PIMv6-SM — это протокол с динамическим состоянием. Для его включения необходимо активировать его на нужных интерфейсах и правильно настроить информацию о RP с помощью статических или динамических методов. Все состояния групп многоадресной рассылки обновляются динамически в результате сообщений “MLD Report/Leave” и “PIMv6 Join/Prune”. Поддерживается только один RP для всех групп многоадресной рассылки (адрес ff00::/8).
Показана настройка коммутаторов в соответствии с представленной конфигурацией сети.
Коммутатор “Switch1” является Rendezvous Point (RP), коммутаторы настроены статически с использованием информации RP.
Важно!
При настройке RP необходимо убедиться, что:
На каждом маршрутизаторе параметр
ipv6 pim rp-addressнастроен в значение1111::1, даже если к нему не прикреплен какой-либо источник или член группы.Для группового диапазона в домене PIMv6 существует только один RP-адрес.
На всех интерфейсах, на которых работает PIMv6-SM, включен режим “Sparse”.
В случае отсутствия конкретных указаний, настройка выполняется на обоих коммутаторах
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Включение IPv6 и многоадресной IPv6-рассылки
Switch(config)# ipv6 enable
Switch(config)# ipv6 multicast-routing
Шаг 3: Настройка портов
На коммутаторе “Switch1”:
Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:1::1/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:9::1/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ipv6 address 1111::1/128
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit
На коммутаторе “Switch2”:
Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:2::1/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:9::2/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit
Шаг 4: Создание статических юникаст-маршрутов
На коммутаторе “Switch1”:
Switch(config)# ipv6 route 2001:2::/64 2001:9::2
На коммутаторе “Switch2”:
Switch(config)# ipv6 route 2001:1::/64 2001:9::1
Switch(config)#ipv6 route 1111::1/128 2001:9::1
Шаг 5: Настройка статического адреса RP
Switch(config)# ipv6 pim rp-address 1111::1
Шаг 6: Выход из режима “Global config”
Switch(config)# end
Шаг 7: Проверка
Вывод информации о RP на коммутаторе “Switch1”:
Switch# show ipv6 pim sparse-mode rp mapping
PIM Group-to-RP Mappings
Group(s): ff00::/8, Static
RP: 1111::1
Uptime: 00:03:08
Embedded RP Groups:
Switch#
Подсказка
Из выведенной информации видно, что 1111::1 является RP для всех многоадресных групп ff00::/8 и настроен статически.
Вывод интерфейса PIM на коммутаторе “Switch1”:
Switch# show ipv6 pim sparse-mode interface
Interface VIFindex Ver/ Nbr DR
Mode Count Prior
eth-0-1 0 v2/S 0 1
Address : fe80::258:3fff:fe1c:e157
Global Address: 2001:1::1
DR : this system
Holdtime : 105
eth-0-9 3 v2/S 1 1
Address : fe80::258:3fff:fe1c:e157
Global Address: 2001:9::1
DR : this system
Holdtime : 105
loopback0 2 v2/S 0 1
Address : fe80::258:3fff:fe1c:e157
Global Address: 1111::1
DR : this system
Holdtime : 105
Switch#
Вывод таблицы многоадресной IPv6-маршрутизации на коммутаторе “Switch1”:
Switch# show ipv6 pim sparse-mode mroute detail
IPv6 Multicast Routing Table
(*,*,RP) Entries: 0
(*,G) Entries: 1
(S,G) Entries: 0
(S,G,rpt) Entries: 0
FCR Entries: 0
*, ff0e::1234:5678
Type: (*,G)
Uptime: 00:01:44
RP: 1111::1, RPF nbr: None, RPF idx: None
Upstream:
State: JOINED, SPT Switch: Enabled, JT: off
Macro state: Join Desired,
Downstream:
eth-0-24:
State: JOINED, ET Expiry: 168 secs, PPT: off
Assert State: NO INFO, AT: off
Winner: ::, Metric: 4294967295, Pref: 4294967295, RPT bit: on
Macro state: Could Assert, Assert Track
Join Olist:
eth-0-9
Switch#
Вывод таблицы многоадресной IPv6-маршрутизации на коммутаторе “Switch2”:
Switch# show ipv6 pim sparse-mode mroute detail
IPv6 Multicast Routing Table
(*,*,RP) Entries: 0
(*,G) Entries: 1
(S,G) Entries: 0
(S,G,rpt) Entries: 0
FCR Entries: 0
*, ff0e::1234:5678
Type: (*,G)
Uptime: 00:04:05
RP: 1111::1, RPF nbr: fe80::258:3fff:fe1c:e157, RPF idx: eth-0-24
Upstream:
State: JOINED, SPT Switch: Enabled, JT Expiry: 57 secs
Macro state: Join Desired,
Downstream:
eth-0-1:
State: NO INFO, ET: off, PPT: off
Assert State: NO INFO, AT: off
Winner: ::, Metric: 4294967295, Pref: 4294967295, RPT bit: on
Macro state: Could Assert, Assert Track
Local Olist:
eth-0-1
Switch#
Общая настройка PIMv6-SM с динамическим RP
Статическая конфигурация RP подходит для небольшого, стабильного домена PIMv6, однако она непрактична для большой интернет-сети. В такой сети, если RP выйдет из строя, администратору сети, возможно, придется менять статические конфигурации на всех маршрутизаторах PIMv6. Другой причиной выбора динамической конфигурации является повышенный трафик маршрутизации, приводящий к смене RP.
На коммутаторе реализован механизм BSR для динамического поддержания информации о RP. Для соответствующей динамической настройки RP интерфейс loopback0 коммутатора “Switch1” и интерфейс loopback0 коммутатора “Switch2” настраиваются как кандидаты RP. интерфейс loopback0 коммутатора “Switch2” также настроен как кандидат BSR. Поскольку ни один другой маршрутизатор не был настроен как кандидат BSR, коммутатор “Switch2” становится маршрутизатором BSR и отвечает за отправку информации о сопоставлении групп и RP на все остальные маршрутизаторы в этом домене PIMv6.
В примере ниже показана настройка коммутаторов в соответствии с представленной конфигурацией сети.
В случае отсутствия конкретных указаний, настройка выполняется на обоих коммутаторах.
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Включение IPv6 и многоадресной IPv6-маршрутизации
Switch(config)# ipv6 enable
Switch(config)# ipv6 multicast-routing
Шаг 3: Настройка портов
На коммутаторе “Switch1”:
Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:1::1/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:9::1/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ipv6 address 1111::1/128
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit
На коммутаторе “Switch2”:
Switch(config)# interface eth-0-1
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:2::1/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit
Switch(config)# interface eth-0-9
Switch(config-if)# no shutdown
Switch(config-if)# no switchport
Switch(config-if)# ipv6 address 2001:9::2/64
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ipv6 address 2222::2/128
Switch(config-if)# ipv6 pim sparse-mode
Switch(config-if)# exit
Шаг 4: Создание статического юникаст-маршрута
На коммутаторе “Switch1”:
Switch(config)# ipv6 route 2001:2::/64 2001:9::2
Switch(config)#ipv6 route 2222::2/128 2001:9::2
На коммутаторе “Switch2”:
Switch(config)# ipv6 route 2001:1::/64 2001:9::1
Switch(config)#ipv6 route 1111::1/128 2001:9::1
Шаг 5: Настройка кандидата RP
На коммутаторе “Switch1”:
Switch(config)# ipv6 pim rp-candidate loopback 0 priority 192
На коммутаторе “Switch2”:
Switch(config)# ipv6 pim rp-candidate loopback 0 priority 2
Шаг 6: Настройка кандидата BSR
На коммутаторе “Switch2”:
Switch(config)# ipv6 pim bsr-candidate loopback0
Примечание
В качестве RP выбирается маршрутизатор с наивысшим приоритетом. Если два или более маршрутизаторов имеют одинаковый приоритет, для выбора RP используется хэш-функция механизма BSR, чтобы убедиться, что все маршрутизаторы в PIMv6-домене имеют один и тот же RP для одной и той же группы.
Шаг 7: Выход из режима “Global config”
Switch(config)# end
Шаг 8: Проверка
Сопоставление групп PIMv6 с RP на коммутаторе “Switch1”:
Switch# show ipv6 pim sparse-mode rp mapping
PIM Group-to-RP Mappings
Group(s): ff00::/8
RP: 2222::2
Info source: 2222::2, via bootstrap, priority 2
Uptime: 00:01:44, expires: 00:01:46
RP: 1111::1
Info source: 2222::2, via bootstrap, priority 192
Uptime: 00:01:44, expires: 00:01:46
Embedded RP Groups:
Switch#
Подсказка
Отображена информация о кандидатах RP. Для диапазона групп ff00::/8 есть два RP-кандидата.
RP-кандидат 1111::1 имеет приоритет по умолчанию 192, в то время как RP-кандидат 2222::2 настроен на приоритет 2. Поскольку RP-кандидат 2222::2 имеет более высокий приоритет, он выбран в качестве RP для многоадресной группы ff00::/8.
Вывод сведений о RP на коммутаторе “Switch2”:
Switch# show ipv6 pim sparse-mode rp-hash ff02::1234
RP: 2222::2
Info source: 2222::2, via bootstrap
I am RP!
Switch#
Подсказка
Выведенная информация подтверждает, что 2222::2 был выбран в качестве RP для многоадресной группы ff02::1234.
После того, как информация о RP достигает всех маршрутизаторов PIMv6 в домене, устройства в различных состояниях будут поддерживать все состояния маршрутизации в результате Join/Prune-сообщений.
Вывод информации об интерфейсе и таблицы многоадресной маршрутизации см. в подглаве “Общая настройка PIMv6 SM со статическим RP”.
Настройка Boostrap Router
Каждая многоадресная группа PIMv6 должна быть связана с IPv6-адресом RP. Этот адрес используется в качестве корня дерева распределения для конкретной группы, ветви которого распространяются на все узлы в домене, которые хотят получать трафик, отправляемый в группу. Чтобы данные поступали ко всем получателям, все маршрутизаторы в домене используют одинаковое сопоставление групповых адресов с адресами RP. Чтобы определить RP для многоадресной группы, маршрутизатор PIMv6 хранит коллекцию сопоставлений группы и RP, называемую RP-Set.
Механизм BSR (Bootstrap Router) для класса протоколов многоадресной маршрутизации в домене PIMv6 использует концепцию RP в качестве средства для обнаружения приемниками источников. Механизм BSR - это один из способов, с помощью которого многоадресный маршрутизатор может узнать RP-Set сопоставлений группы и RP, необходимых для его работы.
Некоторые маршрутизаторы PIMv6 в домене PIMv6 настроены как кандидаты RP (C-RP). Подмножество C-RP в конечном итоге будет использоваться в качестве фактических RP для домена. RP, настроенный с меньшим числовым значением приоритета, будет иметь более высокий приоритет.
Некоторые маршрутизаторы PIMv6 в домене настроены как кандидаты BSR (C-BSR). Один из этих C-BSR выбирается в качестве BSR для домена, и все маршрутизаторы PIMv6 в домене узнают результат этих выборов через BSM (Bootstrap messages). C-BSR с наибольшим значением в поле приоритета становится избранным BSR.
Затем C-RP сообщают о своей кандидатуре избранному BSR, который выбирает подмножество C-RP и рассылает соответствующие отображения группы на RP всем маршрутизаторам в домене через BSM.
Ниже показана настройка коммутаторов в соответствии с представленной конфигурацией сети.
В случае отсутствия конкретных указаний, настройка выполняется на обоих коммутаторах.
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Включение IPv6 и многоадресной IPv6-маршрутизации
Switch(config)# ipv6 enable
Switch(config)# ipv6 multicast-routing
Шаг 3: Настройка кандидата BSR
На коммутаторе “Switch1”:
Switch(config)# ipv6 pim bsr-candidate loopback0
На коммутаторе “Switch2”:
Switch(config)# ipv6 pim bsr-candidate loopback0 10 25
Шаг 4: Настройка кандидата RP с наивысшим приоритетом на коммутаторе “Switch2”
Switch(config)# ipv6 pim rp-candidate loopback0 priority 0
Шаг 5: Настройка порта на коммутаторе “Switch2”
Switch(config)# interface eth-0-1
Switch(config-if)# ipv6 pim dr-priority 10
Switch(config-if)# exit
Switch(config)# interface loopback 0
Switch(config-if)# ipv6 pim unicast-bsm
Switch(config-if)# exit
Шаг 6: Выход из режима “Global config”
Switch(config)# end
Шаг 7: Проверка
Вывод состояния C-BSR на коммутаторе “Switch1”:
Switch# show ipv6 pim sparse-mode bsr-router
PIM6v2 Bootstrap information
This system is the Bootstrap Router (BSR)
BSR address: 1111::1
Uptime: 00:09:59, BSR Priority: 64, Hash mask length: 126
Next bootstrap message in 00:00:01
Role: Candidate BSR
State: Elected BSR
Candidate RP: 1111::1(loopback0)
Advertisement interval 60 seconds
Next C-RP advertisement in 00:00:08
Switch#
Вывод состояния C-BSR на коммутаторе “Switch2” (начальным состоянием C-BSR является P-BSR перед переходом в C-BSR):
Switch# show ipv6 pim sparse-mode bsr-router
PIM6v2 Bootstrap information
BSR address: 1111::1
Uptime: 00:11:53, BSR Priority: 64, Hash mask length: 126
Expires: 00:01:17
Role: Candidate BSR
State: Candidate BSR
Candidate RP: 2222::2(loopback0)
Advertisement interval 60 seconds
Next C-RP advertisement in 00:00:06
Switch#
Вывод информации о RP-Set на E-BSR (Switch1):
Switch# show ipv6 pim sparse-mode rp mapping
PIM Group-to-RP Mappings
This system is the Bootstrap Router (v2)
Group(s): ff00::/8
RP: 2222::2
Info source: 2222::2, via bootstrap, priority 0
Uptime: 00:45:58, expires: 00:02:02
RP: 1111::1
Info source: 1111::1, via bootstrap, priority 192
Uptime: 00:45:58, expires: 00:02:12
Embedded RP Groups:
Switch#
Вывод информации о RP-Set на C-BSR (Switch2):
Switch# show ipv6 pim sparse-mode rp mapping
PIM Group-to-RP Mappings
Group(s): ff00::/8
RP: 2222::2
Info source: 1111::1, via bootstrap, priority 0
Uptime: 00:47:25, expires: 00:01:48
RP: 1111::1
Info source: 1111::1, via bootstrap, priority 192
Uptime: 00:47:25, expires: 00:01:48
Embedded RP Groups:
Switch#
Настройка PIMv6-SSM
PIMv6-SSM может работать с PIMv6-SM на маршрутизаторе многоадресной рассылки. По умолчанию PIMv6-SSM отключен.
Шаг 1: Вход в режим “Global config”
Switch# configure terminal
Шаг 2: Включение PIMv6-SSM
Switch(config)# ipv6 pim ssm default
Switch(config)# ipv6 pim ssm range ipv6acl
Шаг 3: Выход из режима “Global config”
Switch(config)# end