Управление маршрутами в BGP

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

Трафик внутри и вне AS всегда перемещается согласно "атласу автомобильных

дорог", сформированному на основе маршрутов. Внесение изменений в маршруты приводит к изменению направления потоков трафика. Ниже приведены наиболее часто задаваемые вопросы, касающиеся управления маршрутами.

·                               Как запретить объявление внутренних сетей во внешнюю сеть?

·                               Как  организовать  фильтрацию  обновлений  маршрутов,  поступающих  от опре деленного узла?

·                               Чем можно доказать, что используется именно нужное соединение и именно от нашего провайдера, а не какое-то другое?

Как  вы  увидите  далее,  в  BGP  имеются  все  необходимые  средства  и  атрибуты,

позволяющие получить ответы на эти и многие другие вопросы.

Атрибуты маршрутов в BGP

Атрибуты BGP представляют собой набор параметров, которые описывают различные характеристики префиксов (маршрутов). В процессе принятия решения в BGP все атрибуты связываются с префиксами, которые они описывают, сравниваются все доступные маршруты к заданному пункту назначения и затем выбираются лучшие из них. Помните о том, что атрибуты являются неотъемлемой частью пакета UPDATE протокола BGP и заключают в себе информацию описательного характера для определенного префикса. В последующих разделах будут рассмотрены различные атрибуты и их воздействие на работу системы маршрутизации.

Прежде чем  перейти к  описанию атрибутов маршрутов, давайте рассмотрим их основные категории.

·                               Обязательные общеизвестные (Well-known mandatory).

·                               Общеизвестные,   используемые   по   собственному   усмотрению   (Well-known discretionary).

·                               Необязательные транзитивные (Optional transitive).

·                               Необязательные нетранзитивные (Optional nontransitive).

Вот что сказано о категориях атрибутов в RFC 1771.

"Общеизвестные атрибуты должны распознаваться всеми реализациями протокола BGP. Часть этих атрибутов обязательна для применения и должна всегда включаться в состав сообщения UPDATE. Другие – – оставлены на ваше усмотрение и могут или включаться не включаться в сообщение UPDATE.

Общеизвестные  атрибуты  должны  передаваться  другим  узлам  (после

соответствующего обновления, если это необходимо).

Кроме общеизвестных атрибутов, каждому маршруту можно присваивать один или несколько необязательных атрибутов. Поддержка этих атрибутов всеми реализациями BGP не требуется. Возможность обработки неопознанного необязательного атрибута определяется установкой бита транзитивности из октета флагов атрибутов в определенное значение. Маршруты с неопознанными необязательными транзитивными атрибутами должны быть обработаны. Если маршрут с неопознанным необязательным транзитивным атрибутом обрабатывается и пересылается другим узлам BGP, то и этот атрибут также передается на другие узлы с битом частичности (Partial bit) и октетом флагов атрибутов, установленными в 1. Если принят и передан на другие узлы BGP- маршрут с опознанным необязательным транзитивным атрибутом, то бит частичности и октет флагов атрибутов уже установлены в 1 предыдущей AS и не сбрасываются в 0 текущей AS. Неопознанные нетранзитивные необязательные атрибуты должны игнорироваться, и передавать сведения о них на другие узлы BGP не нужно.

На маршруте следования можно добавлять новые необязательные транзитивные атрибуты. Это может выполнять узел, генерирующий маршрут , либо другая AS, через которую проходит маршрут. Если маршруты были добавлены другой AS, то бит частичности и октет флагов атрибутов устанавливаются в 1. Правила добавления новых необязательных нетранзитивных атрибутов зависят от свойств добавляемых атрибутов. Документация на каждый новый необязательный нетранзитивный атрибут, вероятнее всего, будет содержать эти правила. (В качестве примера можно привести атрибут MULTI_EXIT_DISC) . Все необязательные атрибуты (и транзитивные, и нетранзитивные) могут быть внесены любой AS на маршруте (если это разрешено)."

