Что такое bgp сессия

Протокол BGP. Маршрутизация по-взрослому.

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия
Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия
Назначим и Loopback-интерфейсу какой-нибудь адрес, чтобы далее проверить связность:

Сначала поднимаем процесс BGP и назначаем AS Number, именно тот, что выдал нам LIR!
Далее настраиваем пиринг, задаем информацию о соседе:

В CLI появится сообщение:

Ура? Ура, но проверим состояние процесса.
Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия
Одно состояние сменяет другое и вот достигнут Established. Маршрутизатор за это время отправил одно OPEN-сообщение и аналогичное получил, а также получил и принял по два KEEPALIVE.
Проверим о каких сетях знает BGP.
sh ip bgp
Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия
Ни-че-го. Смотрим на R2.
Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия
И тут тоже самое.
А всё тут просто. До прописанной командой network сети должен быть точный маршрут, в противном случае она не окажется в таблице BGP. А муршрута нет:
Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия
А его и вписывать некуда, кроме разве что Loopback-интерфейса. Ну нет нигде этой сети. Исхитримся так:

Давайте резюмировать. Если у вас нет цели гонять через себя транзитный трафик (подключать через себя другие AS) и не требуется гибкое распределение исходящего трафика, то вам дорога к Default Route.
Но вот точно не имеет смысла принимать от одного провайдера анонсы Full View, а от другого Default Route, т.к. один линк всегда будет простаивать и не станет гонять через себя исходящий трафик, ведь выбираться будет более специфический маршрут, который точно найдется среди анонсированного вам Full View.
Но ничего не мешает брать от всех провов Default Route и в нагрузку определенные префиксы (конкретно этого провайдера, например). Тогда до нужных ресурсов у вас будут специфические маршруты, но при этом без Full View.
Взглянем на пример настройки Default Route для линка в нижестоящему маршрутизатору:

Тогда на нашем бордере таблица маршрутов будет такой:
Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия
Теперь кроме обычных входящих в Full View маршрутов будет присутствовать и маршрут по-умолчанию.

Источник

Принципы работы протокола BGP

Сегодня мы рассмотрим протокол BGP. Не будем долго говорить зачем он и почему он используется как единственный протокол. Довольно много информации есть на этот счет, например тут.

Итак, что такое BGP? BGP — это протокол динамической маршрутизации, являющийся единственным EGP( External Gateway Protocol) протоколом. Данный протокол используется для построения маршрутизации в интернете. Рассмотрим как строится соседство между двумя маршрутизаторами BGP.

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия
Рассмотрим соседство между Router1 и Router3. Настроим их при помощи следующих команд:

Соседство внутри одной автономной системы — AS 10. После ввода данных на маршрутизаторе, например на Router1, данный маршрутизатор пытается настроить отношения соседства с маршрутизатором Router3. Начальное состояние, когда ничего не происходит называется Idle. Как только будет настроен bgp на Router1, он начнет слушать TCP порт 179 — перейдет в состояние Connect, а когда пытается открыть сессию с Router3, то перейдет в состояние Active.

После того, как сессия установится между Router1 и Router3, то происходит обмен Open сообщениями. Когда данное сообщение отправит Router1, то данное состояние будет называться Open Sent. А когда получит Open сообщение от Router3, то перейдет в состояние Open Confirm. Рассмотрим более подробно сообщение Open:

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия
В данном сообщение передается информация о самом протоколе BGP, который использует маршрутизатор. Обмениваясь Open сообщениями, Router1 и Router3 сообщают друг другу информацию о своих настройках. Передаются следующие параметры:

Для установления соседства необходимо выполнения следующих условий:

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Здесь указывают сети, о которых сообщает Router1 и Path attributes, которые являются аналогом метрик. О Path attributes мы поговорим более подробно. Также внутри TCP сессии передаются Keepalive сообщения. Они передаются, по умолчанию, каждые 60 секунд. Это Keepalive Timer. Если в течении Hold Timer-а не будет получено Keepalive сообщение, то это будет означать потерю связи с соседом. По умолчанию, он равен — 180 секундам.

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Вроде бы разобрались как маршрутизаторы передают друг другу информацию, теперь попытаемся разобраться с логикой работы протокола BGP.

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

Look for a route in the router’s current IP routing table that exactly matches the parameters of the network command; if the IP route exists, put the equivalent NLRI into the local BGP table.

