> For the complete documentation index, see [llms.txt](https://linkmeup.gitbook.io/sdsm/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://linkmeup.gitbook.io/sdsm/9.-multicast/2.-pim/2.-razbiraemsya-s-pim.md).

# Чтобы разобраться с тем, что такое PIM, обратимся к сети гораздо более сложной

![PIM SM RP](http://img-fotki.yandex.ru/get/9820/83739833.37/0_da30b_7fe598c3_XXL.png)

Предположим, что уже настроены все IP-адреса в соответствии со схемой. На сети запущен IGP для обычной юникастовой маршрутизации.\
\&#xNAN;*Клиент1*, например, может пинговать Сервер-источник.

![](http://img-fotki.yandex.ru/get/6729/83739833.37/0_da30c_f76d7a97_XL.png)

Но пока не запущен PIM, IGMP, клиенты не запрашивают каналы.

[Файл начальной конфигурации](https://docs.google.com/document/d/1rtrifoyP4mwjnbVug8zW-nL0g5qm1405IaWpbasusog/pub).

Итак, момент времени 0.

Включаем мультикастовую маршрутизацию на всех пяти маршрутизаторах:

```
RX(config)#ip multicast-routing
```

PIM включается непосредственно на всех интерфейсах всех маршрутизаторов (в том числе на интерфейсе в сторону Сервера-источника и клиентов):

```
RX(config)#int FEX/X
RX(config-if)#ip pim sparse-mode
```

> IGMP, по идее должен включаться на интерфейсах в сторону клиентов, но, как мы уже отметили выше, на оборудовании Cisco он включается автоматически вместе с PIM.

Первое, что делает PIM — устанавливает соседство. Для этого используются сообщения **PIM Hello**. При активации PIM на интерфейсе с него отправляется PIM Hello на адрес **224.0.0.13** с TTL равным 1. Это означает, что соседями могут быть только маршрутизаторы, находящиеся в одном широковещательном домене.

![PIM Hello](http://img-fotki.yandex.ru/get/6727/83739833.37/0_da30a_5acf69cf_XXL.png)

Как только соседи получили приветствия друг от друга:

![show ip pim neighbor](http://img-fotki.yandex.ru/get/9740/83739833.37/0_da30d_479d34e1_XL.png)

Теперь они готовы принимать заявки на мультикастовые группы.

Если мы сейчас запустим в вольер клиентов с одной стороны и включим мультикастовый поток с сервера с другой, то R1 получит поток трафика, а R4 получит IGMP Report при попытке клиента подключиться. В итоге R1 не будет знать ничего о получателях, а R4 об источнике.

![show ip mroute](http://img-fotki.yandex.ru/get/9740/83739833.37/0_da30e_90dc2ddd_XL.png)

![show ip mroute](http://img-fotki.yandex.ru/get/9812/83739833.37/0_da30f_1c687d52_XL.png)

Неплохо было бы если бы информация об источнике и о клиентах группы была собрана где-то в одном месте. Но в каком?

Такая точка встречи называется **Rendezvous Point — RP**. Это центральное понятие PIM SM. Без неё ничего бы не работало. Здесь встречаются источник и получатели.\
Все PIM-маршрутизаторы должны знать, кто является RP в домене, то есть знать её IP-адрес.

Чтобы построить дерево MDT, в сети выбирается в качестве RP некая центральная точка, которая,

1. отвечает за изучение источника,
2. является точкой притяжения сообщений Join от всех заинтересованных.

Существует два способа задания RP: статический и динамический. Мы рассмотрим оба в этой статье, но начнём со статического, поскольку чего уж проще статики?

Пусть пока R2 будет выполнять роль RP.\
Чтобы увеличить надёжность, обычно выбирается адрес Loopback-интерфейса. Поэтому **на всех** маршрутизаторах выполняется команда:

```
RX(config)#ip pim rp-address 2.2.2.2
```

Естественно, этот адрес должен быть доступен по таблице маршрутизации со всех точек.\
Ну и поскольку адрес 2.2.2.2 является RP, на интерфейсе *Loopback 0* на R2 желательно тоже активировать PIM.

```
R2(config)#interface Loopback 0
RX(config-if)#ip pim sparse-mode
```

Сразу после этого R4 узнает об источнике трафика для группы 224.2.2.4:

![](http://img-fotki.yandex.ru/get/9740/83739833.37/0_da310_9c1b38c7_XL.png)

и даже передаёт трафик:

![show interface summary](http://img-fotki.yandex.ru/get/9932/83739833.37/0_da311_5228d502_XL.png)

На интерфейс FE0/1 приходит 362000 б/с, и через интерфейс FE0/0 они передаются.

Всё, что мы сделали:\
Включили возможность маршрутизации мультикастового трафика (**ip multicast-routing**)\
Активировали PIM на интерфейсах (**ip pim sparse-mode**)\
Указали адрес RP (**ip pim rp-adress** ***X.X.X.X***)

Всё, это уже рабочая конфигурация и можно приступать к разбору, ведь за кулисами скрывается гораздо больше, чем видно на сцене.\
[Полная конфигурация с PIM.](https://docs.google.com/document/d/1Dwi4wO6B_VGhxapE4dqfBacT4_N3tNRU-Q9JFoiaEj0/pub)