Определенные  для  протокола  BGP  атрибуты  приведены  в  списке.  Подробную информацию о действии каждого из них мы представим в последующих разделах.

·                           ORIGIN (код типа 1) — обязательный общеизвестный атрибут, который определяет источник, сгенерировавший информацию о маршруте. В его октете данных разрешены следующие значения:

0: IGP — информация сетевого уровня о доступности сети, которая является внутренней для данной AS;

1: EGP — информация сетевого уровня о доступности сети, полученная через протокол EGP;

2:   INCOMPLETE   —   информация   сетевого   уровня   о   доступности   сети, полученная другими средствами.

·                           AS_PATH (код типа 2) — обязательный общеизвестный атрибут, который состоит из последовательности сегментов AS, составляющих маршрут. Каждый сегмент AS, составляющий маршрут, представлен параметрами <тип сегмента маршрута,

длина сегмента, значение сегментах

·                       NEXTJttOP (код типа 3) — обязательный общеизвестный атрибут, который определяет IP-адрес граничного маршрутизатора. Этот адрес следует использовать в качестве следующего ближайшего к пункту назначения узла. Он помещается в поле информации сетевого уровня о доступности сети в сообщении UPDATE.

·                       MULTI_EXIT_DISC (код типа 4) — необязательный нетранзитивный атрибут, который представляет собой целое неотрицательное число, занимающее четыре октета. Значение этого атрибута может использоваться в процессе принятия решения спикером BGP для выделения нескольких точек выхода от соседних автономных систем.

·                       LOCAL_PREF (код типа 5) — общеизвестный атрибут, используемый по усмотрению, который состоит из целого неотрицательного числа размером четыре октета. Он ис пользуется спикером BGP для информирования других спикеров BGP в автономной системе о степени предпочтительности того или иного объявляемого маршрута.

·                       ATOMIC_AGGREGATE (код типа 6) — общеизвестный атрибут, используемый по усмотрению, длиной 0 октетов. Он используется спикером BGP для информирования других спикеров BGP о том, что в локальной системе выбран менее специфичный (неопределенный) маршрут вместо более специфичного (однозначно определенного), который уже включен в него.

·                       AGGREGATOR (код типа 7) — необязательный транзитивный атрибут длиной 6 октетов. Этот атрибут содержит номер последней AS, где был сформирован объединенный маршрут (закодированный двумя октетами), за которым следует IP- адрес спикера BGP, сформировавшего объединенный маршрут (заключенный в четыре октета).

·                       COMMUNITY (код типа 8) — необязательный транзитивный атрибут переменной длины. Этот атрибут состоит из набора четырех октетов, каждый из которых определяет сообщество. Все маршруты, содержащие этот атрибут, принадлежат к сообществу, заданному в атрибуте.

См. в главе 11 на с. 299 раздел "Атрибуты BGP"

Атрибут ORIGIN

ORIGIN — обязательный общеизвестный атрибут (код типа 1), который указывает

на  источник  обновления  маршрута  с  учетом  автономной  системы.  В  протоколе  BGP допускаются следующие типы источников.

·                       IGP — Информация сетевого уровня о доступности сети (Network Layer Reachability Information — NLRI), являющаяся внутренней по отношению к AS, где был сформирован маршрут.

·                       EGP – Информация сетевого уровня о доступности сети, полученная через протокол внешнего шлюза Exterior Gateway Protocol (EGP).

·                       INCOMPLETE — Информация сетевого уровня о доступности сети полученная другими средствами.

В протоколе BGP атрибут ORIGIN используется в процессе принятия решения для установления предпочтительности маршрутов. Как правило, в BGP предпочитается маршрут с самым младшим типом источника (IGP младше EGP, a EGP младше INCOMPLETE). Более детально о механизме формирования атрибута ORIGIN читайте в разделе "Атрибут маршрута ORIGIN".

