Синхронизация внутри AS

Согласно определению, для нормальной работы протокола BGP по умолчанию он должен быть синхронизирован с IGP, после чего BGP может уведомлять другие AS о транзитных маршрутах. Очень важно, чтобы все маршруты, о которых объявляет ваша AS, были согласованы, в противном случае в маршрутизации могут появиться "черные дыры", что чревато потерями трафика. Например, если спикер IBGP объявит маршруты внешнему маршрутизатору во время обмена информацией о IGP-маршрутах внутри самой AS, то ваша AS может принять трафик, направленный узлам, сведения о которых еще не получены маршрутизаторами. В результате маршрутизаторы просто не смогут доставить трафик в пункты назначения.

В любом случае, когда маршрутизатор принимает информацию об обновлении маршрута к определенному узлу от взаимодействующей с ним по IBGP стороны, он пытается самостоятельно проверить возможность достижения нужного узла, прежде чем передать эту информацию внешнему маршрутизатору с EBGP. Эту проверку маршрутизатор выполняет путем исследования префикса пункта назначения, чтобы убедиться в существовании маршрута к ближайшему соседнему маршрутизатору и уточнить, существует ли префикс для данного пункта назначения в протоколе JGP. Подобная проверка выявляет, могут ли маршрутизаторы без помощи BGP доставить трафик в заданный пункт назначения. Допуская, что протокол IGP распознает заданный пункт назначения, маршрутизатор анонсирует маршрут к нему другим внешним маршрутизаторам с EBGP. В противном случае маршрутизатор  воспринимает  префикс  пункта  назначения  как  несинхронизированный  с

протоколом 1GP и не объявляет об этом маршруте.

Рассмотрим ситуацию, показанную на рис. 6.4. Провайдеры ISP1 и ISP2 используют узел провайдера ISP3 как транзитную AS. В состав AS провайдера ISP3 входит несколько маршрутизаторов, и протокол BGP используется только на граничных маршрутизаторах этого провайдера. (Хотя маршрутизаторы RTB и RTD тоже участвуют в транспортировке транзитного трафика, провайдер ISP3 не сконфигурировал  их для работы с протоколом BGP). Для обеспечения работы внутри AS провайдер ISP3 использует протокол внутреннего шлюза Interior Gateway Protocol.

Рис. 6.4. Синхронизация маршрутов в BGP

Допустим, что провайдер ISP1 объявляет маршрут 192.213.1.0/24 к провайдеру ISP3. Так как маршрутизаторы RTA и RTC работают по протоколу IBGP, то маршрутизатор RTA уведомляет об этом маршруте маршрутизатор RTC. Обратите внимание на то, что на других маршрутизаторах, кроме RTA и RTC, протокол BGP не поддерживается, и им неизвестно о существовании маршрута 192.213.1.0/24.

В ситуации, представленной на рис. 6.4, если маршрутизатор RTC объявит маршрут

к провайдеру ISP2, то трафик, направленный в сеть 192.213.1.0/24, начнет поступать на маршрутизатор RTC. Затем на маршрутизаторе RTC выполняется анализ таблицы маршрутов, и трафик перенаправляется на маршрутизатор RTB. Маршрутизатору RTB не известно о существовании маршрутов BGP, и он игнорирует весь трафик, так как не имеет сведений о пункте назначения, в который направляется трафик. Здесь мы видим наглядный пример потери трафика ввиду отсутствия синхронизации между BGP и IGP.

Основное правило для протокола BGP гласит: "Маршрутизатор, работающий на базе

протокола BGP, не должен уведомлять внешние маршрутизаторы о маршрутах к узлам, полученным от своих соседей по протоколу IBGP, если только эти сведения не были подверждены протоколом IGP". Это и есть правило синхронизации. Если маршрутизатор получает сведения о маршрутах в пункты назначения по IGP, то это означает, что сведения о маршрутах уже распространились внутри AS и доступность всех узлов подтверждена.

Однако последствия ввода BGP-маршрутов в IGP не проходят бесследно. Преобразование маршрутов из BGP в IGP приводит к перегрузке внутренних маршрутизаторов -как из-за масштабируемости самого протокола IGP, так и вследствие того, что протоколы типа IGP не очень хорошо справляются с большим количеством маршрутов. Кроме того, нет необходимости в переносе абсолютно всех внешних маршрутов внутри AS. Вся маршрутизация может выполняться путем направления всех маршрутизаторов без BGP по умолчанию на один из маршрутизаторов с поддержкой BGP. Конечно, эта маршрутизация будет неоптимальной, так как не гарантируется, что в каждом маршруте будет использоваться кратчайший путь к заданному пункту назначения, но это минимальная цена, которую лучше заплатить, в противном случае вам придется иметь дело с обслуживанием нескольких тысяч маршрутов внутри AS. Естественно, управление маршрутами, заданными по умолчанию, в ситуации подобной этой может показаться довольно сложной задачей и иногда приводит к образованию петель маршрутизации.

Однако  в  большинстве  реализаций   BGP  предлагается  программное  решение,

позволяющее сетевому оператору запретить синхронизацию. Как вы уже догадались, речь идет о вспомогательной команде в реализации BGP для оборудования Cisco — no syncronization, с помощью которой запрещается использовать синхронизацию в BGP и объявлять маршруты, полученные посредством IBGP, несмотря на наличие маршрутов протокола IGP. На практике с целью обеспечения полной изоляции граничных маршрутизаторов синхронизацию отключают, допуская, что транзитные маршрутизаторы в AS работают в связке по протоколу IBGP. В этом случае доступность узлов внутри AS гарантирована, так как маршрут, полученный посредством EBGP, будет автоматически передан по BGP всем транзитным маршрутизаторам.

Все это говорит о том, что в общем случае для сетей, подключенных к Internet, запрещается применение синхронизации BGP  и делается упор на сеть маршрутизаторов, взаимосвязанных по протоколу IBGP. Сама мысль о подстановке в IGP десятков тысяч маршрутов BGP выглядит пугающе.

Источник: Сэм Хелеби, Денни Мак-Ферсон, Принципы маршрутизации в Internet, 2-е  издание.  : Пер. с англ. М. : Издательский дом «Вильямс», 2001. — 448 с. : ил. — Парал. тит. англ.

Вы можете следить за любыми ответами на эту запись через RSS 2.0 ленту. Вы можете оставить ответ, или trackback с вашего собственного сайта.

Оставьте отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

 
Rambler's Top100