Теперь поднимем BGP на всех оставшихся и посмотрим как происходит выбор маршрута внутри одной AS. После того, как BGP маршрутизатор получит маршруты от соседа, то начинается выбор оптимального маршрута. Здесь надо понять какого вида соседи могут быть — внутренние и внешние. Маршрутизатор по конфигурации понимает является ли сконфигурированный сосед внутренним или внешним. Если в команде:

в качестве параметра remote-as указан AS, который сконфигурирован на самом маршрутизаторе в команде router bgp 10. Маршруты, пришедшие из внутренней AS считаются внутренними, а маршруты из внешней соответственно внешними. И по отношению к каждому работает разная логика получения и отправки. Рассмотрим такую топологию:

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

На каждом маршрутизаторы настроен loopback интрефейс с ip: x.x.x.x 255.255.255.0 — где x номер маршрутизатора. На Router9 у нас есть loopback интерфейс с адресом — 9.9.9.9 255.255.255.0. Его мы будем анонсировать по BGP и посмотрим как он распространяется. Данный маршрут будет передан на Router8 и Router12. С Router8 данный маршрут попадет на Router6, но на Router5 в таблице маршрутизации его не будет. Также и на Router12 данный маршрут попадет в таблицу, но на Router11 его также не будет. Попытаемся разобраться с этим. Рассмотрим какие данные и параметры передается Router9 своим соседям, сообщая об этом маршруте. Пакет внизу будет отправлен с Router9 на Router8.

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия
Информация о маршруте состоит из аттрибутов пути (Path attributes).

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

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

Далее, Next-hop. Атрибут Next-hop

Теперь Router6 передал маршрут Router5 и первому правилу Next-hop не изменил. То есть, Router5 должен добавить 9.9.9.0 [20/0] via 192.168.68.8, но у него нет маршрута до 192.168.68.8 и поэтому данный маршрут добавлен не будет, хотя информация о данном маршруте будет храниться в таблице BGP:

Та же самая ситуация произойдет и между Router11-Router12. Чтоб избежать такой ситуации необходимо настроить, чтоб Router6 или Router12, передавая маршрут своим внутренним соседям, подставляли в качестве Next-hop свой ip адрес. Делается при помощи команды:

После данной команды, Router6 отправит Update сообщение, где для маршрутов в качества Next-hop будет указан ip интерфейса Gi0/0 Router6 — 192.168.56.6, после чего данный маршрут уже попадет в таблицу маршрутизации.

Пойдем дальше и посмотрим появиться ли этот маршрут на Router7 и Router10. В таблице маршрутизации его не окажется и мы могли бы подумать, что проблема как в первом с параметром Next-hop, но если мы посмотрим вывод команды show ip bgp, то увидим, что там маршрут не был получен даже с неправильным Next-hop, что означает, что маршрут даже не передавался. И это нас приведет к существованию еще одного правила:

Маршруты, полученные от внутренних соседей не передаются другим внутренним соседям.

Так как, Router5 получил маршрут от Router6, то другому своему внутреннему соседу он передаваться не будет. Для того, чтобы передача произошла необходимо настроить функцию Route Reflector, либо настроить полносвязные отношения соседства ( Full Mesh), то есть Router5-7 каждый будет соседом с каждым. Мы будем в данном случае использовать Route Reflector. На Router5 необходимо использовать данную команду:

Route-Reflector меняет поведение BGP при передаче маршрута внутреннему соседу. Если внутренний сосед указан как route-reflector-client, то данным клиентам будут анонсироваться внутренние маршруты.

Маршрут не появился на Router7? Не забываем также и про Next-hop. После данных манипуляций маршрут должен и на Router7, но этого не происходит. Это нас подводит к еще одному правилу:

Правило next-hop работает только для External маршрутов. Для внутренних маршрутов замена атрибута next-hop не происходит.

И мы получаем ситуацию, в которой необходимо создать среду при помощи статичной маршрутизации или протоколов IGP сообщить маршрутизаторам о всех маршрутах внутри AS. Пропишем статические маршруты на Router6 и Router7 и после этого получим нужный маршрут в таблице маршрутизаторе. В AS 678 же мы поступим немного иначе — пропишем статические маршруты для 192.168.112.0/24 на Router10 и 192.168.110.0/24 на Router12. Далее, установим отношения соседства между Router10 и Router12. Также настроим на Router12 отправку своего next-hop для Router10:

Итогом будет то, что Router10 будет получать маршрут 9.9.9.0/24, он будет получен и от Router7 и от Router12. Посмотрим какой выбор сделает Router10:

