Для перемещения по дереву справки используйте строки заголовка.

Справка по NSG Linux 2.1.6
Дерево команд: ip.dynamic-routing.bgp.…далее…

Что это такое?

Это настройка протокола BGP.

Зачем это нужно?

Для обмена маршрутами по данному протоколу.

Как это настроить?

Для добавления копии протокола используйте команды +, _new или _insert. Данный список является нумерованным и упорядочивается автоматически. Для удаления используйте команду - или _remove. Подробнее см. описание параметров копии протокола.

Border Gateway Protocol предназначен для управления маршрутизацией на уровне сетевых магистралей. В отличие от других протоколов, для сходимости этого протокола не требуется, чтобы все маршрутизаторы использовали для выбора маршрутов одни и те же правила. Таким образом, на любом маршрутизаторе в сети может использоваться любая политика маршрутизации. Единственное обязательное требование состоит в том, что если маршрутизатор объявляет некоторый маршрут, то он должен принимать и обрабатывать пакеты в соответствии с этим маршрутом.

Работа BGP опирается на понятие автономной системы (AS). Каждая AS представляет собой часть сети с общим управлением и общей политикой маршрутизации и идентифицируется уникальным номером (ASN, изначально 16-битным, но в современных системах — 32-битным). Как правило, маршрутизаторы внутри одной AS обмениваются друг с другом маршрутной информацией при помощи какого-либо из протоколов внутренней маршрутизации (interior gateway protocol, IGP), например, OSPF или RIP. Граничные маршрутизаторы, соединяющие данную AS со смежными, обмениваются глобальной маршрутной информацией (между AS) друг с другом при помощи внешнего BGP (exterior BGP, eBGP) и распространяют эту информацию внутри своей AS при помощи внутреннего BGP (interior BGP, iBGP).

Каждый BGP-маршрутизатор рассылает своим соседям обновления своей маршрутной таблицы (в той части, в какой он должен её экспортировать) вместе с полной информацией о маршруте, т.е. списком AS, через которые пройдёт пакет, если он будет послан по данному маршруту. Такой алгоритм позволяет избежать зацикливания маршрутов.

Пакет BIRD и NSG Linux 2.1 поддерживают все требования стандарта BGP4, а также атрибуты сообществ (community attributes), согласование возможностей (capability negotiation), аутентификацию MD5, репликаторы маршрутов (route reflectors), мультипротокольные расширения для IPv4 и IPv6, и 32-битные номера AS.

Для выбора оптимального маршрута в BIRD используется более сложный алгоритм, нежели одно только сравнение метрик. Если в протоколе имеется несколько маршрутов в одну и ту же сеть с одинаковым приоритетом (preference), то они последовательно пропускаются через цепочку правил до тех пор, пока из них не останется один:

  1. Выбирается маршрут с наибольшим локальным приоритетом (Local Preference). См. также default-bgp-local-pref.
  2. Выбирается маршрут с кратчайшим путём в терминах AS (shortest AS path).
  3. Маршрут, полученный от IGP, имеет приоритет над полученным от EGP, а полученный от EGP — над маршрутом из неизвестного источника (incomplete).
  4. Выбирается маршрут с минимальным значением атрибута Multiple Exit Discriminator. См. также default-bgp-med.
  5. Маршрут, полученный от eBGP, имеет приоритет над полученным от iBGP.
  6. Выбирается маршрут с минимальным внутренним расстоянием до граничного маршрутизатора.
  7. Если все предшествующие правила не дали однозначного ответа, то выбирается маршрут с наименьшим значением идентификатора (Router ID) того маршрутизатора, которым он создан.

Основная задача BGP — контролировать глобальную связность сетей и маршруты к другим автономным системам. Когда эти маршруты распространяются с помощью BGP между маршрутизаторами внутри AS, то в них указывается дополнительный атрибут NEXT_HOP — адрес соответствующего граничного маршрутизатора. Для выбора маршрутов BGP протокол опирается на имеющуюся информацию о внутренних маршрутах AS, которая содержится в таблице IGP. По ней определяются непосредственные следующие шлюзы для каждого маршрута и внутренние расстояния до граничных маршрутизаторов. В BIRD и NSG Linux 2.1 обычно используется одна и та же таблица маршрутизации для IGP- и BGP-маршрутов.

