Главная страница

корпоративные ис лаб 4 v3. Лабораторная работа 4 Протокол маршрутизации bgp


Скачать 2.02 Mb.
НазваниеЛабораторная работа 4 Протокол маршрутизации bgp
Дата02.12.2022
Размер2.02 Mb.
Формат файлаdoc
Имя файлакорпоративные ис лаб 4 v3.doc
ТипЛабораторная работа
#824423

Курс «Корпоративные информационные системы»

Лабораторная работа №4

«Протокол маршрутизации BGP»

  1. Теория

BGP (англ. Border Gateway Protocol, протокол граничного шлюза) — основной протокол динамической маршрутизации в Интернете. BGP, в отличие от других протоколов динамической маршрутизации, предназначен для обмена информацией о маршрутах не между отдельными маршрутизаторами, а между целыми автономными системами, и поэтому, помимо информации о маршрутах в сети, переносит также информацию о маршрутах на автономные системы. BGP не использует технические метрики, а осуществляет выбор наилучшего маршрута исходя из правил, принятых в сети. BGP поддерживает бесклассовую адресацию и использует суммирование маршрутов для уменьшения таблиц маршрутизации. С 1994 года действует четвёртая версия протокола, все предыдущие версии являются устаревшими.

BGP является протоколом прикладного уровня и функционирует поверх протокола транспортного уровня TCP (порт 179).


Главная цель BGP - сократить транзитный трафик. Местный трафик либо начинается, либо завершается в автономной системе (AS); в противном случае - это транзитный трафик. Системы без транзитного трафика не нуждаются в BGP (им достаточно EGP для общения с транзитными узлами). Но не всякая ЭВМ, использующая протокол BGP, является маршрутизатором, даже если она обменивается маршрутной информацией с пограничным маршрутизатором соседней автономной системы. AS передает информацию только о маршрутах, которыми она сама пользуется. BGP-маршрутизаторы обмениваются сообщениями об изменении маршрутов (UPDATE-сообщения). Максимальная длина таких сообщений составляет 4096 октетов, а минимальная 19 октетов. Каждое сообщение имеет заголовок фиксированного размера. Объем информационных полей зависит от типа сообщения.

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

    1. Формат BGP-сообщений об изменениях маршрутов





Поле маркер содержит 16 октетов и его содержимое может легко интерпретироваться получателем. Если тип сообщения "OPEN", или если код идентификации в сообщении open равен нулю, то поле маркер должно быть заполнено единицами. Маркер может использоваться для обнаружения потери синхронизации в работе BGP-партнеров. Поле длина имеет два октета и определяет общую длину сообщения в октетах, включая заголовок. Значение этого поля должно лежать в пределах 19-4096. Поле тип представляет собой код разновидности сообщения и может принимать следующие значения:

  • 1 OPEN (открыть)

  • 2 UPDATE (изменить)

  • 3 NOTIFICATION (внимание)

  • 4 KEEPALIVE (еще жив)

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

После того как связь на транспортном протокольном уровне установлена, первое сообщение, которое должно быть послано - это OPEN. При успешном прохождении этого сообщения партнер должен откликнуться сообщением KEEPALIVE ("Еще жив"). После этого возможны любые сообщения. Кроме заголовка сообщение open содержит следующие поля:

Поле версия описывает код версии используемого протокола, на сегодня для BGP он равен 4. Двух-октетное поле моя автономная система определяет код AS отправителя. Поле время сохранения характеризует время в секундах, которое отправитель предлагает занести в таймер сохранения. После получения сообщения OPEN BGP-маршрутизатор должен выбрать значение времени сохранения. Обычно выбирается меньшее из полученного в сообщении open и значения, определенного при конфигурации системы (0-3сек). Время сохранения определяет максимальное время в секундах между сообщениями KEEPALIVE и UPDATE или между двумя UPDATE-сообщениями. Каждому узлу в рамках BGP приписывается 4-октетный идентификатор (BGP-identifier, задается при инсталляции и идентичен для всех интерфейсов локальной сети). Если два узла установили два канала связи друг с другом, то согласно правилам должен будет сохранен канал, начинающийся в узле, BGP-идентификатор которого больше. Предусмотрен механизм разрешения проблемы при равных идентификаторах.

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

Длина сообщения = 29 + длина поля идентификационных данных.

Минимальная длина сообщения open составляет 29 октетов, включая заголовок.

    1. Формат update-сообщения

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

Если длина списка отмененных маршрутов равна нулю, ни один маршрут не отменен, а поле отмененные маршруты в сообщении отсутствует. Поле отмененные маршруты имеет переменную длину и содержит список IP-адресных префиксов маршрутов, которые стали недоступны. Каждая такая запись имеет формат:

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

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

