sonyps4.ru

Пояснить принцип работы протокола BGP. Основные пакеты и их форматы

Пограничный (внешний) шлюзовой протокол (Border Gateway Protocol, BGP) версии 4 является сегодня основным протоколом обмена маршрутной информацией между автономными системами Интернета. Протокол BGP пришел на смену протоколу EGP1, использовавшемуся в тот начальный период, когда Интернет имел единственную магистраль. Эта магистраль являлась центральной автономной системой, к которой присоединялись в соответствии с древовидной топологией все остальные автономные системы. Так как между автономными системами при такой структуре петли исключались, протокол EGP не предпринимал никаких мер для того, чтобы исключить зацикливание маршрутов.

Поясним основные принципы работы BGP на примере (рис. 1).

Рис. 1 Поиск маршрута между автономными системами с помощью протокола BGP

В каждой из трех автономных систем (AS 1021, AS 363 и AS 520) имеется несколько маршрутизаторов, исполняющих роль внешних шлюзов. На каждом из них работает протокол BGP, с помощью которого они общаются между собой.

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

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

Для установления сеанса с указанными соседями BGP-маршрутизаторы используют протокол TCP (порт 179). При установлении BGP-сеанса могут применяться разнообразные способы аутентификации маршрутизаторов, повышающие безопасность работы автономных систем.

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

В одном сообщении UPDATE можно объявить об одном новом маршруте или аннулировать несколько маршрутов, переставших существовать. Под маршрутом в BGP понимается последовательность автономных систем, которую нужно пройти на пути к указанной в адресе сети. Более формально информация о маршруте (BGP Route) к сети (Network/ Maskjength) выглядит так:
BGP Route = AS_Path; NextHop; Network/Maskjength;
Здесь AS_Palh - набор номеров автономных систем, NextHop - IP-адрес маршрутизатора, через который нужно передавать пакеты в сеть Network/Maskjength. Например, если маршрутизатор EG1 хочет объявить маршрутизатору EG2 о том, что в AS 1021 появилась новая сеть 202.100.5.0/24, то он формирует такое сообщение:

AS 1021; 194.200.30.1; 202.100.5.0/24,
после чего передает его маршрутизатору EG2 автономной системы AS 363 (с которым у него, конечно, должен быть установлен BGP-сеанс).

Маршрутизатор EG2, получив сообщение UPDATE, запоминает в своей таблице маршрутизации информацию о сети 202.100.5.0/24 вместе с адресом следующего маршрутизатора 194.200.30.1 и отметкой о том, что эта информация была получена по протоколу BGP. Маршрутизатор EG2 обменивается маршрутной информацией с внутренними шлюзами системы AS 363 по какому-либо протоколу группы IGP, например OSPF. Если у EG2 установлен режим перераспределения маршрутов BGP в маршруты OSPF, то все внутренние шлюзы AS 363 узнают о существовании сети 202.100.5.0/24 с помощью объявления OSPF, которое будет внешним. В качестве адреса следующего маршрутизатора маршрутизатор EG2 начнет теперь объявлять адрес собственного внутреннего интерфейса, например 192.17.100.2.

Однако для распространения сообщения о сети 202.100.5.0/24 в другие автономные системы, например в AS 520, протокол OSPF использоваться не может. Маршрутизатор EG3, связанный с маршрутизатором EG4 автономной системы 520, должен пользоваться протоколом BGP, генерируя сообщение UPDATE нужного формата. Для решения этой задачи он не может задействовать информацию о сети 202.100.5.0/24, полученную от протокола OSPF через один из своих внутренних интерфейсов, так как она имеет другой формат и не содержит, например, сведений о номере автономной системы, в которой находится эта сеть.
Проблема решается за счет того, что маршрутизаторы EG2 и EG3 также устанавливают между собой BGP-сеанс, хотя они и принадлежат одной и той же автономной системе. Такая реализация протокола BGP называется внутренней (Interior BGP, iBGP), в отличие от основной, внешней (Exterior BGP, eBGP). В результате маршрутизатор EG3 получает нужную информацию от маршрутизатора EG2 и передает ее внешнему соседу - маршрутизатору EG4. При формировании нового сообщения UPDATE маршрутизатор EG3 трансформирует сообщение, полученное от маршрутизатора EG2, добавляя в список автономных систем собственную автономную систему AS 520, а полученный адрес следующего маршрутизатора заменяет адресом собственного интерфейса:

