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  66 67 Все маршруты есть в нашей таблице BGP. 68 69 Сеть 130.0.0.0/24 видно на R1: 70 71  72 73 Сеть 103.0.0.0/22 видно на R4: 74 75  76 77 Пора проверить сквозной пинг c R7 (нашего клиента) в Интернет (103.0.0.1)? 78 79  80 81 Приехали. 82 Не будем долго мучить читателя и сразу посмотрим в таблицу маршрутизации, R4. 83 84  85 86 А на R7 при этом: 87 88  89 90 А? Где мои маршруты? Где все мои маршруты? R4 ничего не знает про сети Балаган-Телекома, Филькина Сертификата, Интернета, соответственно нет их и на R7. 91 92 Помните, мы выше говорили про Next-Hop? Мол, он не меняется при передаче по IBGP? 93 94 Обратите внимание на Next-Hop полученных R4 маршрутов: 95 96  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  111 112 А уж, как добраться до адреса 1.1.1.1 — мы знаем благодаря OSPF: 113 114  115 116 Как видите в таблице R7 уже появилась все интересные нам сети. 117 118  119 120 Теперь пинг успешной проходит: 121 122  123 124  125 126 > Очень простой вопрос: откуда такие гигантские задержки в трассировке? А ещё часто и такая ситуация бывает: 127 > 128 >  129 130 [Конфигурация устройств](https://docs.google.com/document/d/1Nd2qWdLNUd1WyO1Q-U3UKZu4W3LJk8BQYlACfVCjz-I/pub) 131