Старший бит (бит0) поля флаги атрибута определяет, является ли атрибут опционным (бит0=1) или стандартным (well-known, бит0=0). Бит 1 этого поля определяет, является ли атрибут переходным (бит1=1) или непереходным (бит1=0). Для обычных атрибутов этот бит должен быть равен 1. Третий бит (бит 2) поля Флагов атрибута определяет, является ли информация в опционном переходном атрибуте полной (бит2=0) или частичной (бит2=1). Для обычных и для опционных непереходных атрибутов этот бит должен быть равен нулю. Бит 3 поля флагов атрибута информирует о том, имеет ли длина атрибута один (бит3=0) октет или два октета (бит3=1). Бит3 может быть равен 1 только в случае, когда длина атрибута более 255 октетов. Младшие 4 бита октета флагов атрибута не используются (и должны обнуляться). Если бит3=0, то третий октет атрибута пути содержит длину поля данных атрибута в октетах. Если же бит3=1, то третий и четвертый октеты атрибута пути хранят длину поля данных атрибута. Остальные октеты поля атрибут пути характеризуют значение атрибута и интерпретируются согласно флагам атрибута.

Атрибуты пути бывают "стандартные обязательные" (well-known mandatory), "стандартные на усмотрение оператора", "опционные переходные" и "опционные непереходные". Стандартные атрибуты должны распознаваться любыми BGP-приложениями. Опционные атрибуты могут не распознаваться некоторыми приложениями. Обработка нераспознанных атрибутов задается битом 1 поля флагов. Пути с нераспознанными переходными опционными атрибутами должны восприниматься, как рабочие. Один и тот же атрибут может появляться в списке атрибутов пути только один раз.

    1. Алгоритм вектора расстояния

BGP является протоколом, ориентирующимся на вектор расстояния. Вектор описывается списком AS по 16 бит на AS. BGP регулярно (каждые 30сек) посылает соседям TCP-сообщения, подтверждающие, что узел жив (это не то же самое что "Keepalive" функция в TCP). Если два BGP-маршрутизатора попытаются установить связь друг с другом одновременно, такие две связи могут быть установлены. Такая ситуация называется столкновением, одна из связей должна быть ликвидирована. При установлении связи маршрутизаторов сначала делается попытка реализовать высший из протоколов (например, BGP-4), если один из них не поддерживает эту версию, номер версии понижается.

Протокол BGP-4 является усовершенствованной версией (по сравнению с BGP-3). Эта версия позволяет пересылать информацию о маршруте в рамках одного IP-пакета. Концепция классов сетей и субсети находятся вне рамок этой версии. Для того чтобы приспособиться к этому, изменена семантика и кодирование атрибута AS_PASS. Введен новый атрибут LOCAL_PREF (степень предпочтительности маршрута для собственной AS), который упрощает процедуру выбора маршрута. Атрибут INTER_AS_METRICSпереименован в MULTI_EXIT_DISC (4 октета; служит для выбора пути к одному из соседей). Введены новые атрибуты ATOMIC_AGGREGATE и AGGREGATOR, которые позволяют группировать маршруты. Структура данных отражается и на схеме принятия решения, которая имеет три фазы:

Вычисление степени предпочтения для каждого маршрута, полученного от соседней AS, и передача информации другим узлам местной AS.

Выбор лучшего маршрута из наличного числа для каждой точки назначения и укладка результата в LOC-RIB.

Рассылка информации из loc_rib всем соседним AS согласно политике, заложенной в RIB. Группировка маршрутов и редактирование маршрутной информации.

Бесклассовая интердоменная маршрутизация (CIDR- classless interdomain routing, RFC-1520, -1519) - способ избежать того, чтобы каждая С-сеть требовала свою таблицу маршрутизации. Основополагающий принцип CIDR заключается в группировке (агрегатировании) IP-адресов таким образом, чтобы сократить число входов в таблицах маршрутизации (RFC-1519, RFC-1518, RFC-1467, RFC-1466). Протокол совместим с RIP-2, OSPF и BGP-4.

    1. Метрика маршрута в BGP

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

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

  1. Настройка маршрутизатора

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

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

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

Представим следующую топологию:

С января 2010 года выдаются 32-битные номера автономных систем. Так, например, можно запросто получить номер 197061. Чтобы маршрутизатор его правильно понял, необходимо, во-первых, обновить IOS, чтобы он поддерживал 32-битные номера AS, во-вторых, представить номер 197061 в виде x.y. Число 1.0 = 65536. Следовательно, номер 197061 будет выглядеть 3.453, т.е. если 3 умножить на 65536 и прибавить 453, получим 197061.

Объявим нашу автономную систему командой router bgp 3.453 в режиме глобальной конфигурации маршрутизатора. Укажем IP подсеть, которую нам любезно предоставил RIPE, командой network 194.22.35.0.

Пример:

router bgp 3.453

network 194.22.35.0

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

В режиме глобальной конфигурации создадим фильтр на все входящие маршруты, кроме маршрута по умолчанию, командой ip prefix-list ISP-in seq 10 permit 0.0.0.0/0, затем создадим фильтр, в котором будем анонсировать только нашу внешнюю сеть командой ip prefix-list ISP-out seq 10 permit 194.22.35.0/24 le 32. Применим фильтры в режиме конфигурации протокола BGP.

Пример:

ip prefix-list ISP-in seq 10 permit 0.0.0.0/0

ip prefix-list ISP-out seq 10 permit 194.22.35.0/24 le 32

router bgp 3.453

neighbor 44.4.4.1 prefix-list ISP-in in

neighbor 44.4.4.1 prefix-list ISP-out out

neighbor 77.7.7.1 prefix-list ISP-in in

neighbor 77.7.7.1 prefix-list ISP-out out

Теперь можно объявить наших соседей не опасаясь, что мы получим или отдадим, что-либо лишнее:

router bgp 3.453

neighbor 44.4.4.1 remote-as 1000

neighbor 77.7.7.1 remote-as 2000

Проверьте состояние BGP сессий, командами:

sh ip bgp summary

sh ip bgp

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

router bgp 3.453

neighbor 172.16.1.2 remote-as 3.453

neighbor 172.16.1.2 update-source Loopback1

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

На втором маршрутизаторе, команды будут идентичными первому за исключением следующих команд:

router bgp 3.453

neighbor 172.16.1.1 remote-as 3.453

neighbor 172.16.1.1 update-source Loopback1

Финальная конфигруация на первом маршрутизаторе будет выглядеть так:

int Loopback1

ip address 172.16.1.1 255.255.255.255

ip prefix-list ISP-in seq 10 permit 0.0.0.0/0

ip prefix-list ISP-out seq 10 permit 194.22.35.0/24 le 32

router bgp 3.453

no synchronization

bgp log-neighbor-changes

network 194.22.35.0

neighbor 44.4.4.1 remote-as 1000

neighbor 44.4.4.1 prefix-list ISP-in in

neighbor 44.4.4.1 prefix-list ISP-out out

neighbor 77.7.7.1 remote-as 2000

neighbor 77.7.7.1 prefix-list ISP-in in

neighbor 77.7.7.1 prefix-list ISP-out out

neighbor 172.16.1.2 remote-as 3.453

neighbor 172.16.1.2 update-source Loopback1

no auto-summary

iproute 194.22.35.0 255.255.255.0 null0

Если вдруг маршрутизатор провайдера находится в более чем одном хопе от внутреннего маршрутизатора (провайдер обычно об этом предупреждает) следовательно ко всей остальной конфигурации нам понадобится добавить команду типа neighbor 77.7.7.1 ebgp-multihop 255. Где 255 – количество хопов до маршрутизатора провайдера. Во избежание колец желательно не использовать максимальное количество хопов, а установить такое число, которое будет минимально необходимым.

    1. Команды


Команда конфигурации neighbor [ip address] remote-as [AS] добавляет запись в таблицу маршрутизации BGP, и в этой записи говорится о том, что peer идентифицируется его IP адресом внутри его автономной системы. Для роутеров, в которых используется EBGP, neighbors обычно соединены напрямую, и IP адрес neighbor'а - это IP адрес сетевого интерфейса граничной с вашим роутером стороны.
Weight attribute - это специальный атрибут, который используется роутерами Cisco в процессе выбора наилучшего пути к какому-то роутеру, или сети - если к нему ведет больше одного пути. Значение "weight attribute" является локальным для роутера, на котором оно устанавливается. Это значение не передается по таблицам маршрутизации на другие роутеры. Пример:

router bgp 300

neighbor 1.1.1.1 remote-as 100

neighbor 1.1.1.1 weight 2000
networkA.BC.Dанонсировать ту или иную сеть.

redistributestatic – анонсировать только статические адреса.

redistributeospf – анонсировать адреса из протокола OSPF.
Для проверки того, работают (доступны ли) BGP peers, вы можете использовать команду:

show ip bgp neighbors
  1. Задание


Цели выполнения лабораторной работы: составление сети по предложенной топологии с помощью средств пакета GNS3, конфигурирование таблиц маршрутизации в соответствии с топологией сети и адресами подсетей и их распространение с помощью протокола OSPF и BGP. Необходимо выполнить проверку, показать маршрут прохождения трафика User A – User B.
    1. Задание


1. Используя пакет gns3 построить топологию сети, указанную в приложении 1, использовав маршрутизаторы c2610.