AS 363, AS 1021; 132.15.64.3; 202.100.5.0/24.

Номера автономных систем позволяют исключать зацикливание сообщений UPDATE. Например, когда маршрутизатор EG5 передаст сообщение о сети 202.100.5.0/24 маршрутизатору EG6, то последний не будет его использовать, так как оно будет иметь вид:
AS 520, AS 363, AS 1021; 201.14.110.3; 202.100.5.0/24.

Так как в списке автономных систем уже есть номер собственной автономной системы, очевидно, что сообщение зациклилось.

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

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

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

BGP, наряду с DNS , является одним из главных механизмов, обеспечивающих функционирование Интернета.

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

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

Сообщение BGP начинается с заголовка, после которого, в зависимости от типа сообщения, могут следовать данные. Максимальная длина сообщения - 4096 октетов, минимальная - 19 октетов. Заголовок сообщения содержит следующие поля:

  • Маркер (16 октетов) - используется для совместимости, должен быть заполнен единицами;
  • Длина (2 октета) - длина сообщения в октетах, включая заголовок;
  • Тип (1 октет):
    • 1 - Открытие;
    • 2 - Обновление информации;
    • 3 - Оповещение;
    • 4 - Сохранение соединения.

Открытие

Первое сообщение после установки соединения должно быть «Открытие». Если сообщение успешно обработано, в ответ будет послано «Сохранение соединения». В дополнение к заголовку BGP сообщение «Открытие» содержит следующие поля:

  • Версия (1 октет) - версия протокола, текущее значение 4;
  • Моя система (2 октета) - номер автономной системы;
  • Интервал времени (2 октета) - максимальный интервал времени в секундах между получением сообщений «Обновление информации» или «Сохранение соединения»;
  • Идентификатор отправителя (4 октета) - устанавливается равным IP-адресу;
  • Длина дополнительных параметров (1 октет);
  • Дополнительные параметры:
    • Тип параметра (1 октет);
    • Длина параметра (1 октет);
    • Значение параметра.

Обновление информации

Сообщение «Обновление информации» предназначено для передачи информации о маршрутах между АС. Сообщение может указывать новые маршруты и удалять неработающие. Структура сообщения:

  • Длина удаляемых маршрутов (2 октета);
  • Удаляемые маршруты:
    • Длина (1 октет) - длина в битах префикса IP-адреса;
    • Префикс IP-адреса, дополненный минимальным количеством бит до полного октета;
  • Длина атрибутов пути (2 октета);
  • Атрибуты пути:
    • Тип атрибута:
      • Флаг атрибута;
      • Код атрибута;
    • Длина атрибута (1 или 2 октета, в зависимости от флага);
    • Данные атрибута;
  • Информация о достижимости - список префиксов IP-адресов:
    • Длина (1 октет) - длина в битах префикса IP-адреса (нулевая длина - соответствие всем IP-адресам);
    • Префикс IP-адреса, дополненный минимальным количеством бит до полного октета.

Все атрибуты пути соответствуют всем записям в поле «Информация о достижимости».

Сохранение соединения

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

Оповещение

Оповещение посылается в случае обнаружения ошибки, при этом соединение закрывается. Сообщение содержит следующие поля:

  • Код ошибки (1 октет);
  • Субкод (1 октет);
  • Данные.

Процесс выбора

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

  • Вычисление степени предпочтения каждого полученного маршрута;
  • Выбор наилучшего маршрута для каждого места назначения и занесение его в базу маршрутов;
  • Передача маршрутов на другие маршрутизаторы, при этом может производиться суммирование маршрутов.

См. также

