# Настраиваем BGP

На каждом узле нужно настроить всех соседей вручную:

**R1**

```
router bgp 64500
network 100.0.0.0 mask 255.255.254.0
neighbor 2.2.2.2 remote-as 64500
neighbor 2.2.2.2 update-source Loopback0
neighbor 3.3.3.3 remote-as 64500
neighbor 3.3.3.3 update-source Loopback0
neighbor 4.4.4.4 remote-as 64500
neighbor 4.4.4.4 update-source Loopback0
```

Команда вида **neighbor 2.2.2.2 remote-as 64500** объявляет соседа и сообщает, что он находится в AS 64500, BGP понимает, что это та же AS, в которой он сам работает и далее считает 2.2.2.2 своим IBGP-партнёром.

Команда вида **neighbor 2.2.2.2 update-source Loopback0** сообщает, что соединение будет устанавливаться с адреса интерфейса Loopback. Дело в том, что на другой стороне (на 2.2.2.2) сосед настроен, как 1.1.1.1 и именно с этого адреса ждёт все BGP-сообщения.

Такую настройку применяем на всех узлах нашей AS:

**R2**

```
router bgp 64500
network 100.0.0.0 mask 255.255.254.0
neighbor 1.1.1.1 remote-as 64500
neighbor 1.1.1.1 update-source Loopback0
neighbor 3.3.3.3 remote-as 64500
neighbor 3.3.3.3 update-source Loopback0
neighbor 4.4.4.4 remote-as 64500
neighbor 4.4.4.4 update-source Loopback0
```

**R3**

```
router bgp 64500
network 100.0.0.0 mask 255.255.254.0
neighbor 1.1.1.1 remote-as 64500
neighbor 1.1.1.1 update-source Loopback0
neighbor 2.2.2.2 remote-as 64500
neighbor 2.2.2.2 update-source Loopback0
neighbor 4.4.4.4 remote-as 64500
neighbor 4.4.4.4 update-source Loopback0
```

**R4**

```
router bgp 64500
network 100.0.0.0 mask 255.255.254.0
neighbor 1.1.1.1 remote-as 64500
neighbor 1.1.1.1 update-source Loopback0
neighbor 2.2.2.2 remote-as 64500
neighbor 2.2.2.2 update-source Loopback0
neighbor 3.3.3.3 remote-as 64500
neighbor 3.3.3.3 update-source Loopback0
```

Сейчас мы можем проверить, что отношения соседства установились благополучно

![](http://img-fotki.yandex.ru/get/9118/83739833.2f/0_c70ac_86f7c863_XL.png)

Все маршруты есть в нашей таблице BGP.

Сеть 130.0.0.0/24 видно на R1:

![](http://img-fotki.yandex.ru/get/9320/83739833.2f/0_c70ae_d3183447_XL.png)

Сеть 103.0.0.0/22 видно на R4:

![](http://img-fotki.yandex.ru/get/9165/83739833.2f/0_c70af_f10a38e1_XL.png)

Пора проверить сквозной пинг c R7 (нашего клиента) в Интернет (103.0.0.1)?

![](http://img-fotki.yandex.ru/get/6721/83739833.2f/0_c70b0_908ebe44_XL.png)

Приехали.\
Не будем долго мучить читателя и сразу посмотрим в таблицу маршрутизации, R4.

![](http://img-fotki.yandex.ru/get/9115/83739833.2f/0_c70b1_2b85bee2_XL.png)

А на R7 при этом:

![](http://img-fotki.yandex.ru/get/9352/83739833.2f/0_c70b5_9c45d017_XL.png)

А? Где мои маршруты? Где все мои маршруты? R4 ничего не знает про сети Балаган-Телекома, Филькина Сертификата, Интернета, соответственно нет их и на R7.

Помните, мы выше говорили про Next-Hop? Мол, он не меняется при передаче по IBGP?

Обратите внимание на Next-Hop полученных R4 маршрутов:

![](http://img-fotki.yandex.ru/get/9250/83739833.2f/0_c70b2_df866348_XL.png)

Несмотря на то, что они пришли на R4 от R1 и R2, адреса Next-Hop на них стоят R5 и R6 — то есть не менялись.

Это значит, что трафик в сеть 103.0.0.0/22 R4 должен отправить на адрес 101.0.0.1, ну, либо на 102.0.0.1. Где они в таблице маршрутизации? Нету их в таблице маршрутизации. Ну, и это естественно — откуда им там взяться.

Для решения этой проблемы у нас есть 3 пути:

1. Настроить статические маршруты до этих адресов — то ещё удовольствие, даже если это шлюз последней надежды.
2. Добавить эти интерфейсы (в сторону провайдеров) в домен IGP-маршрутизации. Тоже вариант, но, как известно, внешние сети не рекомендуется добавлять в IGP.
3. Менять адрес Next-Hop при передаче IBGP-соседям. Красиво и масштабируемо. А ситуации, которая нам помешает это реализовать, просто не может быть.

В итоге добавляем в BGP ещё такую команду: **neghbor 2.2.2.2 Next-Hop-self**. Для каждого соседа, на каждом узле.\
После этого мы видим следующую ситуацию,

![](http://img-fotki.yandex.ru/get/9348/83739833.2f/0_c70b3_3d1d6423_XL.png)

А уж, как добраться до адреса 1.1.1.1 — мы знаем благодаря OSPF:

![](http://img-fotki.yandex.ru/get/6722/83739833.2f/0_c70b4_dfe10b83_XL.png)

Как видите в таблице R7 уже появилась все интересные нам сети.

![](http://img-fotki.yandex.ru/get/9349/83739833.2f/0_c70b6_8ef133b9_XL.png)

Теперь пинг успешной проходит:

![](http://img-fotki.yandex.ru/get/6705/83739833.2f/0_c70b7_fb43e5e3_XL.png)

![](http://img-fotki.yandex.ru/get/6712/83739833.2f/0_c70b8_b6a5ffa4_L.png)

> Очень простой вопрос: откуда такие гигантские задержки в трассировке? А ещё часто и такая ситуация бывает:
>
> <img src="http://img-fotki.yandex.ru/get/9348/83739833.2f/0_c70b9_3536f5f2_XL.png" alt="" data-size="original">

[Конфигурация устройств](https://docs.google.com/document/d/1Nd2qWdLNUd1WyO1Q-U3UKZu4W3LJk8BQYlACfVCjz-I/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/8.1.-ibgp/1.-praktika/2.-nastraivaem-bgp.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.