Атрибут AS_PATH

AS_PATH является обязательным общедоступным атрибутом (код типа 2), в котором содержится последовательность номеров автономных систем, пересекаемых на маршруте. При прохождении маршрутов через спикеры BGP внутри AS, изменения в атрибут AS_PATH не вносятся. Однако при пересылке маршрутов внешним BGP-узлам в

этот атрибут подставляется номер AS, где был сформирован маршрут. Впоследствии каждая AS, которая принимает маршрут и пересылает его другим EBGP-узлам, будет помещать свой номер в список AS. Размещение (prepending) — это добавление номера AS в начало списка номеров. В последнем списке должны быть представлены номера всех AS, через которые пролегает маршрут. Номер AS, где был сгенерирован маршрут, помещается в конце списка номеров (перед кодом атрибута ORIGIN). Этот тип списка атрибута AS_PATH называют еще последовательностью AS (AS_SEQUENCE), так как все номера AS расположены последовательно.

См. в главе 11 раздел "Атрибут AS_PATH"

Атрибут AS_PATH используется в BGP как часть обновления маршрутов (в пакете UPDATE) для того, чтобы предотвратить образование петель маршрутов в сети Internet. Каждый маршрут, передаваемый между BGP-системами, переносит и список всех номеров AS, через которые он прошел. Если маршрут объявлен AS, номер которой уже имеется в AS_SEQUENCE, то сообщение UPDATE игнорируется. Спикеры BGP помещают номера своих AS при объявлении маршрутов другим AS. Когда маршрут передается спикеру BGP внутри одной AS, то изменения в AS_PATH не вносятся.

На рис. 6.11 представлено формирование атрибута AS_PATH в каждой точке маршрута к сети 172.16.10.0/24. Этот маршрут образован в AS1, передан на AS2, затем — на AS3 и AS4 и возвращен на AS 1. Обратите внимание на изменения, вносимые каждой AS на пути следования. Каждая AS добавляет свой номер в начало списка номеров. При возвращении на AS1 граничный маршрутизатор этой AS обнаруживает, что этот маршрут уже проходил через ASI (так как номер AS1 имеется в списке), поэтому он отвергает маршрут.

Информация, заключенная в атрибуте AS_PATH, используется протоколом BGP при определении наилучшего маршрута к пункту назначения. При сравнении нескольких маршрутов, если остальные, более приоритетные атрибуты одинаковы, то предпочтение отдается маршруту с более коротким списком в AS_PATH. В случае возникновения конфликтной ситуации для определения наилучшего маршрута используются другие атрибуты (см. раздел "Процесс принятия решения в BGP").

Рис. 6.11. Пример образования петли и работы атрибута AS_PATH

Атрибут NEXT_HOP

NEXT_HOP  —  обязательный  общеизвестный  атрибут  (код  типа  3).  Он  может

немного видоизменяться при использовании  в контексте протокола IGP, где  в качестве ближайшего следующего узла используется IP-адрес интерфейса маршрутизатора, объявленного при анонсировании маршрута.

См. в главе 11 на с. 302 раздел "Атрибут NEXTJHOP"

Концепция работы с ближайшим следующим узлом в протоколе BGP сложнее, чем в

IGP.

·       Для EBGP-сеансов следующий узел — это IP-адрес соседнего узла, анонсированного в маршруте.

·       Для IBGP-сеансов, т.е. для маршрутов, сгенерированных внутри AS, следующий узел — это также IP-адрес соседнего узла, анонсированного в маршруте.

·       Для маршрутов, поступивших в AS no EBGP, сведения о следующем узле из EBGP переносятся без изменений в IBGP. Следующий узел в этом случае – IP-адрес соседнего E

·       BGP-узла, от которого был получен маршрут.