Ссылки

  • RFC 1105 (англ.) , A Border Gateway Protocol version 1
  • RFC 1163 (англ.) , A Border Gateway Protocol version 2
  • RFC 1164 (англ.) , Application of the Border Gateway Protocol in the Internet
  • RFC 1265 (англ.) , BGP Protocol Analysis
  • RFC 1266 (англ.) , Experience with the BGP Protocol
  • RFC 1403 (англ.) , BGP OSPF Interaction
  • RFC 4271 (англ.) , A Border Gateway Protocol 4 (BGP-4)
  • RFC 1772 (англ.) , Application of the Border Gateway Protocol version 4 in the Internet
  • RFC 1773 (англ.) , Experience with the BGP-4 Protocol
  • RFC 4274 (англ.) , BGP-4 Protocol Analysis
  • RFC 1863 (англ.) , A BGP4/IDRP Route Server alternative to a full mesh routing
  • RFC 1997 (англ.) , BGP Communities Attribute
  • RFC 1998 (англ.) , An Application of the BGP Community Attribute in Multi-home Routing
  • BGP протокол (рус.) , Использование BGP для междоменного роутинга (примеры настройки Cisco маршрутизаторов)

Литература

  • Установка и настройка BGP , используя ПО маршрутизации Quagga в Gentoo Linux
  • Настройка BGP на Linux (Quagga Zebra) с автоматической балансировкой нагрузки по трем каналам и резервированием
  • Уильям Р. Паркхерст Справочник по командам и настройке протокола BGP-4 маршрутизаторов Cisco = Cisco BGP-4 Command and Configuration. - М .: «Вильямс», 2002. - С. 384. - ISBN 1-58705-017-X
  • BGP протокол (перевод на русский) = CISCO UNIVER CD.
Маршрутизатор обычно закрепляется за несколькими сетями. Когда он получает пакет, он должен решить две задачи:
  1. к какой сети он должен его передать;
  2. по какому пути.

Последнее решение основано на выборе оптимального пути. Какой доступный путь является оптимальным путем? Это обычно определяется метрикой. Метрика – это условная стоимость передачи по сети. Полное измерение конкретного маршрута равно сумме метрик сетей, которые включают в себя маршрут . Маршрутизатор выбирает маршрут с наименьшей метрикой. Метрика назначается для интерфейса сети в зависимости от типа протокола. Некоторые простые протоколы, подобно протоколу маршрутной информации ( RIP – Routing Information Protocol ), рассматривают все сети как одинаковые. Тогда стоимость прохождения через каждую сеть - одна и та же, и для определения метрики подсчитываются участки. Так, если пакет, чтобы достигнуть конечного пункта, проходит через 10 сетей, полная стоимость составляет 10 участков.

Другие протоколы, такие как "первоочередное открытие наикратчайших путей" ( OSPF - Open Shortest Path First ), позволяют администратору назначить стоимость для передачи через сеть , основанную на типе требуемого обслуживания. Маршрут через сеть может иметь различную стоимость (метрику). Например, если для типа сервиса желательна максимальная производительность , спутниковый канал имеет меньшую метрику, чем оптическая линия. С другой стороны, если типу сервера желательна минимальная задержка, оптическая линия имеет меньшую метрику, чем спутниковый канал. OSPF позволяет каждому маршрутизатору иметь таблицу последовательностей маршрутов, основанную на требуемом типе сервиса.

Другие протоколы определяют метрику различно. В протоколе пограничной маршрутизации ( BGP - Border Gateway Protocol ) критерий - это политика, которую может устанавливать администратор . Политика - это принцип, по которому определяется путь .

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

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

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

Внутренняя и внешняя маршрутизация

Сегодня Интернет - громадная сеть , так что один протокол маршрутизации не может обрабатывать задачу обновления таблиц всех маршрутизаторов. По этой причине Интернет разделяется на автономные системы. Автономная система (Autonomous System – AS) - группа сетей и маршрутизаторов под управлением одного администратора. Маршрутизация внутри автономной системы отнесена к внутренней маршрутизации . Маршрутизация между автономными системами отнесена к внешней маршрутизации . Каждая автономная система может выбрать протокол внутренней маршрутизации для того, чтобы обрабатывать маршрутизацию внутри автономной системы. Однако для обработки маршрутизации между автономными системами выбирается только один протокол маршрутизации .

Разработано несколько внутренних и внешних протоколов. В этой лекции мы коснемся только наиболее популярных из них - внутренних протоколов RIP и OSPF и одного внешнего протокола BGP . RIP и OSPF используются для обновления таблиц маршрутизации внутри автономной системы. Протокол BGP применяется в обновлении таблиц маршрутизации для маршрутизаторов, которые объединяют вместе автономные системы.

