BGP

Материал из Juniper Exam Wiki
Версия от 17:02, 16 октября 2016; Наталия Бобкова (обсуждение | вклад) (Новая страница: «== Состояния соседства == http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png == Сообщени…»)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к навигации Перейти к поиску

Состояния соседства

http://habrastorage.org/getpro/habr/post_images/442/780/549/442780549c2f45cdda10773121b2800d.png

Сообщения

  • Open - отправляется только на стадии установления соседства. Содержит параметры BGP соседа.
  • Update - передает routing info между соседями. Атрибуты и список префиксов, подходящий под данные атрибуты.
  • Keepalive - для удостоверения, что с соседством все ок.
  • Notification - в случае если не прошел keepalive или update.
  • Refresh - soft clearing BGP сессии.

Атрибуты пути (path attributes)

Атрибуты пути разделены на 4 категории:

  1. Well-known mandatory — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Должны присутствовать во всех обновлениях (update).
  2. Well-known discretionary — все маршрутизаторы, работающие по протоколу BGP, должны распознавать эти атрибуты. Могут присутствовать в обновлениях (update), но их присутствие не обязательно.
  3. Optional transitive — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, он помечает обновление как частичное (partial) и отправляет его дальше соседям, сохраняя не распознанный атрибут.
  4. Optional non-transitive — могут не распознаваться всеми реализациями BGP. Если маршрутизатор не распознал атрибут, то атрибут игнорируется и при передаче соседям отбрасывается.

Примеры атрибутов BGP:

  • Well-known mandatory:
    • Autonomous system path
    • Next-hop
    • Origin
  • Well-known discretionary:
    • Local preference
    • Atomic aggregate
  • Optional transitive:
    • Aggregator
    • Communities
  • Optional non-transitive:
    • Multi-exit discriminator (MED)

Autonomous system path

Атрибут Autonomous system path (AS Path):

  • Описывает через какие автономные системы надо пройти, чтобы дойти до сети назначения.
  • Номер AS добавляется при передаче обновления из одной AS eBGP-соседу в другой AS.

Используется для:

  • обнаружения петель
  • применения политик

Каждый сегмент атрибута AS path представлен в виде поля TLV (path segment type, path segment length, path segment value):

  • path segment type — поле размером 1 байт для которого определены такие значения:
    • 1 — AS_SET: неупорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update,
    • 2 — AS_SEQUENCE: упорядоченное множество автономных систем, через которые прошел маршрут в сообщении Update
  • path segment length — поле размером 1 байт. Указывает сколько автономных систем указано в поле path segment value
  • path segment value — номера автономных систем, каждая представлена полем размером 2 байта.

Next-hop

Атрибут Next-hop

  • IP-адрес следующей AS для достижения сети назначения.
  • Это IP-адрес eBGP-маршрутизатора, через который идет путь к сети назначения.
  • Атрибут меняется при передаче префикса в другую AS
  • Атрибут не меняется при передаче префикса в ту же AS

Third party next hop: 300px

Origin

Атрибут Origin — указывает на то, каким образом был получен маршрут в обновлении.

Возможные значения атрибута:

  • 0 — IGP: NLRI получена внутри исходной автономной системы;
  • 1 — EGP: NLRI выучена по протоколу Exterior Gateway Protocol (EGP). Предшественник BGP, не используется
  • 2 — Incomplete: NLRI была выучена каким-то другим образом

Local preference

Атрибут Local preference:

  • Указывает маршрутизаторам внутри автономной системы как выйти за её пределы.
  • Этот атрибут передается только в пределах одной автономной системы.
  • На маршрутизаторах Cisco и Juniper по умолчанию значение атрибута — 100.
  • Выбирается та точка выхода у которой значение атрибута больше.
  • Если eBGP-сосед получает обновление с выставленным значением local preference, он игнорирует этот атрибут.
  • В Junos lpf можно задать через policy и в protocol bgp. Если задан обоими способами, то будет назначен lpf из policy.