·       Когда информация о маршрутах распространяется в среде с множественным доступом (такой как Ethernet, Frame Relay и т.д.), под следующим узлом обычно подразумевают IP-адрес интерфейса маршрутизатора, который подключен к среде, сгенерировавшей маршрут.

Маршрутизатор SF участвует в сеансе EBGP с маршрутизатором LA и в сеансе IBGP

с маршрутизатором SJ. Маршрутизатор SF получает сведения о маршруте в сеть 128.213.1.0/24 от маршрутизатора LA. В свою очередь, маршрутизатор SF посылает сведения о своей локальной сети 192.212.1.0/24 в BGP.

Маршрутизатор SJ получает сведения о маршруте в сеть 192.212.1.0/24 через интерфейс с IP-адресом 2.2.2.2, который является адресом узла IBGP, анонсировавшего маршрут. Таким образом, 2.2.2.2, согласно определению, является следующим узлом для SJ для того, чтобы попасть в сеть 192.212.1.0/24. Точно так же маршрутизатор SF рассматривает и маршрут к сети 128.213.1.0/24, поступающий от маршрутизатора LA через ближайший узел

1.1.1.1.  Когда  он  сообщает  об  обновлении  маршрута  маршрутизатору  SJ  no  IBGP,  то

маршрутизатор SF не вносит никаких изменений в информацию о следующем узле. Таким образом, маршрутизатор SJ получит информацию о маршруте в сеть 128.213.1.0/24 no BGP через следующий узел с адресом 1.1.1.1. Это яркий пример переноса информации о ближайшем узле EBGP в IBGP.

Как видно из примера, следующим узлом не обязательно должен быть узел, с которым имеется прямое соединение. Например, следующий узел на маршрутизаторе SJ для сети 128.213.1.0/24 — 1.1.1.1, но чтобы достичь его, нужно пройти через узел 3.3.3.3. Таким образом, работа со следующими узлами требует рекурсивных запросов по IP, чтобы маршрутизатор "знал" куда ему отправлять пакеты. Чтобы попасть на узел 1.1.1.1, маршрутизатор SJ будет рекурсивно опрашивать свою таблицу маршрутов IGP, чтобы определить, каким образом можно достичь узла 1.1.1.1. Подобный рекурсивный поиск продолжается до тех пор, пока маршрутизатор не свяжет пункт назначения 1.1.1.1 с исходящим интерфейсом. Точно так же выполняются процедуры для  узла 2.2.2.2. Если невозможно достичь определенного узла, то BGP принимается решение о недоступности маршрута.

Рис. 6.12. Пример применения атрибута NEXT_HOP в BGP

Ниже мы приводим пример использования рекурсивного запроса IP для направления трафика в пункт конечного назначения. В табл. 6.2 и 6.3 приведены таблицы BGP- и IP-

маршрутов для маршрутизатора SJ из рис. 6.12.

Таблица 6.2. Таблица BGP-мapшpyов для маршрутизатора SJ

Пункт назначения                           Следующий узел

192.212.1.0/24

2.2.2.2

               128.213.1.0/24                                    1.1.1.1                                         

Таблица 6.3. Таблица IР-маршрутов для маршрутизатора SJ

Пункт назначения                            Следующий узел

192.212.1.0/24

2.2.2.0/24

3.3.3.0/24

128.213.1.0/24

1.1.1.0/24

2.2.2.2

3.3.3.3

Подключено; Порт 0

1.1.1.1

3.3.3.3

В табл. 6.2 показано, что в сеть 128.213.1.0/24 можно попасть через узел 1.1.1.1. Из таблицы IP-маршрутов видно, что в сеть 1.1.1.0/24 можно попасть через узел с адресом

3.3.3.3. Еще один рекурсивный запрос таблицы IP-маршрутов свидетельствует о том, что сеть 3.3.3.0/24 напрямую подключена к порту 0 маршрутизатора. Таким образом, трафик в направлении 1.1.1.1 следует пересылать по порту 0. Руководствуясь теми же принципами, трафик пересылается на узел с адресом 2.2.2.2.