Как мы видим, два маршрута и стрелка ( > ) означает, что выбран маршрут через 192.168.112.12.
Посмотрим как происходит процесс выбора маршрута:

Теперь все маршруты от данного соседа будут иметь такой вес. Посмотрим как изменится выбор маршрута после данной манипуляции:

Но как видим один маршрут через Router6. А где же маршрут через Router7? Может и на Router7 его нет? Смотрим:

Странно, вроде все в порядке. Почему же он не передается на Router5? Все дело в том, что у BGP есть правило:

Маршрутизатор передает только те маршруты, которые использует сам.

Router7 используется маршрут через Router5, поэтому маршрут через Router10 передаваться не будет. Вернемся к Local Preference. Давайте зададим Local Preference на Router7 и посмотрим как отреагирует на это Router5:

Итак, мы создали route-map, в который попадаются все маршруты и сказали Router7, чтоб при получение он менял параметр Local Preference на 250, по умолчанию равен 100. Смотрим, что произошло на Router5:

Посмотрим, что произойдет, если допустим Router6 потеряет маршрут 9.9.9.0/24 через Router9. Отключим интерфейс Gi0/1 Router6, который сразу поймет, что BGP сессия с Router8 оборвана и сосед пропал, а значит и маршрут, полученные от него не действительны. Router6 сразу отправляет Update сообщения, где указывает сеть 9.9.9.0/24 в поле Withdrawn Routes. Как только Router5 получит подобное сообщение, отправит его к Router7. Но так как у Router7 есть маршрут через Router10, то в ответ сразу отправит Update c новым маршрутом. Если детектировать падения соседа по состоянию интерфейса не получается, то придеться ждать срабатывания Hold Timer-а.

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

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Здесь ссылка на данную лабу, а тут конфигурация для GNS3.

Пришлось бы настраивать Route-Reflector или полносвязые отношения соседства. Разбивая одну AS 2345 на 4 sub-AS ( 2,3,4,5) для каждого маршрутизатора, мы в итоге получаем другую логику работы. Все отлично описано здесь.

Источник

Что такое bgp сессия

Если вы считаете, что её стоило бы доработать как можно быстрее, пожалуйста, скажите об этом.

BGP (Border Gateway Protocol) — это основной протокол динамической маршрутизации, который используется в Интернете.

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

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

Маршрутизация осуществляется пошагово от одной автономной системы к другой. Все политики BGP настраиваются, в основном, по отношению к внешним/соседним автономным системам. То есть, описываются правила взаимодействия с ними.

Так как BGP оперирует большими объемами данных (текущий размер таблицы для IPv4 более 450 тысяч маршрутов), то принципы его настройки и работы отличаются от внутренних протоколов динамической маршрутизации (IGP).

Содержание

[править] Терминология протокола

[править] Описание протокола

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

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

Как и другие протоколы динамической маршрутизации, BGP может передавать трафик только на основании IP-адреса получателя. Это значит, что с помощью BGP нет возможности настроить правила маршрутизации, в которых будет учитываться, например, то, из какой сети был отправлен пакет или данные какого приложения передаются. Если принимать решение о том как должен маршрутизироваться пакет, необходимо по каким-то дополнительным критериям, кроме адреса получателя, необходимо использовать механизм policy-based routing (PBR).

[править] Основные характеристики протокола

BGP это path-vector протокол с такими общими характеристиками:

[править] Автономная система

Автономная система (autonomous system, AS) — это система IP-сетей и маршрутизаторов, управляемых одним или несколькими операторами, имеющими единую, четко определенную политику маршрутизации с Интернетом (RFC 1930).

Диапазоны номеров автономных систем (autonomous system number, ASN):

[править] Описание работы протокола

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

По умолчанию BGP отправляет keepalive-сообщения каждые 60 секунд.

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

[править] Внутренний BGP (Internal BGP) и Внешний BGP (External BGP)

Если iBGP-маршрутизаторы работают в нетранзитной AS, то соединение между ними должно быть full mesh. Это следствие принципов работы протокола — если маршрутизатор, находящийся на границе AS, получил обновление, то он передает его всем соседям; соседи, которые находятся внутри автономной системы, больше это обновление не распространяют, так как считают, что все соседи внутри AS уже его получили.

[править] Таймеры протокола

[править] Типы сообщений BGP

У всех сообщений BGP такой формат заголовка:

Поля заголовка BGP-сообщений:

[править] Open

Open — используется для установки отношений соседства и обмена базовыми параметрами. Отправляется сразу после установки TCP-соединения.

Формат сообщения Open:

Кроме стандартного заголовка пакета BGP, в сообщении Open такие поля:

[править] Update

Update — используется для обмена информацией маршрутизации.

Формат сообщения Update:

[править] Notification

Notification — используется когда возникают ошибки BGP. После отправки сообщения сессия с соседом разрывается.

Формат сообщения Notification:

Кроме стандартного заголовка пакета BGP, в сообщении Notification такие поля:

[править] Keepalive

Keepalive — используется для поддерживания отношений соседства, для обнаружения неактивных соседей.

Сообщения Keepalive состоят только из заголовка пакета (длина 19 октетов).

Если периодичность отправки keepalive-сообщений выставлена в 0, то сообщения не отправляются.

[править] Отношения соседства

Для того чтобы установить отношения соседства, в BGP надо настроить вручную каждого соседа.

Когда указывается сосед локального маршрутизатора, обязательно указывается автономная система соседа. По этой информации BGP определяет тип соседа:

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

BGP выполняет такие проверки, когда формирует отношения соседства:

У первого пункта проверки есть некоторая особенность: только у одного из двух маршрутизаторов IP-адрес, указанный как адрес отправки обновлений, должен быть указан в команде neighbor другого маршрутизатора.

BGP выполняет проверку таймеров keepalive и hold, однако несовпадение этих параметров не влияет на установку отношений соседства. Если таймеры не совпадают, то каждый маршрутизатор будет использовать меньшее значение таймера hold.

[править] Состояния связи с соседями

Если не совпали IP-адреса с соседом, то этот сосед будет в состоянии active.

[править] Атрибуты пути (path attributes)

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

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

[править] Autonomous system path

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

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

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

[править] Next-hop

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Third party next hop: Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

[править] Origin

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

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

[править] Local preference

Атрибут Local preference:

[править] Atomic aggregate

Метка, указывающая, что NLRI является summary.

[править] Aggregator

Список RID и ASN маршрутизаторов, создавших summary NLRI.

[править] Communities

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

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

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

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

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

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

[править] Multi exit discriminator (MED)

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

[править] Выбор пути

Характеристики процедуры выбора пути протоколом BGP:

[править] Cisco

На маршрутизаторе Cisco, если не настроены никакие политики выбора пути, выбор пути происходит таким образом (на каждый следующий шаг маршрутизатор переходит только при совпадении значений на предыдущем):

Если существует несколько маршрутов до одной сети назначения, будет выбран только один из них. Каждый шаг в алгоритме выбора лучшего маршрута пытается устранить все, кроме одного маршруты к пункту назначения. Если на шаге алгоритма маршрутов все еще больше одного, будет выполнен переход на следующий шаг алгоритма. Таким образом, алгоритм работает до тех пор, пока это необходимо. В устройствах Juniper выбор наилучшего маршрута происходит по следующему алгоритму:

Только лучший путь помещается в таблицу маршрутизации и анонсируется BGP-соседям.

[править] BGP в маршрутизаторах Cisco

[править] BGP в маршрутизаторах Juniper

[править] BGP в Quagga

[править] Конфигурационные файлы qua2, qua4, qua6

Конфигурационные файлы на странице BGP/config.

[править] Дополнительная информация

Источник

ИТ База знаний

Полезно

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Навигация

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Основы протокола Border Gateway Protocol (BGP)

Основной протокол маршрутизации

В этой статье вы познакомитесь с основами BGP и узнаете о его различных типах сообщений и состояниях.

Полный курс по Сетевым Технологиям

В курсе тебя ждет концентрат ТОП 15 навыков, которые обязан знать ведущий инженер или senior Network Operation Engineer

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Все статьи из цикла про BGP:

Полное руководство по BGP в PDF

Ох как мы любим PDF 🙃 Для вашего удобства, весь цикл статей по BGP (Border Gateway Protocol) мы «упаковали» в документ формата PDF.

Видео: Основы BGP за 7 минут

Обзор BGP

На рисунке 1 показан пример топологии BGP.

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Именно поэтому протокол BGP является протоколом, который обеспечивает функционирование сети. Интернет-провайдеры (ISP) могут использовать BGP для перемещения префиксной информации между другими Интернет-провайдерами. Однако уникальные характеристики BGP на этом не заканчиваются. Одна из вещей, которая очень уникальна в протоколе, заключается в том, что он формирует пиринги (*равноправный информационный обмен) точка-точка с другими спикерами BGP, и вы должны создавать эти пиринги вручную.

