ѕодпишитесь на наш Telegram-канал Ѕудьте в курсе последних новостей 👇 😉 ѕодписатьс€
ѕоддержим в трудное врем€ —пециальное предложение на техническую поддержку вашей »“ - инфраструктуры силами наших экспертов ѕодобрать тариф
ѕоставка оборудовани€ √аранти€ и помощь с настройкой. —кидка дл€ наших читателей по промокоду WIKIMERIONET  упить
»нтерфейс статистики Merion Mertics показывает ключевые диаграммы и графики по звонкам, а также историю звонков в формате, который легко поймет менеджер ѕопробовать бесплатно
¬недрение
офисной телефонии
Ўаг на пути к созданию доступных унифицированных коммуникаций в вашей компании ¬недрить
»нтеграци€ с CRM ѕомогаем навести пор€док с данными
и хранить их в единой экосистеме
ѕодключить
»“ Ѕезопастность ”мна€ информационна€ безопасность дл€ вашего бизнеса «аказать
ћерион Ќетворкс

8 минут чтени€

¬ первой части статей о протоколе Border Gateway Protocol (BGP) мы узнали и разобрали протокол BGP, а затем изучили типы сообщений BGP и состо€ни€ соседства. —егодн€, в этой статье, вы узнаете об одном из самых сложных аспектов BGP: как он принимает решение о выборе маршрута.

 ѕостроение маршрута протоколом BGP

¬ то врем€ как протоколы маршрутизации, такие как RIP, OSPF и EIGRP, имеют свои собственные метрики, используемые дл€ выбора Ђлучшегої пути к целевой сети, BGP использует коллекцию атрибутов пути (PAs).

ѕредыдущие статьи цикла про BGP:

  1. ќсновы протокола BGP

BGP- атрибуты пути (Path Attributes)

 огда ваш спикер BGP получает BGP префикс, к нему будет прикреплено множество атрибутов пути, и мы знаем, что они будут иметь решающее значение, когда речь заходит о том, чтобы BGP выбрал самый лучший путь к месту назначени€.

¬се атрибуты BGP- маршрута, дел€тс€ на четыре основные категории.

  • Well-Known Mandatory
  • Well-Known Discretionary
  • Optional Transitive
  • Optional Non-Transitive

ќбратите внимание, что две категории начинаютс€ с термина Well-Known. Well-Known означает, что все маршрутизаторы должны распознавать этот атрибут пути. ƒве другие категории начинаютс€ с термина Optional. Optional означает, что реализаци€ BGP на устройстве вообще не должна распознавать этот атрибут.

“огда у нас есть термины mandatory и discretionary, св€занные с термином Well-Known. Mandatory означает, что обновление должно содержать этот атрибут. ≈сли атрибута нет, тогда по€витс€ сообщение об ошибке уведомлени€, и пиринг будет удален. Discretionary, конечно, будет означать, что атрибута не должно быть в обновлении.

” необ€зательных категорий атрибутов есть- транзитивные и нетранзитивные. ≈сли он транзитивен, то устройство должно передать этот атрибут пути своему следующему соседу. ≈сли он не €вл€етс€ транзитивным, то может просто игнорировать это значение атрибута.

ѕример 1 показывает проверку нескольких атрибутов пути дл€ префикса, который был получен маршрутизатором TPA1 от маршрутизатора ATL. ќбратите внимание, что мы используем команду show ip bgp дл€ просмотра этой информации, котора€ хранитс€ в базе данных маршрутизации BGP. ¬ частности, этот вывод показывает атрибуты Next Hop, Metric (MED), LocPrf (Local Preference), Weight, и Path (AS Path).

TPA1#show ip bgp
BGP table version  is 4, local router ID is 10.10.10.1
Status codes: s suppressed, d damped, h history, * valid, > best, i Ц internal, r RIB-failure, S Stale
Origin codes^ I Ц IGP, e Ц EGP, ? - incomplete 
	Network	Next Hop	Metric	LocPrf	Weight	Path
*>	100.100.100.0/24	10.10.10.2	0			200          i

јтрибут Origin