Чтобы убедиться в доступности узлов, указанных в атрибуте NEXT_HOP, следует обеспечить маршрутизацию к ним посредством какого-либо протокола IGP или с помощью статических маршрутов. Если узел, указанный в атрибуте NEXT_HOP, недоступен, то BGP- маршрут считается недействительным.

Атрибут MULTI_EXIT_DISC

Атрибут многоточечного дискриминатора BGP Multiexit Discriminator (MULTI_EXIT_DISC, или MED) представляет собой необязательный нетранзитивный атрибут (код типа 4). Этот атрибут является своего рода подсказкой внешним соседним узлам о предпочтительном маршруте в AS, имеющую несколько точек входа. Атрибут MED известен также как внешняя метрика маршрута. Предпочтение отдается меньшим значениям MED.

В отличие от атрибута LOCAL PREF, обмен атрибутом MED между различными AS допускается, но при этом атрибут MED, однажды принятый AS, уже не должен покидать ее пределов. Когда на AS поступает сообщение об обновлении маршрутов с определенным значением атрибута MED, это значение принимается во внимание в процессе принятия решения внутри AS. Когда передается сообщение об обновлении маршрутов BGP на другую AS, MED сбрасывается в 0 (если явно не задано определенное значение исходящего MED).

Если маршрут формируется в AS, то чаще всего значение MED соответствует метрике IGP-маршрута. Это очень удобно, в особенности, если у клиента несколько соединений с одним провайдером. Метрика IGP в этом случае показывает близость или удаленность сети клиента от точки входа в AS. Сеть, которая находится ближе к точке входа А и дальше от точки входа Б, будет иметь меньшую метрику IGP на граничном маршрутизаторе, подключенном в точку А. При трансляции метрики IGP в MED принимаемый AS трафик должен поступать через соединение, ближайшее к пункту назначения. Подобное поведение является результатом того, что для достижения того же пункта назначения было отдано предпочтение маршруту с меньшим значением MED. Атрибуты MED могут применяться и клиентами и провайдерами для распределения трафика по нескольким каналам между двумя AS.

Если не указано иное, маршрутизатор сравнивает атрибуты MED для различных маршрутов от внешних соседей, которые принадлежат к одной AS. Атрибуты MED от различных AS сравнивать нельзя, так как атрибут MED, связанный с маршрутом, как правило, несет в себе информацию о внутренней топологии AS, о правилах маршрутизации и

o      протоколе маршрутизации. Сравнение атрибутов MED от различных AS напоминает сравнение яблок и апельсинов. Однако для администраторов, которые имеют веские причины проводить подобное сравнение, компанией Cisco в маршрутизаторах предусмотрена команда bgp always-compare-med, с помощью которой в протоколе BGP можно проводить сравнение MED от различных AS для одного и того же маршрута. Ш См. в главе 11 на с. 308 раздел "Атрибут MULTU_EXIT_DISC".

В примере, приведенном на рис. 6.13, показано, как с помощью атрибута MED одна AS может повлиять на процесс принятия решения в другой AS. На рис. 6.13 сети ANET и YNET пытаются повлиять на выходной трафик сети XNET путем пересылки в эту сеть различных значений атрибута MED.

Сеть XNET принимает маршрут в сеть 121 13.0.0/16 из трех различных источников: SJ (метрика 120), LA (метрика 200) и NY (метрика 50). Маршрутизатор gp будет  сравнивать два значения метрик, поступающих из сети ANET, и выберет маршрут на маршрута:затор SJ, так как маршрут к нему был объявлен с меньшей метрикой. Если на маршрутизаторе SF используется команда bqp always-compale-med, то он будет сравнивать метрику 120 с метрикой 50, поступившей от маршрутизатора NY, и отдаст предпочтение маршруту на NY в сеть 128.213.0.0/16. На процесс принятия решения на маршрутизаторе SF можно повлиять также с помощью атрибута LOCAL_PREF, задавая его в сети XNET, для того, чтобы "перекрыть" метрики, поступающие от других AS. Тем не менее применение атрибута MED оправдано если в сети XNET принятие решений о маршрутизации по BGP базируется на внешних факторах, что способствует упрощению конфигурации маршрутизатора. Клиенты, у которых имеется несколько соединений с провайдером в различных географических точках, могут обмениваться метриками со своими провайдерами, влияя на потоки трафика друг через друга, что позволяет лучше распределить нагрузку.