Atomic aggregate

Aggregator

Communities

Атрибут community:

  • Тегирование маршрутов
  • Существуют предопределенные значения
  • По умолчанию не пересылаются соседям
  • Один из вариантов применения: передается соседней AS для управления входящим трафиком

Значения от 0x00000000 до 0x0000FFFF и от 0xFFFF0000 до 0xFFFFFFFF зарезервированы.

Как правило community отображаются в формате ASN:VALUE. В таком формате, доступны для использования community от 1:0 до 65534:65535. В первой части указывается номер автономной системы, а во второй значение community, которое определяет политику маршрутизации трафика.

Некоторые значения communities предопределены. RFC1997 определяет три значения таких community. Эти значения должны одинаково распознаваться и обрабатываться всеми реализациями BGP, которые распознают атрибут community.

Если маршрутизатор получает маршрут, в котором указано предопределенное значение communities, то он выполняет специфическое, предопределенное действие основанное на значении атрибута.

Предопределенные значения communities (Well-known Communities):

  • no-export (0xFFFFFF01) — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться за пределы конфедерации (автономная система, которая не является частью конфедерации считается конфедерацией). То есть, маршруты не анонсируются EBGP-соседям, но анонсируются внешним соседям в конфедерации,
  • no-advertise (0xFFFFFF02) — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться другим BGP-соседям,
  • no-export-subconfed (0xFFFFFF03) — Все маршруты которые передаются с таким значением атрибута community не должны анонсироваться внешним BGP-соседям (ни внешним в конфедерации, ни настоящим внешним соседям). В Cisco это значение встречается и под названием local-as.

Маршрутизаторы, которые не поддерживают атрибут community, будут передавать его далее, так как это transitive атрибут.

Multi exit discriminator (MED)

Атрибут MED:

  • Используется для информирования eBGP-соседей о том, какой путь в автономную систему более предпочтительный.
  • Атрибут передается между автономными системами.
  • Маршрутизаторы внутри соседней автономной системы используют этот атрибут, но, как только обновление выходит за пределы AS, атрибут MED отбрасывается.
  • Чем меньше значение атрибута, тем более предпочтительна точка входа в автономную систему.

Weight (проприетарный атрибут Cisco)

Атрибут Weight:

  • Позволяет назначить "вес" различным путям локально на маршрутизаторе.
  • Используется в тех случаях, когда у одного маршрутизатора есть несколько выходов из автономной системы (сам маршрутизатор является точкой выхода).
  • Имеет значение только локально, в пределах маршрутизатора.
  • Не передается в обновлениях.
  • Чем больше значение атрибута, тем более предпочтителен путь выхода.


Касательно всех атрибутов

Атрибуты, при выборе best, считаются лучшими с наименьшими значением. Это правило касается всех атрибутов, кроме Local Preference

Механизмы управления входящим трафиком:

  • AS path prepend
  • Community (если поддерживает провайдер)
  • MED (подключение к одной и той же AS)
  • Анонс разных префиксов через разных ISP

Механизмы управления исходящим трафиком:

  • Проприетарный атрибут Cisco weight (локально на маршрутизаторе)
  • Атрибут Local Preference (локально в AS)
  • Балансировка трафика

Выбор лучшего пути (BGP Active Route Selection)

  • Juniper
  1. Prefer highest local preference value
  2. Prefer shortest AS-path length
  3. Prefer lowest Origin value
  4. Prefer lowest MED value
  5. Prefer routes learned from an EBGP peer over an IBGP peer
  6. If the remaining routes were learned through IBGP, use the path with the lowest IGP cost to the IBGP peer.
  7. For EBGP received routes, prefer the current active route; otherwise, prefer routes from the peer with the lowest RID
  8. Prefer paths with the shortest cluster length
  9. Prefer routes from the peer with the lowest peer ID