Протокол маршрутной информации (RIP)

Протокол маршрутной информации ( RIP – Routing Information Protocol ) - внутренний протокол маршрутизации , используется внутри автономной системы. Это очень простой протокол, основанный на применении дистанционного вектора маршрутизации. В этом разделе сначала рассмотрим принцип дистанционного вектора маршрутизации, так как он применяется в RIP , а затем обсудим сам протокол RIP .

Вектор расстояния маршрутизации

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

  1. Распределение информации о входе в автономную систему . Каждый маршрутизатор распределяет информацию о входе соседним автономным системам. Вначале эта информация может быть не подробной. Однако объем и качество информации не играют роли. Маршрутизатор посылает, во всяком случае, все что имеет.
  2. Распределение только соседям . Каждый маршрутизатор посылает свою информацию только к соседям. Он посылает информацию, которую получает через все интерфейсы.
  3. Распределение через регулярные интервалы . Каждый маршрутизатор посылает свою информацию соседней автономной системе через фиксированные интервалы, например, каждые 30 с.

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

Этот протокол маршрутизации предназначен для сравнительно небольших и относительно однородных сетей. Маршрут характеризуется вектором расстояния до места назначения. Предполагается, что каждый маршрутизатор является отправной точкой нескольких маршрутов до сетей, с которыми он связан. Описания этих маршрутов хранится в специальной таблице, называемой маршрутной. Таблица маршрутизации RIP содержит по записи на каждую обслуживаемую машину (на каждый маршрут). Запись должна включать в себя:

  • IP -адрес места назначения.
  • Метрика маршрута (от 1 до 15; число шагов до места назначения).
  • IP -адрес ближайшего маршрутизатора по пути к месту назначения.
  • Таймеры маршрута.

Периодически (раз в 30 сек) каждый маршрутизатор посылает широковещательно копию своей маршрутной таблицы всем соседям-маршрутизаторам, с которыми связан непосредственно. Маршрутизатор-получатель просматривает таблицу. Если в таблице присутствует новый путь или сообщение о более коротком маршруте, или произошли изменения длин пути, эти изменения фиксируются получателем в своей маршрутной таблице. Протокол RIP должен быть способен обрабатывать три типа ошибок:

  • Циклические маршруты.
  • Для подавления нестабильностей RIP должен использовать малое значение максимально возможного числа шагов (не более 16).
  • Медленное распространение маршрутной информации по сети создает проблемы при динамичном изменении маршрутной ситуации (система не поспевает за изменениями). Малое предельное значение метрики улучшает сходимость, но не устраняет проблему.

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

Недостатки RIP

  • RIP не работает с адресами субсетей. Если нормальный 16-бит идентификатор ЭВМ класса B не равен 0, RIP не может определить является ли не нулевая часть c убсетевым ID , или полным IP -адресом.
  • RIP требует много времени для восстановления связи после сбоя в маршрутизаторе (минуты). В процессе установления режима возможны циклы.
  • Число шагов важный, но не единственный параметр маршрута, да и 15 шагов не предел для современных сетей.

OSPF (Open Shortest Path First ) - протокол динамической маршрутизации, основанный на технологии отслеживания состояния канала (link-state technology) и использующий для нахождения кратчайшего пути Алгоритм Дейкстры (Dijkstra’s algorithm).

OSPF имеет следующие преимущества:

  • Высокая скорость сходимости по сравнению с дистанционно-векторными протоколами маршрутизации;
  • Поддержка сетевых масок переменной длины (VLSM);
  • Оптимальное использование пропускной способности (т. к. строится минимальный остовный граф по алгоритму Дейкстры);