Рис. 6.13. Действие атрибута MED

Атрибуты MED являются своего рода препятствием при объединении маршрутов, когда провайдеры анонсируют заданный блок CIDR из нескольких географических точек сети и исключают из блока кратчайшие маршруты. Применение MED в этих случаях может привести к неоптимальной маршрутизации, так как однозначно определенные маршруты из блока CIDR могут рассеиваться между несколькими AS, и атрибуты MED, связанные с более точными маршрутами, будут недействительны.

При использовании атрибутов MED для выполнения маршрутизации с наилучшим исходом (best-exit routing) некоторые провайдеры разрешают работать с определенными маршрутами внутри блоков CIDR — благодаря этому появляется возможность выбрать узлы и удалить с их помощью ответвления, возникающие в результате агрегации. Единственная проблема в этом случае — сложность управления анонсированием определенных маршрутов, следствием чего может стать неоптимальная маршрутизация.

При использовании агрегации атрибуты MED не всегда воспринимаются другими

узлами не только из-за потенциальной угрозы неоптимальной маршрутизации, но по причине того, что сети получают значение MED из интеллектуальных метрик IGP или не обеспечивается совместимость всех MED с префиксами от различных AS. В любом случае для AS, обладающих соответствующими MED, такой результат лучше, чем слабый процесс принятия решений.

Если провайдеры не используют атрибуты MED или другие приемы для обеспечения

маршрутизации с наилучшим исходом, то такая маршрутизация называется маршрутизацией по ближайшему выходу (closest exit) или маршрутизацией "горячей картошки " (hot potato routing). Большое количество ответвлений маршрутов является результатом маршрутизации по ближайшему выходу, обычно применяемой при междоменной маршрутизации в точках обмена трафиком.

Атрибут  Local_Preference

Атрибут локальных предпочтений Local Preference (сокращенно LOCAL_PREF) является общеизвестным атрибутом, используемым по вашему усмотрению (код типа 5). Атрибут Local Preference показывает степень предпочтения, заданную данному маршруту, по сравнению с другими маршрутами в тот же пункт назначения. Наивысшее значение коэффициента предпочтения указывает на то, что данный маршрут более предпочтителен по сравнению с другими. Коэффициент локального предпочтения, как видно из его названия, является локальным для данной автономной системы, и обмен его значениями разрешен только между узлами IBGP. Если AS имеет соединения с другими AS по протоколу BGP, то она будет получать сведения о маршрутах к одним и тем же пунктам назначения от различных AS. Коэффициент локального предпочтения обычно используется для установки точки выхода из AS для того, чтобы достичь определенного узла получателя. Поскольку этим атрибутом могут обмениваться все BGP-маршрутизаторы внутри AS, то все они будут "знать" об общей точке выхода из AS.

Ш См. в главе 11 на с. 306 раздел "Атрибут LOCAL_PREF"

Давайте рассмотрим вариант инфраструктуры, представленный на рис. 6.14. Допустим, компания ANET, имеющая сеть с одноименным названием, оплатила подключение к Internet через двух сервис-провайдеров — XNET и YNET. Так, ANET подключена к YNET по основному каналу типа ТЗ и к XNET — по резервному каналу типа Т1.

Рис. 6.14. Пример применения атрибута Local Preference

