Протокол граничного шлюза Border Gateway Protocol версии 4

Протокол граничного шлюза Border Gateway Protocol (BGP) претерпел несколько изменений с момента выхода его первой версии BGP-1 в 1989 году. Повсеместное внедрение BGP-4 началось в 1993 rоду. Это первая из версий BGP, в которой появились возможности агрегации (объединения), что позволило реализовать бесклассовую междоменну маршрутизацию (classless interdomain routing — CIDR), и обеспечить поддержку суперсетей.

AS1

AS2

ASn

дерево маршрутов

BGP-каналы

Рис.5. 1. Пример дерева маршрутов между AS

Протокол BGP не предъявляет никаких требований к топологии сети. Принцип его действия предполагает, что маршрутизация внутри автономной системы выполняется с помощью внутренних протоколов маршрутизации, или, как их еще называют, интра- протоколов (например, Interior Gateway Protocol — IGP). В этой книге термин "внутренний" (intra) обозначает все, что относится к действиям внутри субъекта, а термин "внешний " (inter) означает события или действия, которые имеют место между субъектами. Протоколом ВОР на основе информации, полученной от различных маршрутизаторов, выстраивается граф автономных систем со всеми связями между узлами. Такой граф иногда называют деревом. Если рассматривать сеть Internet "глазами" протокола BGP, то это будет граф, состоящий из автономных систем (AS), где каждой AS соответствует уникальный номер. Соединение между двумя AS формирует путь, а информация о совокупности путей от одного узла в AS к узлу в другой AS составляет маршрут. Протокол BGP активно использует информацию о маршрутах к заданному пункту назначения, что позволяет избежать образования петель маршрутизации между доменами. На рис. 5.1 представлена концепция дерева маршрутов, положенная в основу протокола BGP.

Как работает BGP

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

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

Маршрутизаторы, которые работают с протоколом BGP, часто называют спикерами BGP (BGP speakers). Два спикера BGP, образующих TCP-соединение друг с другом для обмена маршрутной информацией, называют соседними (neighbors) или взаимодействующими (peers). На рис. 5.2 показана схема такого взаимодействия. Взаимодействующие маршрутизаторы сначала обмениваются открытыми сообщениями для того, чтобы определить параметры соединения. Эти сообщения используются для согласования параметров, таких как номер версии BGP и др.

Рис. 5.2. Маршрутизаторы BGP становятся соседями

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

В начале сеанса ВОР между несколькими спикерами ВОР ведется обмен всеми маршрутами, которые могут далее использоваться в работе по протоколу ВОР (рис. 5.3). После того как соединение установлено и проведен начальный обмен маршрутами, по сети рассылается лишь информация о новых маршрутах — так называемые инкремент-ные обновления (incremental updates). Применение инкрементных обновлений, по сравнению с периодическим обновлением маршрутов, которое использовалось в других протоколах, таких как EGP, позволило многократно увеличить производительность центральных процессоров на маршрутизаторах и разгрузить полосу пропускания.

Согласно протоколу ВОР, пара маршрутизаторов уведомляется о маршрутах и изменениях в них с помощью сообщения UPDATE. Сообщение UPDATE, помимо другой полезной информации, содержит список записей типа <длина, префикс> (<Iength, prefix>),

указывающих на список узлов, на которые можно доставить трафик через спикер ВОР. В сообщение UPDATE также включены атрибуты маршрута. К ним относятся: степень предпочтения определенного маршрута и список AS, через которые пролегает маршрут.

Рис. 5.3. Обмен обновлениями маршрутной информации

Рис. 5.4. Маршрут NJ выходит из строя. Посылается частичное обновление

В случае если маршрут становится недействительным, т.е.  по нему невозможно достичь пункта назначения, спикер ВОР информирует об этом своих соседей и удаляет недействительный маршрут. Как показано на рис. 5.4, удаляемые маршруты также включаются в сообщение UPDATE. Таким образом, эти маршруты уже нельзя использовать. Если же информация  о маршруте изменилась или для того же префикса выбран новый маршрут, то процедура удаления не выполняется; в этом случае достаточно лишь объявить о замене маршрута.

На рис. 5.4 показана система в уравновешенном состоянии (steady state): если нет никаких изменений в структуре маршрутов, то маршрутизаторы обмениваются только пакетами KEEPALIVE.

Сообщения KEEPALIVE периодически посылаются  между соседними маршрутизаторами ВОР, чтобы убедиться, что соединение находится в нормальном состоянии. Пакеты KEEPALIVE (длиной 19 байт каждый) не создают практически никакой нагрузки на процессор маршрутизатора и полосу пропускания, так как им требуется очень незначительная полоса пропускания (один 152-битовый пакет каждые 60 секунд, т.е. около 2,5 байт/с).

В   протоколе   BGP   учитывается   номер   версии   таблицы   маршрутов,   чтобы

отслеживать изменения маршрутов. Если в таблицу маршрутов вносятся какие-либо изменения, то BGP автоматически увеличивает номер версии таблицы. Быстро растущие номера версии таблицы обычно указывают на то, что в сети имеется нестабильно работающий участок (хотя это довольно обычная ситуация для сетей крупных провайдеров Internet). Нестабильность сетей, подключенных к Internet по всему миру, приводит к росту номеров версий таблиц маршрутов на каждом спикере BGP, где имеются сведения обо всех маршрутных таблицах сети Internet. Для снижения воздействия этих неоднородностей в Internet были разработаны механизмы коммутации маршрутов и другие мероприятия (более подробно о них в главе 10, "Проектирование стабильных сетей на базе TCP/IP").

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