Описание работы протокола
  1. Маршрутизаторы обмениваются hello-пакетами через все интерфейсы, на которых активирован OSPF. Маршрутизаторы, разделяющие общий канал передачи данных, становятся соседями, когда они приходят к договоренности об определённых параметрах, указанных в их hello-пакетах.
  2. На следующем этапе работы протокола маршрутизаторы будут пытаться перейти в состояние смежности со своими соседями. Переход в состояние смежности определяется типом маршрутизаторов, обменивающихся hello-пакетами, и типом сети, по которой передаются hello-пакеты. OSPF определяет несколько типов сетей и несколько типов маршрутизаторов. Пара маршрутизаторов, находящихся в состоянии смежности, синхронизирует между собой базу данных состояния каналов.
  3. Каждый маршрутизатор посылает объявления о состоянии канала маршрутизаторам, с которыми он находится в состоянии смежности.
  4. Каждый маршрутизатор, получивший объявление от смежного маршрутизатора, записывает передаваемую в нём информацию в базу данных состояния каналов маршрутизатора и рассылает копию объявления всем другим смежным с ним маршрутизаторам.
  5. Рассылая объявления внутри одной OSPF-зоны, все маршрутизаторы строят идентичную базу данных состояния каналов маршрутизатора.
  6. Когда база данных построена, каждый маршрутизатор использует алгоритм «кратчайший путь первым» для вычисления графа без петель, который будет описывать кратчайший путь к каждому известному пункту назначения с собой в качестве корня. Этот граф - дерево кратчайших путей.
  7. Каждый маршрутизатор строит таблицу маршрутизации из своего дерева кратчайших путей.

Протоколы внешней маршрутизации BGP и EGP

EGP (Exterior Gateway Protocol - протокол внешнего шлюза) был первым протоколом семейства TCP/IP, применяемым для организации взаимодействия автономных систем. Он до сих пор иногда используется. В EGP пограничный маршрутизатор АС не ищет соседей самостоятельно. Ему нужно заранее сообщить IP-адреса или полные доменные имена других пограничных маршрутизаторов, с которыми он будет обмениваться информацией.

  • Для реализации своих функций протокол использует систему следующих сообщений: Приобретение соседа ( Neighbor Acquisition ). Прежде чем начать получать информацию от внешних маршрутизаторов, необходимо установить, какой маршрутизатор является соседним. Эта операция состоит из обмена сообщениями типа "приобретение соседа" (соответственно запрос/ ответ/ отказ и др.) через стандартный механизм трехходового квитирования. Ясно, что маршрутизатор предполагаемого соседа также должен поддерживать механизм сообщений типа "приобретение соседа". Сообщение "приобретение соседа" включает в себя поле интервала приветствия ( hello interval ) и поле интервала опроса ( poll interval ). Поле интервала приветствия определяет период интервала проверки работоспособности соседей. Поле интервала опроса определяет частоту корректировки маршрутизации.
  • Досягаемость соседа ( Neighbor reachability ). Для маршрутизаторов, выполняющих функции связи различных доменов сетей, важно располагать самой последней информацией о работе своих соседей. Если маршрутизатор обнаруживает, что какой-либо шлюз не функционирует, ему необходимо немедленно приостановить поток данных к этому шлюзу. Для этих целей и используется данный тип сообщений.

EGP -протокол поддерживает два вида сообщений этого типа - сообщение приветствия ( hello ) и ответа на приветствие ( i heard you ). Выделение типа сообщений оценки досягаемости из общего потока корректирующих сообщений позволяет уменьшать сетевой график, так как изменения о досягаемости сетей обычно появляются чаще, чем изменения параметров маршрутизации. Любой узел EGP заявляет об отказе одного из своих соседей только после того, как от него не был получен определенный процент сообщений о досягаемости.

  • Опроса (Poll ). Чтобы обеспечить правильную маршрутизацию между AS , EGP должен знать об относительном местоположении отдаленных хостов. Сообщения опроса позволяют роутерам EGP получать информацию о досягаемости сетей, в которых находятся эти машины. Такие сообщения имеют помимо обычного заголовка только одно поле - поле сети источника IP (source network ). Это поле определяет сеть, которая должна использоваться в качестве контрольной точки запроса.
  • Корректировки маршрутизации ( Routing update ). Сообщения о корректировке маршрутизации дают роутерам EGP возможность указывать местоположение различных сетей в пределах своих AS .

BGP ( Border Gateway Protocol ) это протокол внешних маршрутизаторов , предназначенный для связи между маршрутизаторами в различных автономных системах. BGP заменяет собой старый EGP.

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

