Тарифы Услуги Сим-карты

Преимущества использования BGP. Протокол 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 (Border Gateway Protocol) . Почему основному? – Потому что с именно с помощью BGP организована топология всего Интернета.

Итак, в данной статье разберем следующие моменты:

  1. Основные термины протокола BGP
  2. Принципы работы протокола BGP
  3. Типы сообщений протокола BGP

Терминология

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

AS характеризуется (с недавних пор 32 битным) номером ASN (Autonomus System Number) и пулом IP-адресов. Выдачей и того и другого занимается организация IANA (Internet Assigned Numbers Authority), делегируя контроль за распределением ASN и других интернет ресурсов, региональным регистраторам.

Связность автономных систем достигается благодаря статической или динамической маршрутизации .

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

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

Как известно, протоколы динамической маршрутизации классифицируются по двум основным признакам:

  1. Тип работы протокола относительно AS
  • IGP (Interior Gateway Protocol) – работают внутри автономной системы. Сюда относятся: RIP, OSPF, EIGRP, IS-IS
  • EGP (Exterior Gateway Protocol) – работают вне автономных систем и обеспечивают их связность. Сюда относится BGP
  • Алгоритм работы протокола
    • Distance-Vector - знает маршруты только до своих ближайших соседей и обменивается с ними таблицей маршрутизации. (RIP, EIGRP)
    • Link State – знает всю топологию сети и обменивается таблицей топологии со своими соседями (OSPF, IS-IS)

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

    Итак, BGP – это протокол внешней маршрутизации, использующийся для соединения двух AS. Схема выглядит примерно так:

    Так как на BGP возложена великая задача – соединение автономных систем во всем Интернете, то он должен быть очень надежным. Для этих целей, в самом начале работы, BGP-маршрутизатор инициирует установление TCP сессии на 179 порт к своему соседу, происходит стандартных обмен SYN и ACK.

    Соединения по протоколу BGP должно быть абсолютно согласовано администраторами автономных систем, желающих организовать стык. Если, скажем, администратор AS402 запустил процесс BGP на маршрутизаторе BR2 (Border Router), указав в качестве соседа BR1 и его ASN, а администратор AS401 никаких действий не произвел, то TCP-сессия не поднимется и системы так и останутся несвязными. Кроме того, должны соблюдаться следующие условия:

    1. 179 порт не блокируется ACL (Access Control List)
    2. Маршрутизаторы пингуют друг друга
    3. При запуске BGP процесса ASN удаленной стороны был указан верно
    4. RouterID не совпадают

    Если TCP-сессия установлена успешно, то BGP-маршрутизаторы начинают обмен

    сообщениями OPEN, в котором сообщают свои ASN, RouterID и Hold timer. Hold timer это время, в течение которого будет поддерживаться TCP-сессия. Если условия, перечисленные ранее, не соблюдаются, например не совпадает информация о номере AS, то сообщением NOTIFICATION маршрутизатор, получивший неверный ASN уведомит об этом своего соседа и сбросит TCP-сессию.

    Если же все условия соблюдаются, то маршрутизаторы, с определенным интервалом, начинают высылать друг другу сообщения KEEPALIVE , означающие подтверждение параметров, принятых в OPEN и уведомление “я ещё жив”.

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

    1. Path Attributes (Атрибуты пути). Здесь указывается из какой AS поступил маршрут, его происхождение и Next Hop для данного пути.
    2. NRLI (Network Layer Reachability Information). Здесь указывает информация непосредственно о сетях, подлежащих добавлению в таблицу маршрутизации, т.е IP-адрес сети и ее маска.

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

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

    Полезна ли Вам эта статья?

    Пожалуйста, расскажите почему?

    Нам жаль, что статья не была полезна для вас:(Пожалуйста, если не затруднит, укажите по какой причине? Мы будем очень благодарны за подробный ответ. Спасибо, что помогаете нам стать лучше!

    Маршрутизатор обычно закрепляется за несколькими сетями. Когда он получает пакет, он должен решить две задачи:
    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 с.

    Как работает интернет?

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

    Всем своим соседям (не по дому, разумеется, а тем, с кем есть прямые соединения), владелец AS сообщает: "Чуваки! У меня есть AS номер XXX!" Это называется BGP-Анонсом.

    Соседи принимают это во внимание и передают дальше. Вот владелец AS YYY всех оповещает: "чуваки! Через меня доступна ASXXX! Путь до нее: XXX YYY". Постепенно, у каждого участника этой вакханалии складывается маршрутная таблица, в которой всегда видно, что от своей ASZZZ до ASXXX можно дойти по маршруту "ZZZ YYY YYY1 XXX".

    Всё это развлекательное мероприятие и называется "протокол BGP".

    Радость от него была бы неполной, не будь в BGP возможности выбрать маршрут. От двух свои провайдеров можно получить разные маршруты до ZZZ. Если XXX подключен не только к YYY1, но и напрямую к YYY, то у него будет более выгодный маршрут всего из трех хопов, вместо четырех.

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

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

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

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

    Как? А элементарно. Надо соседу, который сидит по ту сторону резервного канала, отдавать не просто свой номер AS, а целый маршрут до нее. Вот так: "XXX XXX XXX XXX XXX". Да-да, просто несколько раз указать свою же AS. Это называется "добавить препенды".

    Возвращаясь к нашей картинке, AS XXX подключена к двум провайдерам: YYY1 - кривой, но с безнлимитным трафиком. YYY - устойчивый, но трафик за большое бабло. Владелец XXX предпочитает, чтобы пока работает YYY1, весь трафик гонялся через него. Поэтому специально для YYY сообщаем, что через нас видно "XXX XXX XXX". Поскольку маршрут от XXX до ZZZ напрямую через YYY теперь получается длиннее, то связь будет через YYY.

    Главное, чтобы ни из одной точки интернета этот маршрут никогда не стал кратчайшим. Сколько препендов добавить обычно выбирается на глазок - ну 5-10. Более длинные маршруты в интернете встречаются редко.

    http://to-the-future.livejournal.com/450700.html

    1. Использование BGP для п одключения к провайдеру



    Интернет - это набор автономных систем, которые соединены между собой для коммуникации. BGP обеспечивает маршрутизацию между этими автономными системами.
    Предприятие, кjторое хочет подключиться к интернету, делает это через одного из провайдеров. Если предприятие имеет только одно подключение к интернету, возможно, ему не понадобится использовать BGP, вместо него можно использовать маршруты по умолчанию. Однако, если имеется несколько подключений к одному или нескольким провайдерам, BGP будет предпочтительным для использования, т.к. он позволяет манипулировать атрибутами маршрутов, чтобы был выбран оптимальный путь.
    Чтобы понять BGP, надо понять, чем он отличается от других протоколов маршрутизации. Один путь, это разделить протоколы на внешние и внутренние протоколы маршрутизации, такие как:
    - IGP (Interior gateway protocol), внутренний протокол маршрутизации - это протокол, который обменивается маршрутной информацией внутри автономной системы Примеры таких протоколов - RIP, OSPF, EIGRP.

    EGP (Exterior gateway protocol), внешний протокол маршрутизации - протокол, который обменивается маршрутной информацией между разными автономными системами. BGP - пример внешнего протокола. BGP является внутридоменным протоколом маршрутизации (IDRP), также известным как EGP. Последней версией протокола является BGP версии 4, который описан в RFC 4271. Как сказано в RFC, классическое описание автономной системы - набор маршрутов под одним техническим администрированием, который маршрутизирует пакеты внутри автономной системы с помощью внутренних протоколов маршрутизации, а также с помощью внешних протоколов маршрутизации определяет, как маршрутизируются пакеты к другим автономным системам.

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

    Когда BGP работает между маршрутизаторами в разных автономных системах, он называется внешним BGP (EBGP). Когда BGP работает между маршрутизаторами внутри одной автономной системы, он называется внутренним BGP (IBGP). BGP определяет путь для пакетов между автономными системами. Важно понимать, как работает BGP для избежания создания проблем для автономной системы в результате работы BGP.


    2. Варианты использования BGP для нескольких подключений к провайдеру

    Организация может иметь несколько подключений только к одному провайдеру или к нескольким провайдерам. Недостатком наличия нескольких подключений к одному провайдеру является то, что единственный провайдер может стать причиной отсутствия соединения с интернетом. Имея подключения к нескольким провайдерам, организация получает следующие преимущества:

    Резервирование несколькими подключениями

    Нет привязки к политике маршрутизации одного провайдера

    Наличие многих путей к одним и тем же сетям для улучшения политики управления маршрутами

    В автономной системе с несколькими подключениями будет работать EBGP для связи с соседними автономными системами, а также может работать IBGP внутри.

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

    Каждый провайдер пропускает только один маршрут по умолчанию к автономной системе. Этот маршрут указывает на внутренние маршрутизаторы

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

    Каждый провайдер пропускает все маршруты в автономную систему. На всех внутренних маршрутизаторах по пути транзита работает BGP и пропускает маршруты между маршрутизаторами.

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

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

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

    Абоненты, которые выберут получение только маршрутов по умолчанию от всех провайдеров, должны понимать следующие ограничения этого варианта:

    Управление маршрутами не может быть применено, так как от каждого провайдера принимается только один маршрут

    Управление пропускной способностью очень сложное и может быть применено только манипулированием метрики маршрута по умолчанию внутреннего протокола маршрутизации

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


    Как видно на рисунке, автономные системы AS 65020 и AS 65030 отправляют маршруты по умолчанию в AS 65010, сеть абонента А. Из-за метрики внутреннего протокола маршрутизации сети абонента А, а также из-за настройки маршрутизаторов R1 и R2, граничный маршрутизатор провайдера PE1 выбран как маршрут по умолчанию для достижения любой внешней сети за пределами автономной системы абонента А.

    Эта процедура может привести к неоптимальной маршрутизации. Например, при задаче отправить пакет в сеть 172.17.0.0, пакет будет сначала отправлен провайдеру ISP1 на маршрутизатор РЕ1, так как маршрутизатор РЕ1 является предпочтительным путем для абонента А. А затем уже провайдер ISP1 отправит пакет в сеть назначения провайдеру ISP2.


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

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

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

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

    На рисунке провайдеры в AS 65020 и AS 65030 отправляют маршруты по умолчанию и маршруты к своим абонентам абоненту А (AS 65010).

    Путем использования внутреннего BGP между внутренними маршрутизаторами R1 и R2 внутри AS 65010, AS 65010 может выбрать оптимальный путь к сетям провайдеров ISP1 и ISP2. Если сеть абонента А отправляет трафик к неизвестной сети, будет использоваться один из двух маршрутов по умолчанию. Снова таки это может привести к неоптимальной маршрутизации, как показано на рисунке. Неизвестный маршрут к другой автономной системе не показан на рисунке, так как эти маршруты не были проанонсированы в AS 65010 провайдерами ISP1 и ISP2. Метрика внутреннего протокола маршрутизации будет использована для выбора маршрута по умолчанию за пределы автономной системы абонента А.


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

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

    Автономная система отправляет все свои маршруты провайдерам, которые обрабатывают маршруты и отправляют эти маршруты другим автономным системам.

    На рисунке AS 65020 и AS 65030 отправляют все маршруты в AS 65010. Провайдер, имеющий маршрут к специфической внешней сети из AS 65010, определяется с помощью BGP.

    Маршрутизаторы в AS 65010 могут быть настроены для влияния на маршруты к определенным сетям. Например, R1 и R2 могут влиять на выбор маршрута для исходящего трафика из AS 65010.


    3. BGP маршрутизация между автономными системами

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

    IANA - организация, ответственная за присвоение номеров автономным системам. Конкретно, ARIN (Американский регистратор номеров интерната) отвечает за присвоение номеров для Америки, Карибов и Африки. RIPENIC (Европейский исследовательский сетевой информационный центр IP) присваивает номера автономным системам в Европе. А APNIC (Азиатско-Тихоокеанский сетевой информационный центр) - за присвоение номеров автономным системам в Азиатско-Тихоокеанском регионе.

    Номера автономных систем - это 16-битный номер от 1 до 65535. RFC 1930 предоставляет руководство по использованию номеров автономных систем. Диапазон номеров автономных систем от 64512 до 65535 зарезервирован для частного использования, наподобие частных IP адресов.


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

    BGP - то преемник EGP, который был разработан для изоляции сетей одна от другой при росте интернета.

    Есть много RFC, относящихся к BGP4, текущей версии BGP. Эти RFC включают 1772, 1773, 1774, 1930, 1966, 1997, 1998, 2042, 2385, 2439, 2545, 2547, 2796, 2858, 2918, 3065, 3107, 3392, 4223 и 4271.

    BGP4 имеет много улучшений по сравнению с более ранними протоколами. Интернет широко использует BGP для соединения провайдеров и подключения предприятий к провайдерам.

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

    Когда используется бесклассовая маршрутизация на маршрутизаторе ядра основного провайдера, построенная таблица маршрутизации состоит в основном из BGP маршрутов и имеет более 175000 блоков бесклассовых сетей. Если не использовать бесклассовую маршрутизацию, таблица маршрутизации может содержать более 2 000 000 записей. Использование BGP4 предотвращает таблицу маршрутизации интернета становиться слишком большой для соединения миллионов пользователей.

    3. Сравнение BGP с внутренними протоколами маршрутизации

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

    4. Функциональность вектора пути

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

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

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

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


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

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

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

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


    Примеры BGP политик:

    На рисунке выше у автономной системы AS 65010 есть следующие возможные пути для достижения AS 65060 через AS 65020:

    65020 - 65030 - 65060

    65020 - 65050 - 65060

    65020 - 65030 - 65050 - 65070 - 65060

    65020 - 65050 - 65030 - 65060

    65020 - 65050 - 65070 - 65060

    Но AS 65010 не видит все эти возможности.

    AS 65020 передает AS 65010 только информацию о лучшем пути 65020 - 65030 - 65060, так же как протокол внутренней маршрутизации анонсирует только лучший путь с наименьшей стоимостью. Это единственный путь через AS 65020, который AS 65010 увидит. Все пакеты с сетью назначения, принадлежащей AS 65010, будут идти через AS 65020 только по этому маршруту.

    Даже если существуют другие пути, AS 65010 может использовать лишь тот путь к AS 65060, который был анонсирован AS 65020. Путь к автономной системе, который был анонсирован, 65020 - 65030 - 65060, это путь «шаг за шагом», который AS 65020 использует, чтобы достигнуть AS 65060. AS 65020 не будет анонсировать другой путь, например, 65020 - 65050 - 65030 - 65060, тка как он не будет выбран лучшим путем политикой маршрутизации AS 65020.

    AS 65010 не узнает о другом лучшем пути или других путях от AS 65020, пока лучший путь в AS 65020 не станет недоступным.

    Даже если AS 65010 узнает о каком-то пути через AS 65020, он не сможет его использовать, т.к. AS 65020 не отправит трафик по другому пути, у него есть лучший путь 65020 - 65030 - 65060, поэтому именно его он и будет использовать, согласно политики маршрутизации BGP. BGP не позволяет одной автономной системе отправлять трафик через соседнюю автономную систему по маршруту, отличному от маршрута, которым пользуется трафик, генерируемый в соседней автономной системе.

    AS 65010 может выбрать для отправки трафика в AS 65060 маршрут через AS 65020 или через AS 65040. AS 65010 выберет лучший путь, основываясь на собственной политике маршрутизации BGP.


    5. Особенности BGP

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

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

    BGP - это только IP протокол маршрутизации, который использует NCP как транспортный уровень. OSPF, IGRP и EIGRP работают именно на IP уровне, а RIP использует UDP как транспорт.

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

    С другой стороны, BGP имеет в интернете более 175 000 сетей для анонсирования, и это число растет. BGP использует TCP для обеспечения функции подтверждения. NCP использует динамический размер окна, которое позволяет отправить 65 576 байт перед тем, как отправка будет остановлена для ожидания подтверждения. Например, при использовании максимального размера окна, если будут отправляться 1000-байтные пакеты, понадобится отправка 65 неподтвержденных пакетов перед тем, как BGP остановит передачу и будет ждать подтверждение.

    TCP разработан для использования скользящего размера окна, где приемник отправляет подтверждение в точке приема половины размера передаваемого окна. Этот метод позволяет TCP приложениям, таким как BGP, продолжать отправку пакетов без необходимости остановки для ожидания подтверждения, как это требуется в OSPF и EIGRP.

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

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

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

    BGP следует использовать в следующих случаях:

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

    Если автономная система имеет несколько подключений к другим автономным системам

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

    BGP не всегда является подходящим решением для связи автономных систем. Есть несколько случаев, когда BGP не следует применять:

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

    Когда недостаточно ресурсов процессора и памяти на граничном маршрутизаторе для применения BGP маршрутизации

    Когда недостаточно понимания о фильтрации маршрутов и процессе выбора пути BGP

    Если политика маршрутизации, применяемая в автономной системе, совместима с политикой в автономной системе провайдера, нет необходимости или нежелательно настраивать DGP в этой автономной системе

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

    Для того, чтобы BGP установил соседские отношения, он должен быть явно настроен для каждого соседа. ВGP формирует TCP отношения с каждым настроенным соседом и поддерживает эти отношения путем отправки BGP/TCP сообщения поддержания отношений. BGP отправляет это сообщение каждые 60 секунд.

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

    Внешние BGP маршруты, изученные от внешних автономных систем, имеют административное расстояние 20. Внутренние BGP маршруты, изученные внутри автономной системы, имеют административное расстояние 200.


    Существует четыре типа сообщений BGP: open, keepalive, update, notification.

    После установления TCP соединения, первое сообщение, отправляемое каждой стороной, это open сообщение. После получения open сообщения, каждая сторона отправляет keepalive сообщение, которым подтверждает получение. После получения подтверждения о получении open сообщения устанавливаются BGP отношения, BGP соседи могут обмениваться любыми update, keepalive и notification сообщениями.

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

    Open сообщение - содержит следующюю информацию:

    Номер версии - предлагаемый номер версии протокола. Наибольший номер версии, поддерживаемый маршрутизаторами. Большинство реализаций BGP маршрутизации сейчас используют BGP4.

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

    Hold time - максимальное число секунд, которое может пройти между успешными keepalive или update сообщениями отправителя. При получении open сообщения маршрутизатор вычисляет значение hold таймера путем использования меньшего значения между настроенным на маршрутизаторе и полученным в open сообщении

    BGP router-ID - 32-битное поле, показывающее BGP идентификатор отправителя. BGP ID - это IP адрес, назначенный маршрутизатору, он определяется при загрузке. BGP router-ID выбирается так же, как и OSPF router ID? Это наибольший IP адрес активного интерфейса маршрутизатора при условии, что loopback интерфейсы не настроены. А если настроены loopback интерфейсы, BGP router-ID выбирается как наибольший IP адрес одного из loopback интерфейсов. Router-ID также можно задать вручную.

    Дополнительные параметры - это параметры типа, длины и значения кодирования. Примером дополнительных параметров есть аутентификация сессии.

    Keepalive сообщение - обмен этими сообщениями проводится соседями чаще, чем истекает врямя hold таймера. Если согласованное значение hold таймера равно 0, периодическая отправка keepalive сообщений не производится. Keepalive сообщение состоит только из заголовка.

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

    Withdrawn routes - список отображает IP адреса префиксов маршрутов, которые выведены из эксплуатации, если таковые имеются

    Path attributes - эти атрибуты включают: путь к автономной системе, происхождение, локальные предпочтения и др. Каждый атрибут пути включает атрибут TLV. Тип атрибута состоит из флагов, которые следуют за кодом типа атрибута.

    Network-layer reachability information - это поле содержит список префиксов IP адресов, которые доступны по этому пути.

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