# Настраиваем 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)
