Балансировка трафика в BGP: multipath, требования к маршрутам и ослабление ограничений.
Сколько маршрутов BGP устанавливает в RIB по умолчанию?
По каким атрибутам должны совпадать маршруты для multipath?
Что делает команда bgp bestpath as-path multipath-relax?
Каким флагом помечаются multipath-маршруты в выводе show ip bgp?
Поддерживает ли BGP смешанный eBGP + iBGP multipath?
Оба урока о передаче нескольких путей: multipath — о балансировке трафика по нескольким маршрутам, add-paths — о передаче множества альтернативных путей соседям для лучшей конвергенции
BGP multipath и CEF ECMP — смежные концепции: multipath добавляет несколько путей в таблицу маршрутизации, CEF выполняет балансировку нагрузки по ним
В следующем уроке мне хотелось бы с вами поговорить про балансировку маршрутов с точки зрения BGP. У BGP точно так же, как и у SPF и у EGRP, есть возможность инсталлировать несколько путей для одного и того же префикса. То есть вы можете использовать несколько некскопов, чтобы достичь одной и той же подсеть назначения. Как это делается? Посмотрим с точки зрения лабы и будем проводить анализ на муштизаторе R7 относительно префикса 3333, который нам анонсирует муштизатор R3. Давайте посмотрим, что у нас сейчас происходит на муштизаторе R7. Итак, showIP route 3333.
Обратите внимание, что муштизатор R7 сейчас выбрал маршрут через муштизатор R8. Почему? То есть муштизатор R7 использует путь вот такой. Как какой-то вот такой. Давайте посмотрим, почему. Вероятно, это связано с препендами. С препендами, которые у нас настроены еще на муштизаторе R1. Давайте их уберем. Я думаю, что нам нужно убрать вот эту раутмапу. Делать clear IPBGP на out. Сейчас с точки зрения муштизатора R7. Наилучший путь пока что все равно смуштизатор R8.
Окей. Почему смуштизатор R8 выбрать? Давайте смотреть showIPBGP. Меня интересует префик, что showIPBGP. 3 тройки. 4 тройки. Видно, что муштизатор R7 получает их от муштизатора R8. И с нехсхопами 1,4,1 и 1,2,5. Обратите внимание, что нехсхопы 1,4,1 и 1,2,5,2. Это нехсхопы муштизаторов R1 и R2. И эти префиксы, видите, они не помечены как лучшие. Давайте проверим. ShowIPBGP 3,3,3,3. Ну, в частности, потому что у нас нехсхопы стоят inaccessible. В основном говорит о том, что на муштизаторах R4 и на муштизаторе R5 у меня не проставлены нехсхопы. Селф. Раутер. Раутер. Раутер.
Раутер. Раутер. ,. Раутер. Раутер. Раутер. Раутер. nameブr. 7,7,7,7. Раутер. В myself. coulue. То же самое сделаем на Kathyapps Erbit. На корюха R5. Раутер. Останом. Запросим обновление. запросим обновление теперь эти маршруты валидны на теперь эти маршруты валидны и наилучшим наилучшим был выбран маршрут через маршрутизатор r4 а почему он был выбран то есть почему не r5 обратите внимание
что local preference у нас одинаковый вес одинаковый длина аэс пути там и там одна автономная система origin type одинаковые и там и там это и gp метод везде одинаковый далее и там и там это айби gp сессия административной дистанции одинаково ну и в дело здесь вступает насколько я понимаю просто роутер айди клиента от которого мы получили в частности здесь сравнивать уже раутер айди 4 4 4 и 5 5 5 на поскольку 4 4 4 меньше чем 5 5 5 на то то выигрывать маршрут с наименьшим ридом но по сути эти два префикса они полностью идентичны так вот бит же пи может заинсталлировать несколько маршрутов в рип таблицу если выполнены следующие слои
первое одинаковые local preference второе здесь очень важно одинаковые аэспасы то есть они не равной длины а одинаковые в плане аэспасы аэспасы то есть они не равной длины а одинаковые в плане наполнения в плане того что зашито внутри аэспасы третье да должен совпадать оригин тайп и четвертое должен совпадать нет так вот если вот эти условия выполнены то префикс может быть помечен как кандидат на мультипасинг по умолчанию по умолчанию а количество мультипас маршрутов которые бит же пи устанавливает в рип таблицу оно равно единице
то есть но мы можем увеличить это число дав команду бит же пи команда максимум пас команда максимум пас далее вы можете включить мультипатинг либо только для а лиджи пи только для обиджи пи либо вы можете интерпретировать и и биджи пи и ай биджи пи то есть а маршруты которые получен от и биджи пи соседа и которые получены от ай биджи пи соседа они могут быть одновременно установлены в таблице мультизации
аспортизации. Это становится доступным только благодаря тому, что в нашем алгоритме по факту не проверяется от какого соседа мы получили апдейт. То есть по IBGP сессии или по IBGP сессии. Давайте в нашем случае мы можем использовать команду IBGP и количество путей. Давайте возьмем, например, количество 4. Что сейчас получается? Show IBGP. Обратите внимание, для префикса 3333 один путь выбран лучшим через NXHOP мунициатора R4, как и было ранее. А при этом маршрут, который был получен от мунициатора R5, он теперь помечен буковкой M, что говорит нам о том, что это мультипасс. Show IBGP 3333. GP3333. Мультипасс. Если мы теперь посмотрим Show IB Route 333333, то мы увидим
собственно говоря, два NXHOP. NXHOP мунициатор R5 и NXHOP мунициатор R4. Обратите внимание, что я вам сказал, что ASPath обязательно должен быть одинаковым. Обязательно должен быть одинаковым. Давайте настроим следующий сценарий. на мунициаторе R1. в сторону мунициатора R4 сделаем prepend. И, например, prepend добавим в автономную систему номер 100. От R2 в сторону R5 добавим prepend в автономную систему номер 200. Таким образом, на мунициатор R7 потом придут два апдейта,
у которых ASPath будет в первом случае состоять из 123 и 100. Во втором случае ASPath должен состоять из 123 и 200. То есть длина ASPath останется одинаковой, что в первом случае, что во втором. Но, тем не менее, давайте попробуем. Так, мне сейчас потребуется мунициатор R1. Мунициатор R1. Doshow run section route map. Так, у меня уже есть раутмапа R6 мне нужна раутмапа R4 out. Раутмап R4 out перемен 10
скажем set ASPath prepend Давайте выставим 100. 100. 100. и на мунициаторе R2 и на мунициаторе R2 set ASPath prepend 200. 200. Окей. Теперь говорим раутер BGP 1, 2, 3 neighbor 10 2, 5, 5 раутмапа в направлении out и то же самое нам уже за 3 R1 раутер BGP 1, 2, 3 neighbor neighbor 10 1, 4, 4
раутмапа направлении out и сделаем clear IP BGP out на R1 и clear IP BGP out на марш R2 проверяем на марш затор R7 show IPBGP 3, 3, 3, 3 так пока есть только от марш затор R4 но как вы видите почему-то size passive 6, 23 так видимо что-то где-то пошло не так show
run show run section BGP да то есть у меня есть раутмапа R1 show run show run route map show route map надо доставляем аэс препенден и на раутмапе R2 show run section BGP в сторону R5 применялась раутмапа на с раутмапа окей давайте посмотрим на муше театре R4 show IPBGP 3333 3333 3333 3333 как вы видите мурцизатор R4
получает один и тот же апдейт но видите проблема только в том, что он его получает еще от мурцизатора R6 видите да это мурцизатор R6 и выбирает его лучшим потому что в мурцизатор R6 приходит более короткий AS пасс короткий AS пасс что мы можем сделать мы можем например сделать дополнительный препенд на R1 в сторону R6 либо на R4 давайте мы просто повесим вес скажем скажем раутер BGP 4 5 7 8 neighbor 10 1 4 1 вес 500 земклера IPBGP тогда
тогда лучшим у нас теперь выбирается маршрут от мурцизатора R1 здесь так и задумано далее на мурцизаторе R5 что получается на мурцизаторе R5 лучшим выбирается маршрут от мурцизатора R2 естественно на мурцизаторе R7 у нас теперь должно быть два префикса у нас есть даже три префикса теперь обратите внимание у нас есть префикс от маршрутизатора R8 с длиной айспаса 9.6.123 то есть у нас получилась даже такая вещь что один префикс прилетает вот такой вот путь естественно здесь айспас получается 9.6.123 и естественно ну если он долетает вот сюда второй префикс вот здесь
и третий префикс вот здесь причем у них у всех как вы видите будет одинаковый айспас я имею ввиду с точки зрения длины одинаково но обратите внимание что только один из них выбран наилучшим хотя хотя у нас настроен бджп мультипасинг опять же все это происходит из-за того что набор аэсок в аэспасе он отличается он отличается что мы можем сделать мы можем сделать так чтобы при подсчете мультипасинга для бджп не учитывались составляющие атрибута аэспаса то есть чтобы учитывалась его длина но не проверялось как наполнение этих аэсок для этого в циск иос есть скрытая команда
она не высвечивается по хелпу и звучит следующим образом бджп бест пас далее аэспас мультипас релакс возможно она пишется через тире да как видите ее нету вы ее не увидите по хелпу но она есть что она позволяет сделать что она позволяет сделать show ip бджп а в рейте мая что теперь у меня все три маршрута помечены как префиксы мультипас да да да да да да благодаря тому что глобально в режиме глобальной конфигурации бгп мы ввели скрытую команду бджп баспас аэспас мультипас релакс теперь мультипас не проверяет наполнение аэспаса он проверяет только его длину
поскольку и там и там длина равна трем то проверка аэспаса проходит успешно метрика везде одинаковая видите она и там и там 0 а оригин тайп везде одинаковый локал преференс везде одинаковый да соответственно максимум пас команда у нас включена поэтому мы все маршруты спокойно себя инсталируем в качестве мультипаса мультипаса если я теперь скажу show ip route 3333 то вы увидите три маршрута которые заинсталированы в таблице мультипаса но в первую часть аэспаса да аэспаса то аэспаса да аэп и и и и и и и
и и и и и и и