Механизм AS-PATH Prepend для влияния на входящий трафик: принцип работы и ограничения.
На какой тип трафика влияет AS-PATH Prepend?
Чей номер AS допустимо указывать в prepend?
Почему AS-PATH Prepend не гарантирует желаемый результат?
В каком направлении настраивается AS-PATH Prepend?
Какие атрибуты управляют исходящим трафиком, а какой — попытка управления входящим?
bgp-attribute-cisco в cisco-route-2-1 разбирает настройку BGP-атрибутов на Cisco IOS, включая AS-path prepend — практическая реализация теории из bps-as-prepend
AS-path prepend и Local Preference — два разных механизма BGP Best Path Selection для управления входящим и исходящим трафиком соответственно
Следующим атрибутом после проверки local preference для определения наилучшего BGPBT является атрибут IS-Path. Напрямую на IS-Path воздействовать нельзя. Например, вы не можете удалять какие-то номера автономных систем из IS-Path при высылании, при генерации апдейта в сторону IBGP соседа. Почему? Потому что это может нарушить алгоритм BGP-Lup Prevention, поэтому B-CISCO не позволяет такие вещи делать. Но что она позволяет делать, это добавлять номера автономных систем внутрь IS-Path. Добавлять номера автономных можно только при IBGP-сессиях. И с помощью этого вы можете попробовать определять более приоритетные входящие каналы.
То есть, если с помощью веса и с помощью local preference мы с вами определяли, по какому линку, по какому каналу связи трафик будет покидать нашу с вами автономную систему, то с помощью удлинения IS-Path вы можете контролировать, ну, скажем так, пытаться контролировать входящий канал связи для вашей автономной системы. Как это работает? Обратите внимание, на марштизаторе R3 мы объявляем локальный префикс 3333. Он лежит за марштизатором R3. Например, мы хотим, чтобы трафик, скажем, от марштизатора R6, чтобы трафик в нашу автономную систему не проходил через стык, скажем, R6-R1,
чтобы вот здесь трафика не было. Мы, например, хотим, чтобы трафик всегда бегал, ну, например, вот так. Да? Вот так. Либо же мы можем даже захотеть, чтобы трафик бегал, например, вот так. Давайте попробуем. Давайте попробуем. Итак, для начала нужно понять, какой путь выберет марштизатор R6 для префикса 4.3. Смотрим. Show IPBGP 3333. Ну, и здесь ожидаемо, что наилучший путь, да, это путь через марштизатор R1. Кстати, Show IPBGP Summary. Из меня здесь, кстати, нет пиринга пока что. Давайте сделаем router BGP 6. Neighbor 10.4.6.4. Remote IS 4.5.7.8.
И также поднимем префик здесь. Neighbor 10.4.6.6. Remote IS 6. Route BGP 4.5.7.8. Дождемся поднятия соседства. Ping 10.4.6.4. Так, у меня нету connectivity на самом деле. Нам сотрет 4. Show IPBGP. Бриф. 10.4.6.4. Здесь в API. Show IPBGP. Бриф. А здесь 10.4.6.6. Show IPBP. Show IPBP. Show IPBP. G2.46.
Вилана 46. На четвертом. А, на четвертом, видите, я ошибся. Номером. Номером Виланы. Теперь у нас, по идее, все должно будет заработать. Да. Neighbor is up. Neighbor is up. Show IPBGP. Show IPBGP. Самое. Так. Мы стали получать какие-то префиксы от четвертого муртизатора. То есть, наверное, теперь будем получать от него да, мы будем получать от него префиксы 4.3. Но в качестве беста, да, в качестве беста мы выбираем маршрут от муртизатора R1. А почему так происходит? Да, то есть, почему муртизатор R6, по сути, он принял два префикса. Принял от муртизатора R1 и принял от муртизатора
R4. Что произошло? Смотрите. Вес у нас одинаковый. Ну, то есть, вес мы здесь не настраивали. Local preference и там, и там. Это значение 100. Но. Но. Длина АЭС пути через муртизатор R4 равна двум. Две транзитные автономные системы. То есть, номер 123 и номер 4578. А от муртизатора R1, то есть от префиксов, который был получен на прямую длину, АЭС пути равна единице. Поэтому. Поэтому. Этот путь выбирается наиболее предпочтительным. Наиболее предпочтительным. Итак. Вернемся на муртизатор R1. На текущий момент. На текущий момент. Муртизатор R1. Отдает апдейт в сторону муртизатора R6. В котором АЭС пасс состоит из номера автономной системы
Как это можно сделать? Говорим раутер BGP 123. Говорим команду neighbor 10.1.6.6. Если вы внимательно посмотрите, то здесь нету никаких команд, которые могут вам намекнуть на то, что это удлинение пути. Поэтому нам необходимо для начала создать маршрутную карту. Вот если говорим, например, route map, RM, если будет маршрутка R6, в направлении out. И говорим set. А вот здесь, видите, появляется ключевая команда set aspath. prepend string for BGP ISPath tribute. ISPath.
Далее. Оставляем слово prepend. И по сути вы сюда можете вписать на самом деле произвольный номер на автономной системе. Например, я могу записать 777, 999, скажем 1.3456 и, скажем, 60 тысяч. То есть это не обязательно должны быть номера автономных систем, которые являются вашими. Это просто модификация aspath, и вы туда вставляете любые as. Следующим шагом, что нам нужно сделать? Соглавим router BGP 123, neighbor 10.1.6.6. Далее говорим route map. Роутем R6out в направлении out.
Сделаем clear IP BGP out. BGP out. И на мурсуаторе R6 будем наблюдать. Обратите внимание, что изменился получаемый префикс 3333. Теперь длина aspath состоит из... Если номер 123 на то есть... Мурсуатор R3 оставляет номер своей реальной автономной системы. Плюс делает препент. 7777, 93 девятки. Далее, автономная система R68992. Это на самом деле то, что мы сконфигурировали как 1.3456. 3456. Если вам более удобна точка, можем сказать router BGP2, router BGP6.
И дать команду BGP as notation. asnotation. As notation. Тогда если мы посмотрим, что R3.3456. BGP. Видите, у нас была автономная система 68992. А с точки она будет записана как 1.3456. И теперь номера автономных систем. Длина атрибута aspath составляет 1, 2, 3, 4, 5 через мужетизатор R1. И составляет 2 автономные системы через мужетизатор R4. Поэтому show ip route 3.3.3.3.3. В качестве исходящего... В качестве исходящего noshopа... В качестве noshopа будет стоять адрес мужетизатора R2. Если мы запустим trace route...
3.3.3.3.source loopback 0.0. Да. С интерфейса этого не получится. Почему? Потому что... Интерфейс loopback не анонсируется в BGP. Как мы видим... Пакет идет через мужетизатор R4. Дальше через мужетизатор R1. И после этого на мужетизатор R3. Таким образом, изменяя aspath, вы всегда можете... Ну, скажем так, не всегда. Вы можете... Всегда можете попытаться настроить оборудование так, чтобы входящий трафик в вашу автономную систему шел через тот канал связи,
который нужен вам. Однако, на самом деле, вы должны понимать, что это не панацея. Это не панацея. Почему? Например, на мужетизаторе R6, скажем, может использоваться вес. Скажем, если она на мужетизаторе R6. Скажу, раутер BGP 6, скажу, нейбор 10, 1, 6, 1, скажем, там, вес 900, clear IP, сделаю clear IP BGP. В этом случае у меня шелкопер пирал 3333 уже укажет на мужетизатор R1. Хотя, хотя длина АС пути больше, чем длина АС пути через мужетизатор R4, но поскольку мужетизатор R6 использует больше вес, то именно этот путь будет являться предпочтительным.
То есть, вы должны понимать, что в BGP сетях вообще невозможно гарантировать на 100% входящий трафик. То есть, как к вам, как в вашу автономную систему будет поступать трафик. Потому что это так или иначе зависит от вышестоящих операторов связи, либо от вышестоящих партнеров. Но попытаться всегда может. Здесь у вас может быть конфигурация, которую я ввел на мужетизатор R1, то есть этот препент из произвольной последовательности автономных систем у вас может вызвать, наверное, маленькое недоумение. А ведь как так? А ведь, по сути, если мы будем отдавать такой-то префикс, вот если мы будем отдавать такой префикс, может получиться так, что он не будет заинсталирован на нашем соседе.
Ну, например, смотрите, если я чуть-чуть изменю этот IS-prepend, каким образом? давайте я уберу No. И, скажем, сделаю IS-prepend. Вот сюда вот добавлю цифру 6. Теперь на мужестве R6 скажу Clear IP BGP Updates. Clear IP BGP Updates. Опс! Debug IP BGP Updates. И на мужестве R1 сделаю Clear IP BGP 10.1.6.6. Outdates. То
здесь мы увидим, что здесь мы увидим следующую вещь. Так, так, так. Так. Обратите внимание. Получен update на адрес 3333 32 он denied due из-за какого условия. Внутри атрибута IS-pass содержится наша собственная автономная система. То есть мы получаем update, у которого IS-pass состоит из чисел 123777 139 и 6 134 5 6 и 6 тысяч.
В частности, нам что 36 настроена автономная система номер 6 и этот же номер автономной системы содержится внутри атрибута IS-pass. Поэтому выставлять произвольные номера автономных систем в препенды нельзя. В реальной жизни должно быть так, что если вы попробуете провернуть такую вещь на вашем стыке с оператором, то по-хорошему у оператора должны стоять фильтры во входящем направлении, которые разрешают получать апдейты только от той автономной системы, которая за вами реально зарегистрирована. Такая вещь остается на совести провайдеров. Если провайдер пренебрегет таким правилом, то выставляя
произвольные системы в IS-pass препенде, вы можете случайно добиться того, что ваши префиксы не будут инсталлированы какими-то транзитными устройствами. Поэтому выставлять препенды нужно следующим образом. мы говорим мы убираем вот этот set IS-prepend и в качестве IS-prepend можно выставлять только собственные номера автономных систем. Их можно выставлять некое бесконечное количество раз. теперь мы сделаем clear IPBGP out. И на штат 3.6 show IPBGP 3.3.3.3.3. Мы увидим,
что длина IS-pass составляет 1, 2, 3, 4, 5, 6, 7, 9 автономных систем. Почему 9? Потому что 1, 2, 3, 4, 5, 6, 7, 8 AS-ок это prepend. То есть вот это prepend. Вот это prepend. А вот эта автономная система, которая стоит первой, это та, которая добавляется по обычным и BGP правилам. И она необходима для обеспечения BGP Loop Avoidance. об moves.
Обязано ему нет.