Для сети ANET критичным является выбор канала для пересылки выходного трафика. Конечно же, ANET в нормальных условиях предпочтет использовать канал ТЗ на YNET, так как он является более высокоскоростным.

И здесь вступают в действие коэффициенты предпочтения, задаваемые атрибутом Local Preference: маршрутизатор LA назначает маршрутам, принятым от YNET, коэффициент предпочтения 300. Маршрутизатор SJ присваивает маршрутам в сеть XNET меньший коэффициент предпочтения, например, 200. Так как маршрутизаторы LA и SJ обмениваются между собой маршрутной информацией по IBGP, то они оба соглашаются, что точкой выхода из AS следует считать канал с провайдером YNET, так как он имеет более высокий коэффициент предпочтения. Из рис. 6.14 видно, что сеть ANET получает сведения о маршруте 128.213.0.0/16 через XNET и YNET. Маршрутизаторы LA и SJ согласны использовать канал через YNET как точку выхода для сети 128.213.0.0/16, так как он имеет самый высокий коэффициент предпочтения 300. Поскольку коэффициент локальных предпочтений  является  локальным  только  для  самой  AS  (т.е.  для  сети  ANET),  все

обсуждаемые нами манипуляции будут влиять только на исходящий трафик, никак не отражаясь на входящем трафике. Входящий трафик по-прежнему может поступать в AS по каналу Т1.

Параметр  weight  (вес),  используемый  в  оборудовании  Cisco,  имеет  сходство  с

атрибутом Local Preference в том, что он присваивает маршруту с более высоким коэффициентом предпочтения больший вес. Разница между ними состоит в том, что параметр веса является локальным для конкретного маршрутизатора и не передается другим маршрутизаторам, даже если они принадлежат одной AS. Параметр weight влияет на маршруты, принятые от различных провайдеров одним маршрутизатором (например, маршрутизатор с несколькими соединениями от двух и более провайдеров). Параметр weight имеет более высокий приоритет, чем любой из атрибутов BGP, и используется в качестве коммутатора при определении предпочтительности того или иного маршрута.

Атрибут ATOMIC_AGGREGATE

Агрегация (объединение) маршрутов приводит к потерям информации, так как объединенные маршруты имеют несколько различных источников с различными атрибутами. Атрибут ATOMIC_AGGREGATE представляет собой общеизвестный атрибут, используемый по собственному усмотрению (код типа 6), который устанавливается в определенное значение при потере информации. По существу, если в системе распространяются объединенные маршруты, приводящие к потере информации, то в такой маршрут необходимо включать атрибут ATOMIC_AGGREGATE.

Атрибут ATOMIC_AGGREGATE не должен устанавливаться, если объединенный маршрут переносит дополнительную информацию, с помощью которой можно установить источник объединения. В качестве примера можно привести объединенный маршрут с параметром AS_SET, как уже обсуждалось ранее. К объединенному маршруту, в котором содержатся данные о сформировавших его AS, атрибут ATOM1Q_AGGREGATE не добавляется.

См. в главе 11 раздел "Только объединенные маршруты, подавление однозначно определенных маршрутов"

Атрибут AGGREGATOR

AGGREGATOR является необязательным транзитивным атрибутом (код типа 7). Он

определяет автономную систему и маршрутизатор, сформировавший объединенный маршрут. Спикер BGP, на котором выполняется объединение маршрутов, может добавлять атрибут AGGREGATOR, где содержится номер AS, к которой принадлежит спикер, и его IP- адрес. В оборудовании Cisco IP-адрес — обычно идентификатор маршрутизатора ROUTER_1D (RID), который представляет собой адрес технологической петли маршрутизатора, если таковой сконфигурирован. Если не задан адрес петли, то самый старший IP-адрес на маршрутизаторе и становится RID. Петельный интерфейс (или, как его еще называют, технологическая петля) — это виртуальный интерфейс, о котором мы говорили ранее в этой главе. На рис. 6.15 представлен пример функционирования атрибута AGGREGATOR.