јтрибут ORIGIN в BGP-это попытка записать, откуда пришел префикс. —уществует три возможности, когда речь заходит о происхождении этого атрибута: IGP, EGP и Incomplete.  ак видно из легенды примера 1, коды, используемые Cisco дл€ этих источников, €вл€ютс€ i, e, и ?. ƒл€ префикса, показанного в примере 1, можно увидеть, что источником €вл€етс€ IGP. Ёто указывает на то, что префикс вошел в эту топологию благодар€ сетевой команде внутри конфигурации этого исходного устройства. ƒалее в этой статье мы рассмотрим сетевую команду во всей ее красе. “ермин IGP здесь предполагает, что префикс произошел от записи протокола внутреннего шлюза (Gateway Protocol). ƒопустим, у нас есть префикс в нашей таблице маршрутизации OSPF, а затем мы используем сетевую команду внутри BGP, чтобы поместить его в экосистему BGP.  онечно, IGP - не единственный источник префиксов, которые могут нести этот атрибут. Ќапример, вы можете создать локальный интерфейс обратной св€зи на устройстве, а затем использовать сетевую команду дл€ объ€влени€ этого локального префикса в BGP.

EGP ссылаетс€ на ныне устаревший протокол внешнего шлюза (Exterior Gateway Protocol), предшественник BGP. ¬ результате вы не увидите этот исходный код.

Incomplete означает, что BGP не уверен в том, как именно префикс был введен в топологию. Ќаиболее распространенным сценарием здесь €вл€етс€ то, что префикс был перераспределен в Border Gateway Protocol из какого-то другого протокола, обычно IGP.

¬озникает вопрос, почему исходный код имеет такое значение. ќтвет заключаетс€ в том, что это ключевой фактор, когда BGP использует свой алгоритм дл€ выбора наилучшего пути к месту назначени€ в сети. ќн может разорвать Ђсв€зиї между несколькими альтернативными пут€ми в сети. ћы также удел€ем этому атрибуту большое внимание, потому что это действительно один из хорошо известных, об€зательных атрибутов, которые должны существовать в наших обновлени€х.


јтрибут AS Path

AS Path - это well-known mandatory атрибут. ќн очень важен дл€ наилучшего поиска пути, а также дл€ предотвращени€ петель внутри Border Gateway Protocol.

–ассматрива€ нашу топологию, показанную на рисунке 1, рассмотрим префикс, возникший в TPA. ќбновление отправл€етс€ в TPA1, и TPA не добавл€ет свой собственный AS 100 в AS Path, так как сосед, которому он отправл€ет обновление, находитс€ в своем собственном AS в соответствии с пирингом iBGP.

“опологи€

 огда TPA1 отправл€ет обновлени€ на ATL, он добавл€ет номер 100 в обновлени€. —леду€ этой логике, ATL отправит обновлени€ на ATL2 и не будет добавл€ть свой собственный номер в качестве AS. Ёто будет работать до тех пор, пока ATL2 не отправит обновлени€ на какой-то другой AS, предшествующий AS 200. Ёто означает, что, когда мы рассматриваем образец AS path, как показано в примере 2, крайним правым в пути €вл€етс€ AS, который первым создал префикс (100), а крайним левым- AS, который доставил префикс на локальное устройство (342).

ѕример 2: ѕример BGP AS Path

 BGP AS Path

јтрибут Next Hop

Ќа самом деле нет ничего удивительного в том, что префикс BGP имеет атрибут под названием Next Hop. ¬ конце концов, маршрутизатор должен знать, куда отправл€ть трафик дл€ этого префикса. Next Hop атрибут удовлетвор€ет эту потребность. »нтересным моментом здесь, однако, €вл€етс€ тот факт, что Next Hop в BGP работает не так же, как это происходит в большинстве IGP. “акже следует отметить, что правила мен€ютс€, когда вы рассматриваете iBGP в сравнении с eBGP.

