# Чтобы разобраться с тем, что такое 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)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://linkmeup.gitbook.io/sdsm/9.-multicast/2.-pim/2.-razbiraemsya-s-pim.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