Рис. 6.15. Пример реализации атрибута AGGREGATOR

Здесь   AS300   получает   маршруты   192.213.1.0/24   и   192.213.2.0/24   от   AS200.

Генерируя объединенный маршрут 192.213.0.0/16, маршрутизатор RTA может включить атрибут AGGREGATOR, который содержит номер AS 300 и RID маршрутизатора (RTA) 193.0.34.1, сформировавшего объединенный маршрут.

Атрибут COMMUNITY

В контексте протокола BGP сообществом (community) называют группу узлов, которые имеют общее свойство. Сообщество не ограничивается рамками одной сети или одной автономной системы, и узлы, входящие в него, необязательно должны быть связаны друг с другом физически. Для примера приведем группу сетей, которые принадлежат образовательному или государственному сообществам. Эти сети могут принадлежать любой автономной системе. Понятие сообщества используется для упрощения правил маршрутизации — маршруты определяются по логическому критерию, а не по префиксу IP или номеру AS. Спикер BGP может использовать атрибут COMMUNITY совместно с другими атрибутами для принятия решения о том, какие маршруты принять, предпочесть и передать другим BGP-системам.

См. в главе 11 раздел "Атрибут COMMUNITY"

COMMUNITY (код типа 8) представляет собой необязательный транзитивный атрибут. Этот атрибут имеет переменную длину и состоит из набора четырехбайтовых значений. Диапазоны значений сообществ для атрибута COMMUNITY от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы. Эти сообщества являются общеизвестными, т.е. они имеют глобальное значение. Ниже приведены примеры общеизвестных сообществ.

·                               NO_EXPORT (0xFFFFFF01) — маршрут с этим значением сообщества не должен быть объявлен за пределами AS.

·                               NO_ADVERTISE (0xFFFFFF) — маршрут с этим значением сообщества не дол жен объявляться другим BGP-узлам.

Кроме атрибутов общеизвестных сообществ, можно определять атрибуты частных (закрытых) сообществ для специального применения. Эти атрибуты описаны в RFC 1998′, где определен механизм влияния сообществ на выбор маршрута в  BGP  в  сетях сервис-

провайдеров.

Общепринятой практикой считается использование первых двух байт атрибута COMMUNITY для номера AS, а последних двух байт — для определения значения, соотносящегося с этой AS. Например, провайдер (AS256), который желает определить закрытое сообщество с именем my-peer-routers, может воспользоваться атрибутом COMMUNITY со значением 256:1 в десятичной записи. Число 256 указывает на то, что именно этот провайдер задал новое сообщество. А цифра один во второй части записи имеет специальное значение для провайдера. В этом случае она обозначает сообщество с именем my-peer-routers.

Один маршрут может обладать несколькими атрибутами COMMUNITY. Если спикер BGP обнаруживает несколько атрибутов COMMUNITY для одного маршрута, то он может действовать с учетом одного из них, группы или всех этих атрибутов. Маршрутизатор имеет возможность добавлять или модифицировать атрибуты COMMUNITY перед передачей маршрутов другим внешним и внутренним узлам.

На рис. 6.16 представлено применение атрибута COMMUNITY. Узел в сети XNET

посылает в сеть YNET сведения о маршрутах X и Y с атрибутом сообщества NO_EXPORT, а маршрут Z оставляет без изменений. Маршрутизатор BGP передает в сеть YNET только маршрут Z в направлении ZNET. Сведения о маршрутах X и Y распространяться не будут, так как им был задан атрибут сообщества NO_EXPORT.

Как вы увидите в последующих главах, благодаря сообществам определение правил маршрутизации становится более гибким.

Рис. 6.16. Применение атрибута COMMUNITY

Источник: Сэм Хелеби, Денни Мак-Ферсон, Принципы маршрутизации в 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