Каждая копия BIRD соответствует одному смежному маршрутизатору. Это позволяет установить политики маршрутизации и другие параметры индивидуально для каждого соседа.

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

bgp_path
Последовательность номеров AS, в том порядке, в каком их будет проходить пакет, посланный по данному маршруту. Для внутренних BGP-маршрутов путь не содержит номера локальной AS.
bgp_local_pref
Только для внутренних маршрутов: локальный приоритет, используемый в пределах BGP для выбора оптимального маршрута (из нескольких равноценных по более существенным критериям, см. выше). По существу, служит внутренней метрикой, распространяемой в пределах всей локальной AS.
bgp_med
(Опциональный) Multiple Exit Discriminator — дополнительный атрибут, используемый на внешних соединениях (т.е. соединениях между автономными системами) для того, чтобы указать соседу оптимальную точку входа в локальную AS. Значение этого атрибута, полученное от соседа, также распространяется по внутренним соединениям AS. При экспорте маршрутов из таблицы BIRD во внешнюю копию BGP данный атрибут устанавливается в 0, чтобы значения, полученные от одной смежной AS, не распространялись к другим соседям. При этом в фильтре экспорта может быть явно указано новое значение.
bgp_origin
Источник информации о маршруте. Может принимать одно из следующих значений:
ORIGIN_IGPМаршрут создан одним из IGP-протоколов.
ORIGIN_EGPМаршрут импортирован от одного из EGP-протоколов (де-факто это значение не имеет особого смысла).
ORIGIN_INCOMPLETE  Источник происхождения маршрута неизвестен.
bgp_next_hop
IP-адрес следующего шлюза, которому следует передавать пакеты по данному маршруту. Для внутренних соединений BGP это будет либо адрес маршрутизатора, объявляющего данный маршрут — если этот маршрутизатор находится внутри AS, либо адрес граничного маршрутизатора, через который этот пакет должен покинуть данную AS — если это внешний маршрут. Таким образом, каждый источник (speaker) BGP-маршрутов может определить кратчайший путь внутри локальной AS к данной точке.
bgp_atomic_aggr
(Опциональный). Пустой атрибут, не имеющий никакого значения. Сам факт присутствия этого атрибута сигнализирует о том, что данный маршрут был агрегирован из нескольких каким-то промежуточным узлом по пути от источника маршрута к данному устройству.
bgp_community
(Опциональный). Список значений сообществ (BGP comminuties), ассоциированных с данным маршрутом. Каждое значение представляет собой пару 16-битных чисел и используется в фильтрах как тип данных pair. Первое число содержит номер AS, определяющей данное сообщес-тво, а второе — идентификатор, имеющий некоторый смысл в пределах этой AS. Механизм сообществ может использоваться различными способами, но чаще всего он применяется для передачи дополнительной информации, например, о политике экспорта маршрутов для того или иного соседа. Поскольку каждая AS вправе самостоятельно определять свою политику, она также вправе самостоятельно определять атрибуты сообщества и их семантику. (За исключением нескольких стандартных сообществ, определённых в RFC 1997.)
bgp_originator_id
(Только для внутренних маршрутов, опциональный). 32-битное число в десятично-дотовой нотации. Данный атрибут создаётся репликатором маршрутов и содержит Router ID маршрутизатора, являющегося оригинальным создателем данного маршрута, в локальной AS.
bgp_cluster_list
(Только для внутренних маршрутов, опциональный). Список идентификаторов кластеров (Cluster ID) для репликаторов маршрутов. Каждый репликатор маршрутов указывает в реплицируемом маршруте свой идентификатор кластера.

© Network Systems Group 2015–2024 Отдел документации