С протоколом пограничного шлюза (BGP) нет такой вещи, как автоматическое формирование соседства с целой кучей устройств на одном сегменте. Для каждого из устройств, с которыми BGP должен пиринговать, он делает это с помощью одного однорангового отношения, которое мы предпочитаем называть пирингом BGP.

Как компонент прикладного уровня, BGP делает что-то блестящее. Он использует протокол управления передачей (TCP) для своих операций. Если мы рассмотрим EIGRP в качестве примера, то создателям пришлось приложить большие усилия, чтобы встроить надежность в сам протокол. Например, спикер EIGRP будет передавать многоадресные передачи, и, если это не сработает, он вернется к одноадресным передачам, чтобы попытаться обеспечить надежность.

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

Когда мы формируем пиринг между автономными системами, это называется протоколом внешнего пограничного шлюза (EBGP). (Примечание: в некоторых литературных источниках EBGP пишется как eBGP.) Помните, что причина, по которой BGP различает пиринг IBGP и пиринг EBGP, заключается в том, что эксплуатационные характеристики должны изменяться в зависимости от того, как выполняется пиринг. Например, мы заявили, что существует путь AS, который записывает автономные системы, которые передаются. Очевидно, что при пиринге EBGP, когда префикс передается от одного AS к другому AS, отправляющий AS должен поместить свою автономную систему в путь. Но с IBGP, префикс остается в AS, поэтому протокол BGP не обновляет значение AS. Вы можете вернуться к рисунку 1, чтобы увидеть эти различные типы пиринга в действии.

Таким образом, правила меняются, когда мы говорим о IBGP против EBGP, чтобы быть последовательным и безошибочными. И уникальные свойства BGP просто не заканчиваются на этом.

Типы сообщений BGP, форматы и соседние типы сообщений состояния соседства BGP

Многие люди описывают протокол пограничного шлюза (BGP) как чрезвычайно сложный протокол, но я не согласна с этим. Видите ли, установка политик BGP и контроль распространения префиксов внутри BGP-это может быть довольно сложно. Но сам протокол, хотя и уникален, в основном прост в своей работе.

В этом части статьи мы рассмотрим типы сообщений BGP. На рисунке 2 показаны различные типы сообщений BGP.

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Запомните первый шаг. Когда два спикера BGP хотят сформировать пиринг, они будут полагаться на протокол управления передачей (TCP). И, конечно, мы знаем, что будет three-way handshake (трехстороннее рукопожатие) с TCP, чтобы начать этот надежный сеанс связи.

Что же происходит дальше? Так это то, что эти устройства будут обмениваться открытыми сообщениями. Открытое сообщение содержит очень важную информацию, основным компонентом которой является номер автономной системы однорангового узла. Это будет определять, является ли это пиринг IBGP или пиринг EBGP.

Если в какой-то момент времени что-то пойдет не так, спикеры BGP могут использовать простое сообщение Notification. Данное сообщение прерывает пиринг в результате ошибки, которая может произойти с BGP.

Одним из очень интересных типов сообщений BGP является тип сообщения Route Refresh (обновления маршрута). Хотя этот тип сообщений не был включен в исходный стандарт BGP, большинство наших основных сетевых вендоров поддерживают Route Refresh. Route Refresh позволяют соседям обновлять, скажем, информацию о маршруте BGP или даже обновлять вещи после довольно серьезной реконфигурации политики, не разрушая пиринг и не влияя на пиринг каким- либо большим негативным образом.

Рисунок 3 показывает эти типы сообщений в действии благодаря захвату Wireshark’ом обмена сообщениями BGP в нашем примере топологии из рисунка 1.

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Форматы сообщений BGP

В этом части статьи мы еще больше узнаем об эксплуатационных характеристиках Border Gateway Protocol, более подробно рассмотрев типы сообщений BGP.

Каждый тип сообщения имеет заголовок BGP. Этот заголовок показан на рисунке 4. Вы видите, что заголовок BGP имеет большое поле маркера. Можно подумать, что это чрезвычайно важно. Он имеет размер 16 октетов. Как оказалось, это поле будет заполнено у всех.

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

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

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

Важными полями в заголовке, будут длина (Length) (то есть длина всего сообщения) и поля типа (Type). Поле Тип указывает, с каким типом сообщения BGP мы имеем дело.