2. Выполнить конфигурирование маршрутизаторов в соответствии с вашим вариантом.

3. Проверить работоспособность (в качестве рабочих станций использовать маленький маршрутизатор - c2621xm (использовать образ «c2600-i-mz.122-40a.bin»)).

4. Составить отчет.

Отчет должен содержать:

4.1 Титульный лист.

4.2 Конкретное задание (с указанием варианта).

4.3 Ход работы.

4.3.1 Показать топологию.

4.3.2 Показание конфигурирование всех узлов с вашими комментариями.

4.3.3 Показать результаты проверок.

4.4 Ваши выводы (Объяснить, почему маршрут именно такой).
    1. Варианты


 

1

2

3

4

5

6

AS XXX

297061

307061

317061

327061

337061

347061

AS YYY

298061

308061

318061

328061

338061

348061

A2 – B2

72.16.10.0

73.17.11.0

74.18.12.0

75.19.13.0

76.20.14.0

77.21.15.0

A2 – B2 weight

2000

4000

2000

4000

2000

4000

A3 – B3

100.18.3.0

101.17.3.0

102.16.3.0

103.15.3.0

104.14.3.0

105.13.3.0

A3 – B3 weigth

4000

2000

4000

2000

4000

2000

A1 – A5

192.168.1.0

192.176.2.0

192.184.3.0

192.192.4.0

192.200.5.0

192.208.6.0

A2 – A5

192.169.1.0

192.177.2.0

192.185.3.0

192.193.4.0

192.201.5.0

192.209.6.0

A3 – A5

192.170.1.0

192.178.2.0

192.186.3.0

192.194.4.0

192.202.5.0

192.210.6.0

A4 – A5

192.171.1.0

192.179.2.0

192.187.3.0

192.195.4.0

192.203.5.0

192.211.6.0

B1 – B5

192.172.1.0

192.180.2.0

192.188.3.0

192.196.4.0

192.204.5.0

192.212.6.0

B2 – B5

192.173.1.0

192.181.2.0

192.189.3.0

192.197.4.0

192.205.5.0

192.213.6.0

B3 – B5

192.174.1.0

192.182.2.0

192.190.3.0

192.198.4.0

192.206.5.0

192.214.6.0

B4 – B5

192.175.1.0

192.183.2.0

192.191.3.0

192.199.4.0

192.207.5.0

192.215.6.0

A1 – User A

192.168.2.0

192.176.3.0

192.184.4.0

192.192.5.0

192.200.6.0

192.208.7.0

B4 – User B

192.175.2.0

192.183.3.0

192.191.4.0

192.199.5.0

192.207.6.0

192.215.7.0




























7

8

9

10

11

12

AS XXX

357061

367061

377061

387061

397061

407061

AS YYY

358061

368061

378061

388061

398061

408061

A2 – B2

78.22.3.0

79.23.4.0

80.24.5.0

81.25.6.0

82.26.7.0

83.27.8.0

A2 – B2 weight

2000

4000

2000

4000

2000

4000

A3 – B3

121.18.3.0

122.19.3.0

123.20.3.0

124.21.3.0

125.22.3.0

126.23.3.0

A3 – B3 weigth

4000

2000

4000

2000

4000

2000

A1 – A5

192.162.10.0

192.162.11.0

192.162.12.0

192.162.13.0

192.162.14.0

192.162.15.0

A2 – A5

192.163.10.0

192.163.11.0

192.163.12.0

192.163.13.0

192.163.14.0

192.163.15.0

A3 – A5

192.164.10.0

192.164.11.0

192.164.12.0

192.164.13.0

192.164.14.0

192.164.15.0

A4 – A5

192.165.10.0

192.165.11.0

192.165.12.0

192.165.13.0

192.165.14.0

192.165.15.0

B1 – B5

192.166.10.0

192.166.11.0

192.166.12.0

192.166.13.0

192.166.14.0

192.166.15.0

B2 – B5

192.167.10.0

192.167.11.0

192.167.12.0

192.167.13.0

192.167.14.0

192.167.15.0

B3 – B5

192.168.10.0

192.168.11.0

192.168.12.0

192.168.13.0

192.168.14.0

192.168.15.0

B4 – B5

192.169.10.0

192.169.11.0

192.169.12.0

192.169.13.0

192.169.14.0

192.169.15.0

A1 – User A

192.162.11.0

192.162.12.0

192.162.13.0

192.162.14.0

192.162.15.0

192.162.16.0

B4 – User B

192.169.11.0

192.169.12.0

192.169.13.0

192.169.14.0

192.169.15.0

192.169.16.0



Приложение 1



Примечание: для связи маршрутизаторов используется стандарт FastEthernet.





написать администратору сайта