IP датаграмма в АС может принадлежать как к локальному траффику, так и к транзитному траффику. Локальный - это траффик у которого источник и пункт назначения находятся в одной AS . При этом IP адреса источника и назначения указывает на хосты, принадлежащие одной автономной системе. Весь остальной траффик называется транзитным. Основное преимущество использования BGP в Internet заключается в уменьшении транзитного траффика.

Автономная система может принадлежать к следующим категориям:

  • Ограниченная (stub ) AS автономная система имеет единственное подключение к одной внешней автономной системе. В такой автономной системе присутствует только локальный траффик.
  • Многоинтерфейсная ( multihomed ) AS имеет подсоединение к нескольким удаленным автономным системам, однако по ней запрещено прохождение транзитного траффика.
  • Транзитная (transit ) AS имеет подключение к нескольким автономным системам и в соответствии с ограничениями может пропускать через себя как локальный, так и транзитный траффик.

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

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

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

BGP это протокол вектора расстояний, однако, в отличие от RIP (который объявляет пересылки к пункту назначения), BGP перечисляет маршруты к каждому пункту назначения (последовательность номеров автономных систем к пункту назначения). При этом исчезают некоторые проблемы, связанные с использованием протоколов вектора расстояний. Каждая автономная система идентифицируется 16-битным номером.

BGP определяет выход из строя канала или хоста на другом конце TCP соединения путем регулярной отправки сообщения "оставайся в живых" ( keepalive ) своим соседям. Рекомендуемое время между этими сообщениями составляет 30 секунд. Сообщение "оставайся в живых", которое используется на уровне приложений, независимо от TCP опций "оставайся в живых"

Множественный доступ в Интернет по протоколу BGP4

Питер Морриси

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

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

Представляем протокол BGP

Протокол BGP - единственный протокол внешних шлюзов (Exterior Gateway Protocol - EGP), получивший широкое распространение. Впервые он был описан в 1989 г. в спецификации RFC 1105. Версия 4 этого протокола отражена в спецификации RFC 1654, опубликованной в 1994 г., и значительно усовершенствована в RFC 1771. Кроме того, в последующие годы был принят ряд документированных расширений этой версии протокола. Наиболее существенным достижением протокола BGP4 является использование им механизма внутридоменной бесклассовой маршрутизации (Classless Inter-Domain Routing - CIDR), который позволяет агрегировать сообщения об обновлении маршрутов, поступающих от множества соседних маршрутизаторов, в один элемент маршрутной таблицы. Протокол BGP4 был реализован в то время, когда гигантские маршрутные таблицы стали значительно замедлять работу маршрутизаторов. Техника бесклассовой маршрутизации CIDR позволяет устранить многие узкие места и повысить стабильность работы сети Интернет. Обеспечивая более эффективное распределение адресов, она заметно снижает риск истощения сетевого адресного пространства.

После установки на ваш маршрутизатор протокола BGP4 он начинает организовывать связи со всеми смежными маршрутизаторами - так называемыми соседями. В отличие от протоколов OSPF (Open Shortest Path First) и EIGRP (Enhanced Interior Gateway Routing Protocol), обнаруживающих соседей автоматически, протокол BGP способен поддерживать обмен маршрутными таблицами только после того, как оба маршрутизатора сконфигурируют IP- и AS-адреса (Autonomous System Numbers - ASN) друг друга на своих интерфейсах. По завершении процедуры конфигурирования маршрутизаторы становятся одноранговыми, или равноправными.

Маршрутизаторы-соседи обмениваются небольшими сообщениями, подтверждающими их активность на данный момент времени (keep-alive messages). Если сосед перестает получать подобные сообщения в течение некоторого предопределенного времени жизни маршрутов (hold time), он корректирует свою маршрутную таблицу, отражая в ней потерю части доступных маршрутов. Кроме того, протокол BGP4 рассылает частичные изменения, когда те или иные маршруты становятся недоступными. Таким образом, обмен полными маршрутными таблицами имеет место лишь тогда, когда два соседних маршрутизатора впервые устанавливают одноранговые отношения или когда такие отношения приходится переустанавливать повторно.