Если, например, в этом поле 1, вы имеете дело с открытым (Open) сообщением BGP. Значение 2 указывает на сообщение об обновлении (Update). А 3 означает уведомление (Notification). Значение 4 будет иметь сообщение Keepalive. 5 указывает на необязательное Route Refresh.

То, что следует за информацией заголовка, конечно же, является данными, за одним важным исключением- это сообщение Keepalive. По определению, в сообщении Keepalive нет никаких данных.

Теперь я надеюсь вы понимаете, что, когда ваша система хочет сформировать BGP-пиринг с другим устройством, она собирается отправить открытое сообщение. На рисунке 5 показан формат этих сообщений. Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Когда мы смотрим на формат открытого (Open) сообщения, мы замечаем, что там есть номер версии. Именно так BGP указывает на версию BGP, которую вы используете.

Ваша система также отправит свой номер AS в открытом сообщении. Это очень важно для такого поведения IBGP по сравнению с EBGP. Существует значение Hold Time. Что же такое Hold Time? Когда маршрутизатор, с которым вы хотите свериться, получает Open сообщение, он смотрит время удержания (Hold Time), смотрит на свое собственное настроенное Hold Time, а затем использует меньшее из двух значений. Hold Time должно быть либо нулевым, либо не менее трех секунд.

Есть поле BGP Identifier. Это Ваш BGP Router ID, и это уникальное значение, которое будет однозначно отличать вашу систему в пирингах BGP.

Наконец, у нас есть дополнительные параметры (Optional Parameter), которые можно задать с помощью открытого сообщения. Там есть необязательная длина параметра (Optional Parameter Length), а затем сами параметры, дающие дополнительную гибкость работы с протоколом.

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Сообщение об обновлении BGP содержит индикатор длины отозванных маршрутов (Withdrawn Routes Length). Это гарантирует, что сообщение обновления является средством для маршрутов, которые будут удалены из таблицы BGP соседа. Примечание: затем в сообщение об обновлении вставляется список изъятых маршрутов.

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

Создатели BGP сделали гениальную вещь. Они создали протокол для передачи NLRI таким образом, чтобы он был гибким по мере изменения сетей и необходимости передачи новой информации. BGP создан для того, чтобы сразу же запускать для нас такие вещи, как IPv6. Он также может легко переносить префиксы VPN IPv4 внутри чего-то вроде MPLS VPN.

На рисунке 7 показаны поля сообщения уведомления (Notification).

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Соседство BGP

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

Многие IGP спроектированы так, чтобы быть максимально быстро сходящимися. Это происходит потому, что в момент, когда происходит изменение внутри сети вашей организации, мы хотим sub-second сходимости других устройств, чтобы мы знали об этом изменении. BGP спроектирован по-другому. Таймеры имеют гораздо большую продолжительность, чем мы привыкли бы с нашим IGP, потому что мы хотим стабильности, жертвуя скоростью сходимости. В конце концов, BGP имеет дело с общедоступными таблицами маршрутизации интернета в развертываниях поставщиков услуг. Эти таблицы маршрутизации очень массивны. Нестабильность в этой среде приведет к катастрофе всего публичного Интернета.

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

Что такое bgp сессия. Смотреть фото Что такое bgp сессия. Смотреть картинку Что такое bgp сессия. Картинка про Что такое bgp сессия. Фото Что такое bgp сессия

Обратите внимание, что есть состояние простоя, когда устройство не инициирует ни одно из других состояний, и есть установленное состояние, когда оно полностью установлено со своим узлом. Что несколько удивительно, так это то, что есть все эти “промежуточные” состояния подключения, активного, открытого подтверждения (OpenConfirm) и активного.

Состояние — подключения-это состояние, в котором устройство BGP ожидает завершения TCP- соединения с соседним устройством.

Используя в Cisco CLI специальные команды, можно узнать все о состоянии BGP. Пример 1 показывает использование команды show ip bgp summary для проверки соседнего состояния.

Обратите внимание на пример 1. Этот пиринг BGP находится в состоянии ожидания (параметр State/PfxRcd в состоянии Idle). Как только произойдет соединение значение IDLE заменится на 1 (Если ATL использует только один префикс с TPA 1).

Онлайн курс по Кибербезопасности

Изучи хакерский майндсет и научись защищать свою инфраструктуру! Самые важные и актуальные знания, которые помогут не только войти в ИБ, но и понять реальное положение дел в индустрии

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *