BGP Part 9. Практика.
2023.03.14. Kurapov Alexey.
BGP Part 9.
Схема сети такая же, как и раньше:
BGP Best Path Selection
Проверим какие маршруты до int Lo1 R10 знает R3 и
как с R3
ходим до префикса R10 - 100.100.100.100/32:
Т.е.
на R3 есть три пути в сторону R10, три записи, с разными next-hop, от
роутеров с Router-ID 2.2.2.2, 9.9.9.9 и 111.111.111.111. Лучшим выбран,
полученный от 9.9.9.9, с next-hop = 10.0.139.9 – best,
именно он и инсталируется в таблицу
маршрутизации, в итоге путь выглядит так – R3-R9-R6-R10.
Почему в качестве best выбран маршрут через R9?
BGP Best Path Selection – в BGP Update сообщении передается сам префикс сети и некоторые аттрибуты – они влияют на то какой Update и соответственно, маршрут будет выбран наилучшим:
Порядок
сравнения аттрибутов BGP (по
уменьшению степени значимости):
WEIGHT
1. Weight (Вес) – не передается внутри update, настроен локально на роутере, для определенных префиксов
определенного соседа:
По
умолчанию для всех префиксов, полученных
от соседей Weight = 0, а для собственных префиксов Weight = 32 768. Можно отфильтровать собственные префиксы по колонке Next Hop со
значением равным 0.0.0.0 – локальные префиксы:
Как сделать, чтобы R3 ходил до R10,
например, через R2?
Один из вариантов – изменить на самом R3 вес для данного маршрута - т.е. для маршрута через R2:
В BGP нет периодических рассылок Update сообщений, если в сети все стабильно
– роутеры не падают, маршруты не пропадают, то префиксы не пересылаются
повторно, нет флуда. Попросим R2 заново
переслать маршруты:
Как и хотели теперь R3 ходит до R10 через R2.
У
данного решения есть недостаток - нет гранулярности, т.к. не можем изменить вес только для одного
префикса 100.100.100.100/32, а меняем и для всех остальных получаемых от R2:
В итоге, например, до R8 ходим также через R2, хотя до изменения веса маршрут шел через R9:
Как
изменить вес для конкретного префикса?
Обычно используется route-map, изменим вес для определенного префикса.
Создадим
Prefix-list, затем
route-map, в
которой будем матчить по созданному prefix-list и менять для конктетных префиксов
интересующие аттрибуты, например, вес:
Создали
два prefix-list, с
помощью которых отлавливаем префиксы 88.88.88.88/32 и 100.100.100.100/32, затем
создаем две route-map, с помощью первой установим вес = 180 для маршрута до R10 через R2, с
помощью второй – для маршрута до R8 через
R1 изменим значение веса на 170.
Вешаем
route-map на BGP соседей в направлении in –
меняем аттрибуты во входящих update, для изменения направления нашего выходного трафика:
Проверим как теперь ходит R3:
Все в порядке, веса для указанных
маршрутов изменились и теперь до R8 ходим
через R1, до R10 – через R2:
Вес
удобно использовать в случае если из AS немного
точек выхода, в большой BGP AS не удобно. Т.к. требуется изменение веса
на всех роутерах AS, а
т.к. этот атрибут никуда не передается, то требуется его ручная корректировка
на каждом роутере AS,
например, в нашем случае на R1, R2 и R3.
Например, сейчас R1 ходит до R10 через R4, а R2 до R8 - через R5:

Комментарии
Отправить комментарий