Протокол BGP4 - это протокол векторов маршрутов (Path Vector Protocol), аналогичный протоколу векторов расстояний (Distance Vector Protocol), но с одним весьма существенным отличием. Протокол векторов расстояний выбирает лучший маршрут на основании числа “транзитов” (hops) и скоростей каналов. В противоположность этому протокол BGP4 выбирает тот маршрут, который проходит через наименьшее число автономных систем (Autonomous Systems - AS). Когда сообщение об обновлении маршрутной информации проходит через шлюз очередной автономной системы, BGP4 добавляет адрес ASN этой AS к цепочке адресов других автономных систем, через которые это сообщение прошло. По умолчанию маршрут с наименьшим числом адресов ASN хранится в маршрутной таблице в качестве оптимального пути к сети назначения. Одна автономная система может содержать множество внутренних маршрутизаторов, так что фактическое число переходов, как правило, всегда больше, чем указано в строке с адресами автономных систем.

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

Проблема решается с помощью атрибута Local-Pref протокола BGP4, позволяющего для следующего перехода выбрать вполне конкретный путь из всего множества существующих маршрутов. Системный администратор назначает всем маршрутам (или даже отдельной их группе), объявленным для одного из интерфейсов вашего маршрутизатора, более высокий весовой коэффициент Local-Pref, чем тем же маршрутам, объявленным для другого интерфейса. А поскольку значения этих весовых коэффициентов всегда учитываются раньше, чем вычисленные “длины” маршрутов, выраженные в числе транзитов, то окончательно выбранный маршрут пройдет через интерфейс с наиболее высоким весовым коэффициентом Local-Pref.

Контролировать трафик, входящий в сеть, гораздо сложнее. Учитывая разное географическое положение компьютерных сетей, когда одно из соединений с ISP может оказаться значительно ближе к какой-либо части вашей автономной системы, чем другое, вам, возможно, придется использовать атрибут MED (МultiExit Discriminator, или многовыходной дискриминатор), с помощью которого можно задавать маршрут поступающего в сеть внешнего трафика, предназначенного для одной из ваших внутренних сетей. Хотя подход, предусматривающий использование атрибута MED для контроля за входящим трафиком, является довольно простым, он работает лишь в том случае, когда оба соединения с Интернет принадлежат одному и тому же ISP. Это связано с тем, что атрибут MED является локальным для автономной системы поставщика и его влияние не выходит за рамки последней. Другой метод контроля входящего трафика - подсчет числа транзитов (prepending).

Маршрутизацию по протоколу BGP4 можно контролировать и с помощью атрибута Community, позволяющего задавать некий предопределенный код группе, или сообществу (community), маршрутов. Маршрутизатор, через который проходят эти маршруты, выполняет над ними данное действие, соотнесенное со значением этого кода. Код может определяться пользователем, но чаще всего применяется зарезервированное и весьма популярное среди пользователей сообщество, получившее название No-Export. Когда маршрутизатор BGP встречает маршрут с атрибутом No-Export, он не включает его в сообщения об обновлении маршрутов, высылаемые за пределы своей собственной автономной системы. Это довольно удобно для балансировки входящего трафика.

Используйте маршрутную карту

Реализация любой из рассмотренных выше схем требует применения маршрутной карты. Маршрутные карты определяют, как следует использовать атрибуты протокола BGP4 с конкретными маршрутами, получаемыми или объявляемыми вашими маршрутизаторами (см.: “Анатомия маршрутной карты”). Кроме того, маршрутные карты можно использовать для фильтрации получаемых или объявляемых маршрутов (то же самое осуществляется и посредством “списков распределения”).

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

Выравнивание нагрузки

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

Допустим, вы поддерживаете соединение лишь с одним поставщиком ISP и ваша автономная система связана с ним через один маршрутизатор. Тогда равномерное распределение исходящего трафика между соединениями с поставщиком - задача несложная. При этом обеспечивается максимальный контроль над маршрутами, по которым распространяются ваши пакеты. Более того, если оба интерфейса, связывающие вашу сеть с ISP, принадлежат одному и тому же маршрутизатору вашей автономной системы, вы можете вообще обойтись без протокола BGP. К примеру, маршрутизаторы фирмы Cisco Systems позволяют выравнивать нагрузку между двумя статическими маршрутами. Вполне вероятно, что и ваш ISP способен выравнивать ваш входящий трафик с помощью таких же статических маршрутов.

