14.5. Настройка PIMv6-DM
Назначение
Протокол PIMv6-DM (Protocol Independent Ipv6 Multicasting Dense Mode) - это протокол многоадресной маршрутизации, предназначенный для эффективной работы в глобальных сетях (WAN) с плотно распределенными группами. Он помогает географически разнесенным узлам сети экономить полосу пропускания и снижает трафик за счет одновременной доставки одного потока информации в несколько мест.
Описание
PIMv6-DM предполагает, что когда источник передает многоадресный трафик, он поступает ко всем возможным получателям. PIMv6-DM использует RPF для предотвращения сетевых штормов. Если в области сети нет членов группы, PIMv6-DM отключает ветвь пересылки, отправляя соседям сообщение “Prune”.
После получения сообщения Prune запускается таймер, в течении которого маршрутизатор не пересылает мультикаст-трафик. По истечении таймера данные снова будут пересылаться по ранее отключенной ветви. Данный таймер можно настроить при помощи команды ipv6 pim jp-timer
.
Отключенная ветвь может быть вновь включена после появления в ней нового члена группы.
Реализация PIMv6-DM на коммутаторе соответствует RFC 3973.
Настройка
PIMv6-DM - это протокол с динамическим состоянием. Для его включения необходимо активировать его на нужных интерфейсах. Все состояния многоадресных групп поддерживаются динамически в результате сообщений “MLD Report/Leave” и сообщений PIMv6.
В данном примере показана настройка коммутаторов в соответствии с представленной конфигурацией сети.

Поток многоадресных данных поступает на порт “eth-0-1” коммутатора “Switch1”, устройство “host” подключено к порту “eth-0-1” коммутатора “Switch2”.
В случае отсутствия конкретных указаний, настройка выполняется на обоих коммутаторах.
Шаг 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 dense-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:2::1/64
Switch(config-if)# ipv6 pim dense-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:3::1/64
Switch(config-if)# ipv6 pim dense-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:2::2/64
Switch(config-if)# ipv6 pim dense-mode
Switch(config-if)# exit
Шаг 4: Создание статических юникаст-маршрутов
На коммутаторе “Switch1”:
Switch(config)# ipv6 route 2001:3::/64 2001:2::2
На коммутаторе “Switch2”:
Switch(config)# ipv6 route 2001:1::/64 2001:2::1
Шаг 5: Выход из режима “Global config”
Switch(config)# end
Шаг 6: Проверка
Вывод информации об интерфейсе на коммутаторе “Switch1”:
Switch# show ipv6 pim dense-mode interface
Neighbor Address Interface VIFIndex Ver/ Nbr
Mode Count
fe80::326f:c9ff:fef2:8200 eth-0-1 0 v2/D 0
fe80::326f:c9ff:fef2:8200 eth-0-9 2 v2/D 1
Вывод информации о соседних устройствах на коммутаторе “Switch1”:
Switch# show ipv6 pim sparse-mode neighbor
Neighbor Address Interface Uptime/Expires Ver
fe80::ce47:6eff:feb7:1400 eth-0-9 00:51:51/00:01:24 v2
Вывод таблицы многоадресной маршрутизации на коммутаторе “Switch1”:
Switch# show ipv6 pim dense-mode mroute
PIM-DM Multicast Routing Table
(2001:1::2, ff0e::1)
Source directly connected on eth-0-1
State-Refresh Originator State: Originator
Upstream IF: eth-0-1
Upstream State: Forwarding
Assert State: NoInfo
Downstream IF List:
eth-0-9, in 'olist':
Downstream State: NoInfo
Assert State: NoInfo
Вывод таблицы многоадресной маршрутизации на коммутаторе “Switch2”:
Switch# show ipv6 pim dense-mode mroute
PIM-DM Multicast Routing Table
(2001:1::2, ff0e::1)
RPF Neighbor: none
Upstream IF: eth-0-9
Upstream State: AckPending
Assert State: Loser
Downstream IF List:
eth-0-1, in 'olist':
Downstream State: NoInfo
Assert State: NoInfo