Настраиваем BGP
На каждом узле нужно настроить всех соседей вручную:
R1
Команда вида 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
R3
R4
Сейчас мы можем проверить, что отношения соседства установились благополучно
Все маршруты есть в нашей таблице BGP.
Сеть 130.0.0.0/24 видно на R1:
Сеть 103.0.0.0/22 видно на R4:
Пора проверить сквозной пинг c R7 (нашего клиента) в Интернет (103.0.0.1)?
Приехали. Не будем долго мучить читателя и сразу посмотрим в таблицу маршрутизации, R4.
А на R7 при этом:
А? Где мои маршруты? Где все мои маршруты? R4 ничего не знает про сети Балаган-Телекома, Филькина Сертификата, Интернета, соответственно нет их и на R7.
Помните, мы выше говорили про Next-Hop? Мол, он не меняется при передаче по IBGP?
Обратите внимание на Next-Hop полученных R4 маршрутов:
Несмотря на то, что они пришли на R4 от R1 и R2, адреса Next-Hop на них стоят R5 и R6 — то есть не менялись.
Это значит, что трафик в сеть 103.0.0.0/22 R4 должен отправить на адрес 101.0.0.1, ну, либо на 102.0.0.1. Где они в таблице маршрутизации? Нету их в таблице маршрутизации. Ну, и это естественно — откуда им там взяться.
Для решения этой проблемы у нас есть 3 пути:
Настроить статические маршруты до этих адресов — то ещё удовольствие, даже если это шлюз последней надежды.
Добавить эти интерфейсы (в сторону провайдеров) в домен IGP-маршрутизации. Тоже вариант, но, как известно, внешние сети не рекомендуется добавлять в IGP.
Менять адрес Next-Hop при передаче IBGP-соседям. Красиво и масштабируемо. А ситуации, которая нам помешает это реализовать, просто не может быть.
В итоге добавляем в BGP ещё такую команду: neghbor 2.2.2.2 Next-Hop-self. Для каждого соседа, на каждом узле. После этого мы видим следующую ситуацию,
А уж, как добраться до адреса 1.1.1.1 — мы знаем благодаря OSPF:
Как видите в таблице R7 уже появилась все интересные нам сети.
Теперь пинг успешной проходит:
Очень простой вопрос: откуда такие гигантские задержки в трассировке? А ещё часто и такая ситуация бывает:
Last updated