Multicast. PIM Dense-mode. Конспект.

PIM — протокол маршрутизации мультикаст-трафика на L3. Существует два режима — Dense и Sparse. Основным является Sparse.
224.0.0.13 — адрес для PIM Hello.
RPF — Reverse-path Forwarding

rpf2

Когда мультикаст-пакет приходит на R2, он смотрит, где находится 10.1.1.1 и видит, что сервер находится за Eth0/1.12, на который же и пришел мультикаст-трафик. Значит этот маршрутизатор будет принимать мультикаст от этого сервера только на этот интерфейс. Далее R2 отправляет пакет дальше на R3. R3 смотрит, где 10.1.1.1 и видит, что тот не за этим интерфейсом, на который пришел пакет, вследствие этого он его отбрасывает. Таким образом строится multicast-дерево. Всё это приводит к отсутствию лишнего флудинга и мультикаст-шторма.

Prune
Сообщение, посланное маршрутизатором с включенным PIM, говорящее о том, что не стоит флудить мультикаст для группы на данный интерфейс.
В случае, рассмотренном выше, R2 и R3 обменяются Prune-сообщениями и «запрунят» интерфейсы, которые смотрят друг на друга.
prune

R2#sh ip mroute

 Timers: Uptime/Expires
 Interface state: Interface, Next-Hop or VCD, State/Mode
(*, 239.1.1.1), 02:48:47/stopped, RP 0.0.0.0, flags: DC
 Incoming interface: Null, RPF nbr 0.0.0.0
 Outgoing interface list:
 Ethernet0/1.23, Forward/Dense, 02:44:21/stopped
 Ethernet0/1.12, Forward/Dense, 02:48:47/stopped
 Ethernet0/1.25, Forward/Dense, 02:48:47/stopped
 
(155.1.14.4, 239.1.1.1), 00:00:05/00:02:54, flags: T
 Incoming interface: Ethernet0/1.12, RPF nbr 155.1.12.1
 Outgoing interface list:
 Ethernet0/1.25, Forward/Dense, 00:00:05/stopped
 Ethernet0/1.23, Prune/Dense, 00:00:05/00:02:54

Graft
graft
Это сообщение можно рассматривать, как Unprune. При добавлении хоста в группу не придется ждать окончания таймера Prune, R3 отправит Graft-сообщение R2 и R2 будет передавать трафик, распрунит интерфейс. Этим и отличается PIMv1 от PIMv2.

Prune override
Тип сообщения, которое отсылает маршрутизатор в ответ на пришедшее от соседнего маршрутизатора сообщение Prune. На схеме видно, как R3 отсылает R1 Prune Override, чтобы R1 не поставил интерфейс в Prune.

Prune_Override

Assert
Трафик к хосту придет с двух сторон. Необходимо, чтобы только один из маршрутизаторов передавали трафик в сторону хоста. В данном случае высылается PIM Assert, выигрывает тот маршрутизатор, административная дистанция которого до сервера меньше. Например, у одного OSPF, у другого EIGRP. Выиграет тот, у которого EIGRP. Другой маршрутизатор подавляет интерфейс в сторону хоста. Если AD одинакова, то выигрывает наивысший IP.

Assert

В режиме Dense маршрутизатор не сообщает другие соседям о подписчиках. Это ключевое отличие от режима Sparse.

Cовет по траблшутингу:
1) Смотрим включен ли PIM, установлено ли PIM-соседство
2) Включен ли ip multicast-routing
3) Есть ли IP связанность.
4) Есть ли access-list

debug ip mfib pak