Рефераты
 

Протокол обмена управляющими сообщениями ICMP. Протоколы обмена маршрутной информацией

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

Во-первых, выделенный маршрутизатор и его резервный «напарник» являются единственными маршрутизаторами, с которыми новый маршрутизатор будет синхронизировать свою базу. Синхронизировав базу с выделенным маршрутизатором, новый маршрутизатор будет синхронизирован со всеми маршрутизаторами данной локальной сети.

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

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

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

Интерфейсы, к которым подключены локальные сети, называются широковещательными (broadcast) интерфейсами, так как они могут использовать широковещательные возможности локальных сетей для обмена сигнальной информацией между маршрутизаторами. Интерфейсы, к которым подключены глобальные сети, не поддерживающие широковещание, но обеспечивающие доступ ко многим узлам через одну точку входа, например сети Х.25 или frame relay, называются нешироковещательными интерфейсами с множественным доступом или NBMA (non-broadcast multi-access). Они рассматриваются аналогично широковещательным интерфейсам за исключением того, что широковещательная рассылка эмулируется путем посылки сообщения каждому соседу. Так как обнаружение соседей не является автоматическим, как в широковещательных сетях, NBMA-соседи должны задаваться при конфигурировании вручную. Как на широковещательных, так и на NBMA-интерфейсах могут быть заданы приоритеты маршрутизаторов для того, чтобы они могли выбрать выделенный маршрутизатор.

Интерфейсы «точка-точка», подобные PPP, несколько отличаются от традиционной IP-модели. Хотя они и могут иметь IP-адреса и подмаски, но необходимости в этом нет.

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

