/ 8.1.-ibgp / 1.-praktika / 1.-ibgp / 2.-nastraivaem-bgp.md
2.-nastraivaem-bgp.md
  1  # Настраиваем BGP
  2  
  3  На каждом узле нужно настроить всех соседей вручную:  
  4  
  5  **R1**  
  6  
  7  ```text
  8  router bgp 64500
  9  network 100.0.0.0 mask 255.255.254.0
 10  neighbor 2.2.2.2 remote-as 64500
 11  neighbor 2.2.2.2 update-source Loopback0
 12  neighbor 3.3.3.3 remote-as 64500
 13  neighbor 3.3.3.3 update-source Loopback0
 14  neighbor 4.4.4.4 remote-as 64500
 15  neighbor 4.4.4.4 update-source Loopback0
 16  ```
 17  
 18  Команда вида **neighbor 2.2.2.2 remote-as 64500** объявляет соседа и сообщает, что он находится в AS 64500, BGP понимает, что это та же AS, в которой он сам работает и далее считает 2.2.2.2 своим IBGP-партнёром.  
 19  
 20  Команда вида **neighbor 2.2.2.2 update-source Loopback0** сообщает, что соединение будет устанавливаться с адреса интерфейса Loopback. Дело в том, что на другой стороне (на 2.2.2.2) сосед настроен, как 1.1.1.1 и именно с этого адреса ждёт все BGP-сообщения.  
 21  
 22  Такую настройку применяем на всех узлах нашей AS:  
 23  
 24  **R2**  
 25  
 26  ```text
 27  router bgp 64500
 28  network 100.0.0.0 mask 255.255.254.0
 29  neighbor 1.1.1.1 remote-as 64500
 30  neighbor 1.1.1.1 update-source Loopback0
 31  neighbor 3.3.3.3 remote-as 64500
 32  neighbor 3.3.3.3 update-source Loopback0
 33  neighbor 4.4.4.4 remote-as 64500
 34  neighbor 4.4.4.4 update-source Loopback0
 35  ```
 36  
 37  **R3**  
 38  
 39  ```text
 40  router bgp 64500
 41  network 100.0.0.0 mask 255.255.254.0
 42  neighbor 1.1.1.1 remote-as 64500
 43  neighbor 1.1.1.1 update-source Loopback0
 44  neighbor 2.2.2.2 remote-as 64500
 45  neighbor 2.2.2.2 update-source Loopback0
 46  neighbor 4.4.4.4 remote-as 64500
 47  neighbor 4.4.4.4 update-source Loopback0
 48  ```
 49  
 50  **R4**  
 51  
 52  ```text
 53  router bgp 64500
 54  network 100.0.0.0 mask 255.255.254.0
 55  neighbor 1.1.1.1 remote-as 64500
 56  neighbor 1.1.1.1 update-source Loopback0
 57  neighbor 2.2.2.2 remote-as 64500
 58  neighbor 2.2.2.2 update-source Loopback0
 59  neighbor 3.3.3.3 remote-as 64500
 60  neighbor 3.3.3.3 update-source Loopback0
 61  ```
 62  
 63  Сейчас мы можем проверить, что отношения соседства установились благополучно  
 64  
 65  ![](http://img-fotki.yandex.ru/get/9118/83739833.2f/0_c70ac_86f7c863_XL.png)  
 66  
 67  Все маршруты есть в нашей таблице BGP.  
 68  
 69  Сеть 130.0.0.0/24 видно на R1:  
 70  
 71  ![](http://img-fotki.yandex.ru/get/9320/83739833.2f/0_c70ae_d3183447_XL.png)  
 72  
 73  Сеть 103.0.0.0/22 видно на R4:  
 74  
 75  ![](http://img-fotki.yandex.ru/get/9165/83739833.2f/0_c70af_f10a38e1_XL.png)  
 76  
 77  Пора проверить сквозной пинг c R7 (нашего клиента) в Интернет (103.0.0.1)?  
 78  
 79  ![](http://img-fotki.yandex.ru/get/6721/83739833.2f/0_c70b0_908ebe44_XL.png)  
 80  
 81  Приехали.  
 82  Не будем долго мучить читателя и сразу посмотрим в таблицу маршрутизации, R4.  
 83  
 84  ![](http://img-fotki.yandex.ru/get/9115/83739833.2f/0_c70b1_2b85bee2_XL.png)  
 85  
 86  А на R7 при этом:  
 87  
 88  ![](http://img-fotki.yandex.ru/get/9352/83739833.2f/0_c70b5_9c45d017_XL.png)  
 89  
 90  А? Где мои маршруты? Где все мои маршруты? R4 ничего не знает про сети Балаган-Телекома, Филькина Сертификата, Интернета, соответственно нет их и на R7.  
 91  
 92  Помните, мы выше говорили про Next-Hop? Мол, он не меняется при передаче по IBGP?  
 93  
 94  Обратите внимание на Next-Hop полученных R4 маршрутов:  
 95  
 96  ![](http://img-fotki.yandex.ru/get/9250/83739833.2f/0_c70b2_df866348_XL.png)  
 97  
 98  Несмотря на то, что они пришли на R4 от R1 и R2, адреса Next-Hop на них стоят R5 и R6 — то есть не менялись.  
 99  
100  Это значит, что трафик в сеть 103.0.0.0/22 R4 должен отправить на адрес 101.0.0.1, ну, либо на 102.0.0.1\. Где они в таблице маршрутизации? Нету их в таблице маршрутизации. Ну, и это естественно — откуда им там взяться.  
101  
102  Для решения этой проблемы у нас есть 3 пути:  
103  1) Настроить статические маршруты до этих адресов — то ещё удовольствие, даже если это шлюз последней надежды.  
104  2) Добавить эти интерфейсы (в сторону провайдеров) в домен IGP-маршрутизации. Тоже вариант, но, как известно, внешние сети не рекомендуется добавлять в IGP.  
105  3) Менять адрес Next-Hop при передаче IBGP-соседям. Красиво и масштабируемо. А ситуации, которая нам помешает это реализовать, просто не может быть.  
106  
107  В итоге добавляем в BGP ещё такую команду: **neghbor 2.2.2.2 Next-Hop-self**. Для каждого соседа, на каждом узле.  
108  После этого мы видим следующую ситуацию,  
109  
110  ![](http://img-fotki.yandex.ru/get/9348/83739833.2f/0_c70b3_3d1d6423_XL.png)  
111  
112  А уж, как добраться до адреса 1.1.1.1 — мы знаем благодаря OSPF:  
113  
114  ![](http://img-fotki.yandex.ru/get/6722/83739833.2f/0_c70b4_dfe10b83_XL.png)  
115  
116  Как видите в таблице R7 уже появилась все интересные нам сети.  
117  
118  ![](http://img-fotki.yandex.ru/get/9349/83739833.2f/0_c70b6_8ef133b9_XL.png)  
119  
120  Теперь пинг успешной проходит:  
121  
122  ![](http://img-fotki.yandex.ru/get/6705/83739833.2f/0_c70b7_fb43e5e3_XL.png)  
123  
124  ![](http://img-fotki.yandex.ru/get/6712/83739833.2f/0_c70b8_b6a5ffa4_L.png)  
125  
126  > Очень простой вопрос: откуда такие гигантские задержки в трассировке? А ещё часто и такая ситуация бывает:  
127  >   
128  > ![](http://img-fotki.yandex.ru/get/9348/83739833.2f/0_c70b9_3536f5f2_XL.png)
129  
130  [Конфигурация устройств](https://docs.google.com/document/d/1Nd2qWdLNUd1WyO1Q-U3UKZu4W3LJk8BQYlACfVCjz-I/pub)  
131