6.4. Настройка PIM-DM

Назначение

Protocol Independent Multicasting-Dense Mode (PIM-DM) - это протокол многоадресной маршрутизации, предназначенный для эффективной работы в глобальных сетях (WAN) с плотно распределенными группами. Он помогает географически разнесенным узлам сети экономить полосу пропускания и снижает трафик за счет одновременной доставки одного потока информации в несколько мест.

Описание

PIM-DM предполагает, что когда источник начинает отправку, все узлы сети получают мультикаст-пакеты.

PIM-DM использует RPF для предотвращения шторма мультикаст-пакетов в случае возникновения зацикливания. Если в некоторых областях сети нет членов группы, PIM-DM отключает ветвь пересылки, устанавливая состояние “Prune”. Состояние “Prune” имеет ограниченное время жизни. По истечении этого срока данные снова будут пересылаться по ранее отключенной ветви. Когда в отключенной области появляется новый член группы, она вновь становится пересылочной.

Реализация PIM-DM на коммутаторе основана на IETF RFC 3973.

Настройка

PIM-DM - это протокол с динамическим состоянием. Основное требование - включить PIM-DM на нужных интерфейсах.

Все состояния мультикаст-групп поддерживаются динамически посредством сообщений “IGMP Report”, “IGMP Leave” и PIM.

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

image

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

В данном примере поток многоадресных данных поступает на порт “eth-0-1” коммутатора “Switch1”, сетевой узел-потребитель подключен к “eth-0-1” коммутатора “Switch2”.

В случае отсутствия конкретных указаний, настройка выполняется на обоих коммутаторах.

Шаг 1: Вход в режим “Global config”

Switch# configure terminal

Шаг 2: Настройка порта, включение PIM-DM

На коммутаторе “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 dense-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 dense-mode
Switch1(config-if)# exit

На коммутаторе “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 dense-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 dense-mode
Switch2(config-if)# exit

Шаг 3: Создание статических маршрутов

На коммутаторе “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

Шаг 4: Выход из режима “Global config”

 Switch(config)# end

Шаг 5: Проверка

Вывод информации о интерфейсе PIM-DM на коммутаторе “Switch1”:

Switch1# show ip pim dense-mode interface 
Address          Interface VIFIndex Ver/   Nbr
                                    Mode   Count
11.1.1.1         eth-0-1   0        v2/D   0     
12.1.1.1         eth-0-9   1        v2/D   1

Вывод информации о PIM-DM-соседях на коммутаторе "Switch1":

```console
Switch1# show ip pim dense -mode neighbor
Neighbor-Address Interface          Uptime/Expires    Ver
12.1.1.2         eth-0-9            00:01:00/00:01:44 v2

Вывод таблицы многоадресной IP-маршрутизации на коммутаторе “Switch1”:

Switch1# show ip pim dense-mode mroute 
PIM-DM Multicast Routing Table
(11.1.1.2, 225.1.1.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

Вывод таблицы многоадресной IP-маршрутизации на коммутаторе “Switch2”:

Switch2# show ip pim dense-mode mroute 
PIM-DM Multicast Routing Table
(11.1.1.2, 225.1.1.1)
  RPF Neighbor: none
  Upstream IF: eth-0-9
    Upstream State: AckPending
    Assert State: NoInfo
  Downstream IF List:
    eth-0-1, in 'olist':
      Downstream State: NoInfo
      Assert State: NoInfo