Число, используемое в качестве метрики пути, может быть назначено произвольным образом по желанию администратора. Но по умолчанию в качестве метрики используется время передачи бита в 10-ти наносекундных единицах (10 Мб/с Ethernet'у назначается значение 10, а линии 56 Кб/с - число 1785). Вычисляемая протоколом OSPF метрика пути представляет собой сумму метрик всех проходимых в пути связей; это очень грубая оценка задержки пути. Если маршрутизатор обнаруживает более, чем один путь к удаленной подсети, то он использует путь с наименьшей стоимостью пути.

В протоколе OSPF используется несколько временных параметров, и среди них наиболее важными являются интервал сообщения HELLO и интервал отказа маршрутизатора (router dead interval).

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

Протокол BGP

Протокол
BGP разработан компаниями IBM и CISCO. Главная цель BGP - сократить транзитный трафик.

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

Задача внешней маршрутизации

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

Рассматриваемый на этом уровне, Интернет представляет собой множество автономных систем, произвольным образом соединенных между собой (
рис. 3). Внутреннее строение автономных систем скрыто, известны только адреса IP-сетей, составляющих АС.

Рис. 3. Автономные системы

Автономные системы соединяются с помощью пограничных маршрутизаторов. Связи между маршрутизаторами могут иметь разную физическую природу: например, это может быть сеть Ethernet, к которой подключено сразу несколько пограничных маршрутизаторов разных автономных систем, выделенный канал типа «точка-точка» между двумя маршрутизаторами и т.п. Часто сама связующая сеть не принадлежит ни к одной автономной системе, в таком случае она называется демилитаризованной зоной (DMZ).

В зависимости от своего расположения в общей структуре Интернет автономная система может быть тупиковой (stub) - имеющей связь только с одной АС (АС7 на рис. 7.1.1), - или многопортовой (multihomed), т.е. имеющей связи с несколькими АС. Если административная политика автономной системы позволяет передавать через свои сети транзитный трафик других АС, то такую автономную систему можно назвать транзитной (transit).

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

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

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

Например, рассмотрим систему маршрутизаторов, аналогичную графу автономных систем, изображенному на рис. 7.1.1. Алгоритм SPF гарантирует, что если узел (1) вычислил маршрут в узел (6) как (1) - (3) - (5) - (6), то узел (3) также будет использовать маршрут (3) - (5) - (6). Это происходит потому, что все узлы одинаково интерпретируют метрики связей и используют одни и те же математические процедуры для вычисления маршрутов. Однако если применять протокол состояния связей на уровне автономных систем может произойти следующее: АС1 установила, что оптимальный маршрут по соображениям пропускной способности сетей в АС6 выглядит 1-3-5-6. Но АС3 считает, что выгодней добираться в АС6 по маршруту 3-1-2-4-6, так как АС5 дорого берет за передачу транзитного трафика. В итоге, из-за того, что у каждой АС свое понятие метрики, то есть качества маршрута, происходит зацикливание.

Казалось бы, дистанционно-векторный подход мог бы решить проблему: АС3, не желающая использовать АС5 для транзита в АС6, просто не прислала бы в АС1 элемент вектора расстояний для АС6, следовательно первая система никогда не узнала бы о маршруте 1-3-5-6. Но с другой стороны при использовании дистанционно-векторного подхода получателю вектора расстояний неизвестно описание маршрута на всей его протяженности. Рассмотрим другую политическую ситуацию на примере того же рис. 7.1.1: АС1 получает от АС3 вектор АС6=2 и направляет свой трафик в АС6 через АС3, не подозревая, что на этом маршруте располагается АС5, которая находится с АС1 в состоянии войны и, естественно, не пропускает транзитный трафик от и для АС1. В результате АС1, установив внешне безобидный маршрут в АС6, осталась без связи с этой автономной системой. Если бы АС1 получила полное описание маршрута, то она несомненно бы выбрала альтернативный вариант 1-2-4-6, однако в дистанционно-векторных протоколах такая информация не передается.

Для решения задачи внешней маршрутизации был разработан протокол BGP (Border Gateway Protocol). Используемая в настоящий момент версия этого протокола имеет номер 4, соответствующий стандарт - RFC-1771, 1772.

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

Далее BGP использует подход под названием path vector, являющийся развитием дистанционно-векторного подхода. BGP-соседи рассылают (анонсируют, advertise) друг другу векторы путей (path vectors). Вектор путей, в отличие от вектора расстояний, содержит не просто адрес сети и расстояние до нее, а адрес сети и список атрибутов (path attributes), описывающих различные характеристики маршрута от маршрутизатора-отправителя в указанную сеть. В дальнейшем для краткости мы будем называть набор данных, состоящих из адреса сети и атрибутов пути до этой сети, маршрутом в данную сеть.

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

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

обнаружения циклов - если номер одной и той же АС встречается в AS_PATH дважды;

вычисления метрики маршрута - метрикой в данном случае является число АС, которые нужно пересечь;

применения маршрутной политики - если AS_PATH содержит номера политически неприемлемых АС, то данный маршрут исключается из рассмотрения.

Анонсируя какой-нибудь маршрут, BGP-маршрутизатор добавляет в AS_PATH номер своей автономной системы.

Внутренний BGP, маршрутные серверы и атрибут NEXT_HOP

Очевидно, что BGP
-маршрутизаторы, находящиеся в одной АС, также должны обмениваться между собой маршрутной информацией. Это необходимо для согласованного отбора внешних маршрутов в соответствии с политикой данной АС и для передачи транзитных маршрутов через автономную систему. Такой обмен производится также по протоколу BGP, который в этом случае часто называется IBGP (Internal BGP), (соответственно, протокол обмена маршрутами между маршрутзаторами разных АС обозначается EBGP - External BGP).

Отличие IBGP от EBGP состоит в том, что при объявлении маршрута BGP-соседу, находящемуся в той же самой АС, маршрутизатор не должен добавлять в AS_PATH номер своей автономной системы. Действительно, если номер АС будет добавлен, и сосед анонсирует этот маршрут далее (опять с добавлением номера той же АС), то одна и та же АС будет перечислена AS_PATH дважды, что расценивается как цикл.

Это очевидное правило влечет за собой интересное следствие: чтобы не возникло циклов, маршрутизатор не может анонсировать по IBGP маршрут, полученный также по IBGP, поскольку нет способов определить зацикливание при объявлении BGP-маршрутов внутри одной АС.

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

Сервер маршрутной информации (аналог выделенного маршрутизатора в OSPF), обслуживающий группу BGP-маршрутизаторов, работает очень просто: он принимает маршрут от одного участника группы и рассылает его всем остальным. Таким образом, участникам группы нет необходимости устанавливать BGP-соединения попарно; вместо этого каждый участник устанавливает одно соединение с сервером. Группой маршрутизаторов могут быть, например, все BGP-маршрутизаторы данной АС, однако маршрутные серверы могут применяться для уменьшения числа соединений также и на внешних BGP-соединениях - в случае, когда в одной физической сети находится много BGP-маршрутизаторов из различных АС (например, в точке обмена трафиком между провайдерами, рис. 4).

Рис. 4. Точка обмена трафиком (Internet Exchange Point)

A-E - пограничные BGP-маршрутизаторы, АС1-АС5 - сети автономных систем, RS - сервер маршрутной информации.

Следует особо отметить, что сервер маршрутной информации обслуживает только анонсы маршрутов, а не сам трафик по этим маршрутам. Например (рис 7.2.1), маршрутизатор А анонсирует серверу RS маршруты в сети АС1. Маршрутизатор E получает информацию об этих маршрутах от сервера RS, но при этом в таблице маршрутов узла Е следующим маршрутизатором на пути в АС1 значится узел А, что абсолютно разумно, поскольку эти узлы могут передавать данные друг другу непосредственно. Исключение маршрутного сервера из маршрута производится путем установки значения атрибута NEXT_HOP: анонсируя маршруты в сеть АС1, сервер RS указывает NEXT_HOP=A. Таким образом, маршрутизатор (например, Е), получивший и принявший к использованию такой маршрут, будет пересылать данные, предназначенные для АС1, непосредственно маршрутизатору А.

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

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

Атрибуты пути (Path Attributes)

Ниже перечислены все атрибуты пути, определенные для протокола BGP.

ORIGIN

ORIGIN (тип 1) - обязательный атрибут, указывающий источник информации о маршруте:

0 - IGP (информация о достижимости сети получена от протокола внутренней маршрутизации или введена администратором),

1 - EGP (информация о достижимости сети импортирована из устаревшего протокола EGP),

2 - INCOMPLETE (информация получена другим образом, например, RIP->OSPF->BGP или BGP->OSPF->BGP).

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

AS_PATH

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

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

NEXT_HOP

NEXT_HOP (тип 3) - обязательный атрибут, указывающий адрес следующего BGP-маршрутизатора на пути в заявленную сеть (см. обсуждение в п. 7.2); может совпадать или не совпадать с адресом BGP-узла, анонсирующего маршрут. Указанный в NEXT_HOP маршрутизатор должен быть достижим для получателя данного маршрута. При передаче маршрута по IBGP NEXT_HOP не меняется.

MULTI_EXIT_DISC

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

Атрибут сохраняется при последующих объявлениях маршрута по IBGP, но не по EBGP.

LOCAL_PREF

LOCAL_PREF (тип 5) - необязательный атрибут, устанавливающий для данной АС приоритет данного маршрута среди всех маршрутов к заявленной сети, известных внутри АС. Атрибут вычисляется каждым пограничным маршрутизатором для каждого присланного ему по EBGP маршрута и потом распространяется вместе с этим маршрутом по IBGP в пределах данной АС. Способ вычисления значения атрибута определяется политикой приема маршрутов (по умолчанию берется во внимание только длина AS_PATH). LOCAL_PREF используется для согласованного между маршрутизаторами одной АС выбора маршрута из нескольких вариантов.

Атрибуты агрегирования

ATOMIC_AGGREGATE (тип 6) и AGGREGATOR (тип 7) - необязательные атрибуты, связанные с операциями агрегирования (объединения) нескольких маршрутов в один.

Примеры маршрутизации

Пример маршрутизации по алгоритму RIP

На рисунке
3 приведен пример сети, состоящей из шести маршрутизаторов, имеющих идентификаторы от 1 до 6, и из шести сетей от A до F, образованных прямыми связями типа «точка-точка».

Рисунок 3. Обмен маршрутной информацией по протоколу RIP

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

При необходимости отправить пакет в сеть D маршрутизатор просматривает свою базу данных маршрутов и выбирает порт, имеющий наименьшее расстояния до сети назначения (в данном случае порт, связывающий его с маршрутизатором 3).

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

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

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

Рисунок 4. Пример неустойчивой работы сети при использовании протокола RIP

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

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

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

Пример маршрутизации по алгоритму OSPF

Представим себе один день из жизни транзитной локальной сети. Пусть у нас имеется сеть Ethernet, в которой есть три маршрутизатора
- Джон, Фред и Роб (имена членов рабочей группы Internet, разработавшей протокол OSPF). Эти маршрутизаторы связаны с сетями в других городах с помощью выделенных линий.

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

Рисунок 5. Гипотетическая сеть с OSPF маршрутизаторами

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

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

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

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

Посмотрим теперь, как Робин вычисляет маршрут через сеть. Две из связей, присоединенных к его портам, представляют линии T-1, а одна - линию 56 Кб/c. Робин сначала обнаруживает двух соседей - Роба с метрикой 65 и Мило с метрикой 1785. Из объявления о связях Роба Робин обнаружил наилучший путь к Мило со стоимостью 130, поэтому он отверг непосредственный путь к Мило, поскольку он связан с большей задержкой, так как проходит через линии с меньшей пропускной способностью. Робин также обнаруживает транзитную локальную сеть с выделенным маршрутизатором Джоном. Из объявлений о связях Джона Робин узнает о пути к Фреду и, наконец, узнает о пути к маршрутизаторам Келли и Джеффу и к их тупиковым сетям.

После того, как маршрутизаторы полностью входят в рабочий режим, интенсивность обмена сообщениями резко падает. Обычно они посылают сообщение HELLO по своим подсетям каждые 10 секунд и делают объявления о состоянии связей каждые 30 минут (если обнаруживаются изменения в состоянии связей, то объявление передается, естественно, немедленно). Обновленные объявления о связях служат гарантией того, что маршрутизатор работает в сети. Старые объявления удаляются из базы через определенное время.

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

Практический пример работы с BGP-сетью

Имеем следующую
BGP-сеть

Рисунок 6.

Если AS связана с двумя ISP через EBGP, IBGP должен использоваться между роутерами внутри данной AS для лучшего управления маршрутами.

Рассмотрим AS100, имеющую два EBGP соединения (роутеры «A» и «B») с внешним миром (роутеры «C» и «D»). «A» и «B» общаются между собой по IBGP.

Между роутерами «A-F», «A-B» и «B-F» этой AS также используется OSPF (протокол семейства IGP).

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

! Router A

hostname RouterA

!

interface loopback 0

ip address 203.250.13.41 255.255.255.0

!

interface ethernet 0

ip address 203.250.14.1 255.255.255.0

!

interface serial 0

ip address 128.213.63.1 255.255.255.252

!

router ospf 10

network 203.250.0.0 0.0.255.255 area 0

router bgp 100

network 203.250.13.0 mask 255.255.255.0

network 203.250.14.0 mask 255.255.255.0

neighbor 128.213.63.2 update-source loopback 0

! Router B

!

hostname RouterB

!

interface serial 0

ip address 203.250.15.2 255.255.255.252

!

inetrface serial 1

ip address 192.208.10.6 255.255.255.252

!

router ospf 10

network 203.250.0.0 0.0.255.255 area 0

!

router bgp 100

network 203.250.15.0

neighbor 192.208.10.5 remote-as 300

neighbor 203.250.15.1 remote-as 100

! Router C

hostname RouterC

!

interface loopback 0

ip address 128.213.63.130 255.255.255.192

!

interface serial 2/0

ip address 128.213.63.5 255.255.255.252

!

interface serial 2/1

ip address 128.213.63.2 255.255.255.252

!

router bgp 200

network 128.213.0.0

neighbor 128.213.63.1 remote-as 100

neighbor 128.213.63.6 remote-as 400

! Router D

hostname RouterD

!

interface loopback 0

ip address 192.208.10.174 255.255.255.192

!

interface serial 0/0

ip address 192.208.10.5 255.255.255.252

!

interface serail 0/1 (ERROR: здесь и строчка ниже в оригинале - с опечаткой)

ip address 192.208.10.2 255.255.255.252

!

router bgp 300

network 192.208.10.0

neighbor 192.208.10.1 remote-as 500

neighbor 192.208.10.6 remote-as 100

! Router E

hostname RouterE

!

interface loopback 0

ip address 200.200.10.1 255.255.255.0

!

interface serial 0

ip address 195.211.10.2 255.255.255.252

!

interface serial 1

ip address 128.213.63.6 255.255.255.252

!

router bgp 400

network 200.200.10.0

neighbor 128.213.63.5 remote-as 200

neighbor 195.211.10.1 remote-as 500

! Router F

!

hostname RouterF

!

interface ethernet 0

ip address 203.250.14.2 255.255.255.0

!

interface serial 1

ip address 203.250.15.1 255.255.255.252

!

router ospf 10

network 203.250.0.0 0.0.255.255 area 0

! Router G

hostname RouterG

!

interface loopback 0

ip address 195.211.10.174 255.255.255.192

!

interface serial 0

ip address 192.208.10.0 255.255.255.252

!

interface serial 1

ip address 195.211.10.1 255.255.255.252

!

router bgp 500

network 195.211.10.0

neighbor 192.208.10.2 remote-as 300

neighbor 195.211.10.2 remote-as 400

Определение состояния BGP

Предположим, что (см. рисунок 6) связь между роутерами «B» и «D» испортилась. Выполним на роутере «B» команду show ip bgp:

RouterB# show ip bgp

table version is 4, local router ID is 203.250.15.2

Status codes: s suppesed, d damped, h history, * valid, > best, i internal

Origin codes: i - IGP, e - EGP,? - incomplete

Network Next Hop Metric LocPrf Weight Path

*i128.213.0.0 128.213.63.2 0 100 0 200 i

*i192.208.10.0 128.213.63.2 100 0 200 400 500 300 i

*i195.211.10.0 128.213.63.2 100 0 200 400 500 i

*i200.200.10.0 128.213.63.2 100 0 200 400 i

*>i203.250.13.0 203.250.13.41 0 100 0 i

*>i203.250.14.0 203.250.13.41 0 100 0 i

*> 203.250.15.0 0.0.0.0 0 32768 i

Символ «i» в начале строки означает, что о данном маршруте стало известно от IBGP peer'а.

Символ «i» в конце строки означает, что информация о данном пути пришла от IGP.

Первая строка читается так:

Информация о доступности сети 128.213.0.0 получена через AS_path 200, и для того, чтобы с данного роутера достичь этой сети, в качестве Next hop'а следует использовать 128.213.63.2.

Замечание: любой маршрут, который сгенерирован на данном роутере (см. 203.250.15.0) имеет next hop = 0.0.0.0.

Символ «>» означает, что BGP выбрал данный маршрут, как лучший. Процесс выбора наилучшего маршрута описан выше в главе «Summary of the BGP Path Selection Process». BGP всегда выбирает только один маршрут, как лучший. После чего он записывает этот маршрут в IP routong table и анонсирует этот путь другим BGP peer'ам.

Заметим, что next hop attribute 128.213.63.2, имеющий место для части маршрутов, унаследован от EBGP.

Теперь проверим IP routing table на роутере «B»:

RouterB# show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate

default

Gateway of last resort not set

203.250.13.0 255.255.255.255 is subnetted, 1 subnets

O 203.250.13.41 [110/75] via 203.250.15.1, 02:50:45, Serial0

203.250.15.0 255.255.255.252 is subnetted, 1 subnets

C 203.250.15.0 is directly connected, Serial0

O 203.250.14.0 [110/74] via 203.250.15.1, 02:40:46, Serial0

Заметим, что ни один BGP маршрут не появился в IP routing table. Это произошло потому, что в данной конфигурации мы имеем одну проблему: маршруты к некоторым сетям, содержащиеся в BGP route table на «B», имеют next hop = 128.213.63.2, который недоступен с «B».

Адрес 128.213.63.2 недоступен потому, что в таблице маршрутизации на «B» отсутствует запись о том, как достичь данный адрес через IGP (в данном случае, через OSPF). Итак, роутер «B» не знает о 128.213.63.0 из OSPF.

Исправление проблемы Next Hop

В данном примере проблема с next hop может быть решена двумя способами:

* Использованием на роутере «A» команды «next-hop-self» для изменения значения next hop между роутерами «A» и «B».

* На роутере «A» настроить OSPF _на интерфейсе_ Serial 0, указав его как passive. В этом случае роутер «B» будет знать, каким образом достичь next hop 128.213.63.2.

Итак, следующая конфигурация роутера «A» устанавливает OSPF на Serial 0 и делает его passive:

! Router A

hostname RouterA

!

interface loopback 0

ip address 203.250.13.41 255.255.255.0

!

interface ethernet 0

ip address 203.250.14.1 255.255.255.0

!

interface serial 0

ip address 128.213.63.1 255.255.255.252

!

router ospf 10

passive-interface serial 0

network 203.250.0.0 0.0.255.255 area 0

network 128.213.0.0 0.0.255.255 area 0

!

router bgp 100

network 203.250.13.0 mask 255.255.255.0

network 203.250.14.0 mask 255.255.255.0

neighbor 128.213.63.2 remote-as 200

neighbor 203.250.15.2 remote-as 100

neighbor 203.250.15.2 update-source loopback 0

Теперь, BGP таблица соседей на роутере «B» будет содержать следующие маршруты:

RouterB# show ip bgp

table version is 4, local router ID is 203.250.15.2

Status codes: s suppesed, d damped, h history, * valid, > best, i internal

Origin codes: i - IGP, e - EGP,? - incomplete

Network Next Hop Metric LocPrf Weight Path

*>i128.213.0.0 128.213.63.2 0 100 0 200 i

*>i192.208.10.0 128.213.63.2 100 0 200 400 500 300 i

*>i195.211.10.0 128.213.63.2 100 0 200 400 500 i

*>i200.200.10.0 128.213.63.2 100 0 200 400 i

*>i203.250.13.0 203.250.13.41 0 100 0 i

*>i203.250.14.0 203.250.13.41 0 100 0 i

*> 203.250.15.0 0.0.0.0 0 32768 i

Как видно, символ «>» появился у всех записей о маршрутах, и это означает, что BGP удовлетворен наличием достижимого next hop'а в этих записях.

Теперь IP Routing Table на роутере «B» будет выглядеть по-другому:

RouterB# show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate

default

Gateway of last resort not set

203.250.13.0 255.255.255.255 is subnetted, 1 subnets

O 203.250.13.41 [110/75] via 203.250.15.1, 02:50:45, Serial0

203.250.15.0 255.255.255.252 is subnetted, 1 subnets

C 203.250.15.0 is directly connected, Serial0

O 203.250.14.0 [110/74] via 203.250.15.1, 02:40:46, Serial0

128.213.0.0 255.255.255.252 is subnetted, 1 subnets

O 128.213.63.0 [110/138] via 203.250.15.1, 00:04:47, Serial0

Пока что мы добились лишь того, что сеть 128.213.63.0 стала доступной по OSPF. Заметим, что BGP записи все еще не появились в IP routing table.

Проблема заключается в синхронизации: BGP не синхронизован с IGP, поэтому маршруты BGP не передались в IP routing table, и соответственно данные маршруты не включены в передаваемые далее BGP update.

Роутер «F» не знает о сетях 192.208.10.0, 195.211.10.0 потому что BGP маршруты все еще не redistributed into OSPF.

Выключение синхронизации

Если ввести команду конфигурации
«no synchronisation» на роутере «B», и потом проверите таблицу IP маршрутизации на нем же, то выведутся следующие маршруты:

RouterB# show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate

default

Gateway of last resort not set

B 200.200.10.0 [200/0] via 128.213.63.2, 00:01:07

B 195.211.10.0 [200/0] via 128.213.63.2, 00:01:07

B 192.208.10.0 [200/0] via 128.213.63.2, 00:01:07

203.250.13.0 is variably subnetted, 2 subnets, 2 masks

O 203.250.13.41 255.255.255.255

[110/75] via 203.250.15.1, 00:12:37, Serial 0

B 203.250.13.0 255.255.255.0 [200/0] via 203.250.13.41, 00:01:08

203.250.15.0 255.255.255.252 is subnetted, 1 subnets

C 203.250.15.0 255.255.255.252 is directly connected, Serial 0

O 203.250.14.0 [110/74 via 203.250.15.1, 00:12:37, Serial 0

128.213.0.0 is is variably subnetted, 2 subnets, 2 masks

B 128.213.0.0 255.255.0.0 [200/0] via 128.213.63.2, 00:01:08

O 128.213.63.0 255.255.255.252

[110/138] via 203.250.15.1, 00:12:37, Serial 0

Итак, таблица маршрутизации на первый взгляд правильная, но достичь указанные в ней сети не представляется возможным из-за того, что роутер «F», расположенный на пути к ним, не знает маршрутов к этим сетям. Это видно в результатах выполнения команды show ip route на «F»:

RouterF# show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate

default

Gateway of last resort not set

203.250.13.0 255.255.255.255 is subnetted, 1 subnets

O 203.250.13.41 [110/11] via 203.250.14.1, 00:14:15

203.250.15.0 255.255.255.252 is subnetted, 1 subnets

C 203.250.15.0 is directly connected, Serial1

C 203.250.14.0 is directly connected, Ethernet0

128.213.0.0 255.255.255.252 is subnetted, 1 subnets

O 128.213.63.0 [110/74] via 203.250.14.1, 00:14:15, Ethernet0

Если пакеты, пришедшие из сети, роутеры которой обмениваются маршрутами по BGP, попадут на роутер «F», они будут утеряны. Таким образом, выключение синхронизации не решает эту проблему. Мы видим, что OSPF необходимо сделать перераспределение своих маршрутов в BGP на роутере «A»; таким образом, роутер «F» узнает о BGP маршрутах.

Ре-аннонсирование OSPF

Итак, следующая конфигурация роутера
«A» модифицированна таким образом, что BGP маршруты передаются (redistributed) в OSPF:

! Router A

hostname RouterA

!

interface loopback 0

ip address 203.250.13.41 255.255.255.0

!

interface ethernet 0

ip address 203.250.14.1 255.255.255.0

!

interface serial 0

ip address 128.213.63.1 255.255.255.252

!

router ospf 10

redistribute bgp 100 metric 2000 subnets

passive-interface serial0

network 203.250.0.0 0.0.255.255 area 0

network 128.213.0.0 0.0.255.255 area 0

!

router bgp 100

network 203.250.0.0 mask 255.255.0.0

neighbor 128.213.63.2 remote-as 200

neighbor 203.250.15.2 remote-as 100

neighbor 203.250.15.2 update-source loopback 0

Теперь IP routing table будет выглядеть следующим образом:

RouterB# show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default

Gateway of last resort not set

O E2 200.200.10.0 [110/2000] via 203.250.15.1, 00:00:14, Serial0

O E2 195.211.10.0 [110/2000] via 203.250.15.1, 00:00:14, Serial0

O E2 192.208.10.0 [110/2000] via 203.250.15.1, 00:00:14, Serial0

203.250.13.0 is variably subnetted, 2 subnets, 2 masks

O 203.250.13.41 255.255.255.255

[110/75] via 203.250.15.1, 00:00:15, Serial0

O E2 203.250.13.0 255.255.255.0

[110/2000] via 203.250.15.1, 00:00:15, Serial0

203.250.15.0 255.255.255.252 is subnetted, 2 subnets

C 203.250.15.8 is directly connected, Loopbackl

C 203.250.15.0 is directly connected, Serial0

O 203.250.14.0 [110/74] via 203.250.15.1, 00:00:15, Serial0

128.213.0.0 is variably subnetted, 2 subnets, 2 masks

O E2 128.213.0.0 255.255.0.0 [110/2000] via 203.250.15.1, 00:00:l5, Serial0

O 128.213.63.0 255.255.255.252

[110/138] via 203.250.15.1, 00:00:16, Serial0

Теперь записи о BGP маршрутах пропали, поскольку OSPF имеет лучшее значение Administrative Distance (110), чем IBGP (200).

Отключение синхронизации на роутере «A» означает, что роутер «A» анонсирует маршруты к сети 203.250.15.0; Это требуется потому, что роутер «A» не синхронизован с OSPF из-за mask differences. По той же самой причине, синхронизация должна быть отключена на роутере «B», чтобы этот роутер мог анонсировать сеть 203.250.13.0.

Необходимо добавить, что OSPF должен быть включен на интерфейсе Serial 1 роутера «B» и быть passive, таким образом роутер «A» узнает о next hop 192.208.10.5 через IGP.

Итак, новые конфигурации роутеров «A» и «B»:

! Router A

hostname RouterA

!

interface loopback 0

ip address 203.250.13.41 255.255.255.0

!

interface ethernet 0

ip address 203.250.14.1 255.255.255.0

!

interface serial 0

ip address 128.213.63.1 255.255.255.252

!

router ospf 10

redistribute bgp 100 metric 2000 subnets

passive-interface serial 0

network 203.250.0.0 0.0.255.255 area 0

network 128.213.0.0 0.0.255.255 area 0

!

router bgp 100

no synchronization

network 203.250.13.0 mask 255.255.255.0

network 203.250.14.0 mask 255.255.255.0

neighbor 128.213.63.2 remote-as 200

neighbor 203.250.15.2 remote-as 100

neighbor 203.250.15.2 update-source loopback 0

Конфигурация роутера «B»:

! Router B

hostname RouterB

!

interface serial 0

ip address 203.250.15.2 255.255.255.252

!

interface serial 1

ip address 192.208.10.6 255.255.255.252

!

router ospf 10

redistribute bgp 100 metric 1000 subnets

passive-interface serial 1

network 203.250.0.0 0.0.255.255 area 0

network 192.208.0.0 0.0.255.255 area 0

!

router bgp 100

network 203.250.15.0

neighbor 192.208.10.5 remote-as 300

neighbor 203.250.13.41 remote-as 100

Теперь поднимем Serial 1 на роутере «B» и получим такую таблицу BGP маршрутизации на роутере «A»:

RouterA# show ip bgp

table version is 117, local router ID is 203.250.13.41

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP,? - incomplete

Network Next Hop Metric LocPrf Weight Path

*> 128.213.0.0 128.213.63.2 0 100 0 200 i

*>i192.208.10.0 192.208.10.5 0 100 0 300 i

*>i195.211.10.0 192.208.10.5 100 0 300 500 i

* 128.213.63.2 0 200 400 500 i

*> 203.250.13.0 0.0.0.0 0 32768 i

*> 203.250.14.0 0.0.0.0 0 32768 i

*>i203.250.15.0 203.250.15.2 0 100 0 i

Результаты выполнения команды show ip route на роутере «A»:

RouterA# show ip route

Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP

D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area

E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP

i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, * - candidate default

Gateway of last resort not set

192.208.10.0 is variably subnetted, 2 subnets, 2 masks

O E2 192.208.10.0 255.255.255.0

[110/1000] via 203.250.14.2, 00:41:25, Ethernet0

O 192.208.10 4 255.255.255.252

[110/138] via 203.250.14.2, 00:41:25, Ethernet0

C 203.250.13.0 is directly connected, Loopback0

203.250.15.0 is variably subnetted, 3 subnets, 3 masks

O 203.250.15.10 255.255.255.255

[110/75] via 203.250.14.2, 00:41:25, Ethernet0

O 203.250.15.0 255.255.255.252

[110/74] via 203.250.14.2, 00:41:25, Ethernet0

B 203.250.15.0 255.255.255.0 [200/0] via 203.250.15.2, 00:41:25

C 203.250.14.0 is directly connected, Ethernet0

128.213.0.0 is variably subnetted, 2 subnets, 2 masks

B 128.213.0.0 255.255.0.0 [20/0] via 128.213.63.2, 00:41:26

C 128.213.63.0 255.255.255.252 is directly connected, Serial0

B* 200.200.0.0 255.255.0.0 [20/0] via 128.213.63.2, 00:02:38

Результаты выполнения команды show ip bgp на роутере «B»:

RouterB# show ip bgp

table version is 12, local router ID is 203.250.15.2

Status codes: s suppressed, d damped, h history, * valid, > best, i - internal

Origin codes: i - IGP, e - EGP,? - incomplete

Network Next Hop Metric LocPrf Weight Path

*>i128.213.0.0 128.213.63.2 0 100 0 200 i

* 192.208.10.5 0 300 500 400 200 i

*> 195.208.10.0 192.208.10.5 0 0 300 i

*> 195.211.10.0 192.208.10.5 0 300 500 i

*>i200.200.10.0 128.213.63.2 100 0 200 400 i

*> 192.208.10.5 0 300 500 400 i

*>i203.250.13.0 203.250.13.41 0 100 0 i

*>i203.250.14.0 203.250.13.41 0 100 0 i

*> 203.250.15.0 0.0.0.0 0 32768 i

Литература

1. Олифер В.Г., Олифер Н.А., «Компьютерные сети. Принципы, технологии, протоколы: Учебник для вузов», СПб: Питер, 2007.

2. Компьютерные сети. Э. Таненбаум, - СПб: Питер, 2002.

3. Олифер В.Г., Олифер Н.А., «Введение в IP-сети». Электронный учебник.

Страницы: 1, 2


© 2010 BANKS OF РЕФЕРАТ