Как мы уже говорили выше, в том случае, когда оба соединения поступают на одну автономную систему, для контроля за входящим трафиком вашей сети можно использовать атрибут MED. Если оба соединения принадлежат одному и тому же ISP, то с большой вероятностью они принадлежат и одной автономной системе. Что касается исходящего трафика, покидающего вашу сеть, то для контроля за способом его передачи можно также использовать атрибут Local-Pref.

В случае сбоев протокол BGP4 способен автоматически переключать трафик с одного ISP на другого и таким образом обеспечивать устанавливаемую по умолчанию избыточность. Однако распределение нагрузки между несколькими поставщиками услуг способно превратиться в задачу, требующую немало усилий и изобретательности. Мы считаем, что наилучший подход к решению этой проблемы состоит в том, чтобы на первых порах ограничиться использованием установок протокола BGP4 по умолчанию и мониторинга входящего и исходящего трафика. Лишь накопив статистику, следует переходить к применению атрибута Local-Pref. Это позволит осуществлять достаточно точный контроль за трафиком, исходящим из вашей сети в конкретную внешнюю сеть или автономную систему. В сети Интернет насчитывается около 60 000 сетей, поэтому следует настраивать только маршруты с очень высоким уровнем трафика. Если время отклика линии вызывает нарекания со стороны пользователей, то в качестве эксперимента можно переключить маршруты, используемые для передачи наиболее важного трафика, с узла одного поставщика услуг на узел другого.

Возможно, вы нуждаетесь в эффективном распределении поступающего в вашу сеть трафика между имеющимися соединениями. Как говорилось выше, проще всего это осуществить путем добавления дополнительных AS-адресов в сообщения об обновлении маршрутов. Этот подход реализуется наилучшим образом, если в автономной системе имеется несколько внутренних сетей. В таком случае вы можете скорректировать сообщения об объявлении маршрутов таким образом, чтобы для одной из сетей они были обозначены как более предпочтительные, чем для других, и тем самым обеспечить прохождение вашего входящего трафика через каналы соответствующего ISP.

Другой подход к балансированию входящей нагрузки состоит в использовании соединения с одним ISP только для доставки трафика, идущего от этого ISP (и всех его абонентов), и использовании соединения с другим поставщиком для доставки оставшейся части трафика. Этот подход хорошо работает в том случае, когда боўльшая часть трафика идет от абонентов одного из ваших поставщиков, а также когда для связи с филиалами офиса или партнерами, использующими того же, что и вы, оператора связи, задействуются виртуальные частные сети (Virtual Private Networks - VPN). Чтобы информация вашей сети не выходила за пределы автономной системы вашего ISP, есть смысл использовать сообщество No-Export. В свою очередь, применение атрибута Local-Pref позволяет контролировать исходящий трафик, правда при условии, что он адресован автономной системе вашего ISP. Недостатком этого подхода является то, что приходится отчасти жертвовать резервированием соединений с Интернет. Если соединение с ISP, связывающее вас с всемирной сетью Интернет, выходит из строя, ваше другое соединение не сможет перехватить его трафик, пока вы не снимете с него атрибут No-Export.

Протокол BGP предоставляет немало возможностей по управлению маршрутизацией трафика Интернет. Используя многочисленные его опции, работайте в тесном контакте со своим ISP. Следите за тем, чтобы такой глубокий уровень взаимодействия с Интернет не создавал дополнительных трудностей ни вам, ни его сообществу. А если вы собираетесь принимать маршруты из Интернет, вам придется потратиться на наращивание оперативной памяти и мощные процессоры для своих маршрутизаторов. Если вы планируете принимать полную таблицу маршрутизации от одного ISP, вам потребуется как минимум 64 Мбайт доступной оперативной памяти. Если вы будете принимать полные таблицы маршрутизации от двух поставщиков услуг в одном маршрутизаторе, то эта цифра удвоится. И прежде чем подписать контракт с поставщиком услуг Интернет, имейте в виду: нет никакой гарантии, что этот поставщик будет объявлять каждую сеть, принадлежащую автономной системе другого поставщика. Следует убедиться и в том, что новый ISP способен обеспечить резервирование и распределение нагрузки на линии связи в той степени, которая нужна вам.



Загрузка...