ѕри рассмотрении протокола внутреннего шлюза, когда устройство отправл€ет обновление своему соседу, значением Next Hop по умолчанию €вл€етс€ IP-адрес интерфейса, с которого отправл€етс€ обновление. Ётот параметр продолжает сбрасыватьс€ каждым маршрутизатором по мере прохождени€ обновлени€ через топологию. Next Hop принимает простую парадигму Ђhop-by-hopї.

— помощью BGP, когда у нас есть пиринг eBGP и отправл€етс€ префикс, Next Hop действительно будет (по умолчанию) IP-адресом спикера eBGP, отправл€ющего обновление. ќднако IP-адрес этого спикера eBGP будет сохранен в качестве Next Hop, поскольку префикс передаетс€ от спикера iBGP к спикеру iBGP. ќчень часто мы видим атрибут Next Hop, €вл€ющийс€ IP-адресом, который не €вл€етс€ устройством, передавшим нам обновление. Ёто действительно адрес, который представл€ет собой соседний AS, который предоставил нам префикс. “аким образом, правильно думать о BGP как о протоколе ЂAS-to-ASї вместо протокола Ђhop-to-hopї.

Ёто может вызвать определенные проблемы. ќсновной вывод состоит в том, что вы должны гарантировать, что все ваши спикеры BGP могут достичь значени€ Next Hop указанного в атрибуте, чтобы путь считалс€ допустимым. »наче говор€, спикеры BGP будут считать префикс недопустимым, если они не смогут достичь значени€ Next Hop.

  счастью, эту проблему можно обойти. ¬ы можете вз€ть устройство iBGP и проинструктировать его, установив себ€ в качестве значени€ Next Hop вс€кий раз, когда вам это нужно. Ёто делаетс€ с помощью манипул€ции пирингом командой neighbor, как показано в примере 3.

ATL (config)# router bgp 200
ATL (config-router)# neighbor 10.10.10.1 next-hop-self

јтрибут BGP Weight (веса)

Weight (вес) - это очень интересный атрибут BGP, так как он специфичен дл€ Cisco. ’ороша€ новость заключаетс€ в том, что, поскольку Cisco €вл€етс€ гигантом в отрасли сетей, то многие другие производители будут поддерживать использование Weight в качестве атрибута.

Weight также €вл€етс€ одним из самых уникальных атрибутов, поскольку это значение не передаетс€ другим маршрутизаторам. Weight - это значение, которое присваиваетс€ нашим префиксам как локально значимое значение. Weight - это простое число в диапазоне от 0 до 65535, и чем выше значение веса, тем выше предпочтение этого пути.  огда префикс генерируетс€ локально, он будет иметь вес 32768. ¬ противном случае вес префикса по умолчанию равен 0.

 ак можно использовать вес? ѕоначалу это покажетс€ странным, так как он не передаетс€ другим спикерам BGP. ќднако все просто. ƒопустим, ваш маршрутизатор получает один и тот же префикс от двух разных автономных систем, с которыми он работает. ≈сли администратор хочет предпочесть один из путей по какой-либо причине, он может манипулировать локальным значением веса на предпочтительном пути и мгновенно вли€ть на процесс прин€ти€ решени€ о наилучшем пути BGP.


BGP Best Path (выбор лучшего пути)

 ак было сказано ранее, мы знаем, что у IGP есть метрическое значение, которое €вл€етс€ ключевым дл€ определени€ наилучшего пути к месту назначени€. ¬ случае с OSPF эта метрика основана на стоимости, котора€ основана на пропускной способности. ” BGP существует множество атрибутов пути, которые может иметь префикс. ¬се они поддаютс€ алгоритму выбора наилучшего пути BGP. Ќа рисунке 2 показаны шаги (начина€ сверху), которые используютс€ в выборе наилучших путей Cisco BGP.

¬ыбор наилучшего пути

»зуча€ эти критерии выбора пути, вы можете сразу же задатьс€ вопросом, почему он должен быть таким сложным. ѕомните, когда мы имеем дело с чем-то вроде интернета, мы хотим, чтобы было как можно больше регулировок дл€ политики BGP. ћы хотим иметь возможность контролировать, насколько это возможно, как префиксы используютс€ совместно и предпочтительно в такой большой и сложной сети.