Диплом: Балансировка трафика в условиях территориально распределенных дата-центров

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
12
маршрутизатор передаёт идентификатор маршрутизатора (Router ID), IP
адреса интерфейсов, их метрику, и, в некоторых случаях, маски подсети
подключенных интерфейсов.
Каждый маршрутизатор просматривает список интерфейсов, на
которых включен протокол OSPF. Далее, маршрутизатор формирует Router
LSA из полученной выше информации и рассылает LSA всем своим соседям с
помощью механизма, который называется “flooding”. Соседи, получив LSA,
также рассылают его своим соседям, и так далее, пока все маршрутизаторы не
получат копию этого LSA. В конечном счёте, данный процесс приводит к
тому, что все роутеры в домене маршрутизации имеют одинаковые LSDB.
Алгоритм SPF (Shortest path first), основанный на Алгоритме Дейкстры,
анализирует информацию в LSDB, высчитывает каждый возможный маршрут
и выбирает кратчайший до каждой отдельной подсети в топологии. Рисунок
1.3 показывает результат выполнения SPF алгоритма маршрутизатором R1 для
подсети 172.16.3.0/24. Маршрутизатор R1 сначала ищет все вероятные
маршруты от себя до определённой подсети, пользуясь метрикой(cost), как
фактором, определяющим качество маршрута. Таблица 1.1 показывает список
вероятных путей для маршрутизатора R1. [9]
Маршрут
Общая метрика
R1-R7-R8
10 + 180 + 10 = 200
R1-R5-R6-R8
20 + 30 + 40 + 10 = 100
R1-R2-R3-R4-R8
30 + 60 + 20 + 5 + 10 = 125
Таблица 1.1: Список вероятных путей до подсети 172.16.3.0/24
В результате запуска алгоритма SPF, R1 добавит в свою таблицу
маршрутизации подсеть 172.16.3.0/24 через роутер R5.
13
Рисунок 1.3: Выбор кратчайшего маршрута
1.5 Сравнение протоколов маршрутизации
Сравнивая протоколы маршрутизации состояния канала и
дистанционно-векторные, можно выделить следующие преимущества и
недостатки:
Протоколы состояния канала обладают более быстрой конвергенцией.
Протоколы состояния канала значительно более затратны с точки зрения
ресурсов - памяти и ЦПУ.
Протоколы состояния канала по своей природе избегают маршрутных
петель, в то время, как дистанционно-векторным протоколам
маршрутизации необходимы многие дополнительные функции такие
как: “правило расщепленного горизонта” (split horizon rule) и т.д.
Дистанционно-векторные протоколы маршрутизации требуют
значительно меньше времени для планирования топологии при разработке
архитектуры сети за счёт своей гибкости в плане фильтрации маршрутов.
14
Функция
RIPv1
RIPv2
EIGRP
IS-IS
Бесклассовый
Нет
Да
Да
Да
Поддержка
VLSM
Нет
Да
Да
Да
Дистанционно-
векторный
Да
Да
Нет*1
Нет
Поддерживает
автоматическое
суммирование
маршрутов
Нет
Да
Да
Нет
Поддержка
аутентификации
Нет
Да
Да
Да
Скорость
конвергенции
Медленная
Медленная
Очень
быстрая
Быстрая
Таблица 1.2: Сравнение протоколов маршрутизации IGP.
*(1) – EIGRP сочетает в себе некоторые функции дистанционно-
векторных протоколов маршрутизации и протоколов состояния канала,
поэтому вынесен в отдельную группу протоколов, которая называется
“Гибридные”.
1.6 Описание протокола BGP
Как и IGP, BGP маршрутизаторы обмениваются маршрутной
информацией, чтобы, в конечном счёте, найти лучшие маршруты до тех или
иных подсетей. Но то, что делает BGP уникальным – это то, что BGP не
использует привычную метрику для выбора из нескольких маршрутов. Вместо
метрики, BGP использует атрибуты (Path attributes или PA) для выбора
лучшего маршрута. [2]
BGP использует атрибут под названием AS_PATH как свой
основной механизм определения наилучшего маршрута, в том случае, если все
остальные атрибуты имеют значения по умолчанию. BGP использует
атрибуты для описания характеристик маршрута. Атрибут AS_PATH
содержит в себе список автономных систем, через которые пакету
понадобится пройти для достижения сети назначения. Рисунок 1.4 показывает
пример работы атрибута AS_PATH.
15
Рисунок 1.4: Механизм работы атрибута AS_PATH
На Рисунке 1.4 показан классический пример того, как BGP использует
дистанционно-векторную логику для выбора наилучшего маршрута.
Маршрутизатор получил 2 анонса к сети 9.0.0.0/8 c атрибутом AS_PATH
равным 2,3 и 5,4,3. В данном случае, R1 выберет путь с кротчайшим AS_PATH
т.е. 2,3. В результате получается, что BGP определяет AS_PATH как вектор, а
длина этого вектора определяет лучший маршрут. В BGP под термином
"маршрут" имеется ввиду традиционные маршруты, а под термином "путь"
подразумевается череда автономных систем, которые пройдёт пакет на пути к
целевой подсети [3].
1.7 Создание BGP соседства
BGP маршрутизаторы устанавливают соседства друг с другом при
помощи протокола TCP, используя порт 179. Для формирования такого
соседства, на каждом роутере должен быть явно описан ip-адрес его соседа.
Если маршрутизатор получит запрос на соединение на порт назначения 179, с
ip-адреса, которого нету в списке соседей, то такой запрос будет отброшен.
После того, как TCP соединение установлено, BGP маршрутизаторы
пересылают друг другу сообщения, которые называются "BGP OPEN". Если
16
маршрутизаторы успешно обменялись BGP OPEN сообщениями, соседство
переходит в статус "Established", что означает, что BGP соседство
установлено. Теперь маршрутизаторы могут обмениваться маршрутной
информацией.
1.8 Внутренние BGP соседства
Каждый BGP маршрутизатор определяет своих соседей как внутренних
BGP соседей (internal BGP или iBGP) и внешних (external BGP или eBGP).
Каждый BGP маршрутизатор, также, принадлежит лишь одной автономной
системе, что впоследствии означает, что BGP соседства формируются либо
между маршрутизаторами внутри одной автономной системы(iBGP), либо
между маршрутизаторами, которые находятся в разных автономных системах
(eBGP). Эти типы соседств совсем немного отличаются друг от друга в плане
формирования самого соседства, но кардинально отличаются, когда дело
касается обмена маршрутной информацией и установки маршрутов в таблицу
маршрутизации. [6]
Для установки соседства, iBGP соседи часто используют ip-адреса на
loopback интерфейсах чтобы повысить отказоустойчивость. Как правило,
между iBGP соседями внутри одной автономной системы находятся как
минимум пара маршрутизаторов. В том случае, если BGP соседи используют
ip-адреса на физических, или саб-интерфейсах для установки соседства, и
работа такого интерфейса будет нарушена, то даже если в сети будет
присутствовать альтернативный путь между iBGP соседями, TCP соединение
будет сброшено и не сможет заново установиться. Поэтому, в любой ситуации,
когда между iBGP соседями есть 2 возможных маршрута, использование
loopback интерфейсов имеет наибольший смысл.
Пример 1 демонстрирует конфигурацию BGP соседств на примере
использования маршрутизаторов cisco с операционной системой cisco ios.
Иллюстрация к примеру 1.1 показана на рисунке 1.5.
17
Рисунок 1.5: Иллюстрация к примеру А
Маршрутизаторы R1, R2 и R3 в AS 123 устанавливают iBGP соседство
друг с другом. Когда каждый роутер имеет соседство с каждым другим iBGP
роутером в AS - это называется "Full mesh". Количество соседств можно
выразить формулой l = n*(n-1)/2, где n - это количество маршрутизаторов, а l -
это количество сессий, формирующих соседство. [3]
В примере 1 есть несколько важных фактов. Во-первых, обратите
внимание на то, что в конфигурации нигде нету определение соседства как
iBGP или eBGP. Вместо этого каждый маршрутизатор определяет номер
автономной системы, в которой он находится (команда "router bgp 123"), и
если номер автономной системы соседа (команда "neighbor *.*.*.* remote-as
*") совпадает с его собственной, маршрутизатор считает такую конфигурацию
iBGP соседством. В противном случае, это eBGP соседство. Полную
конфигурацию для данного примера можно найти в приложении.
18
1.9 Внешние BGP соседства
Зачастую, eBGP соседства формируются между маршрутизаторами в
одном широковещательном сегменте. В основном потому, что чаще всего, это
соседства между маршрутизаторами принадлежащим разным компаниям, и,
как следствие, находящихся в разных автономных системах. В результате,
eBGP соседи чаще всего используют IP-адрес физического или саб-
интерфейса. Рисунок 1.5 показывает соседство между R1 и R6, которые
используют ip-адреса физических интерфейсов для создания eBGP соседства.
[3]
Конфигурация для eBGP незначительно отличается от конфигурации
для iBGP. Во первых, в команде "neighbor *.*.*.* remote-as ***" номер
автономной системы должен отличаться от номера автономной системы
самого маршрутизатора. Во-вторых, по умолчанию, для eBGP соседств, в
Cisco IOS, значение поля TTL в IP-пакете равняется единице. В связи с этим,
установить соседство, не внося дополнительной конфигурации можно только
между маршрутизаторами, находящимися в одном широковещательном
домене. Помимо этого, в Cisco IOS используется механизм, который
называется "Connected check". Данный механизм проверяет, что маршрут до
подсети в которой находится сосед установлен в таблицу маршрутизации с
меткой "Connected", т.е. между соседями нету дополнительных
маршрутизаторов. В результате, без дополнительной конфигурации
маршрутизаторы не могут установить eBGP соседство используя ip-адреса на
loopback интерфейсах, т.к. маршрут до ip-адреса loopback интерфейса одного
маршрутизатора никогда не появится как "Connected" в таблице
маршрутизации другого. Данные ограничения можно обойти с помощью ряда
команд. Например "neighbor *.*.*.* ebgp-multihop n", где n - это значение TTL
в ip-пакетах отправляемых соседу. Данная команда также отключает
Connected check. Также, можно просто отключить Connected Check с помощью
команды "neighbor *.*.*.* disable-connected-check", при этом TTL в ip-пакетах
останется равен единице.
1.10 Проверки BGP соседства
Также, как и IGP, BGP проверяет некоторые параметры прежде чем
соседство между BGP маршрутизаторами будет установлено:
1) Маршрутизатор должен получить запрос на TCP соединение с одного
из адресов, которые описаны в списке возможных соседей (neighbor list). Т.е.
должен быть предварительно добавлен в конфигурацию маршрутизатора,
получающего запрос.
19
2) С точки зрения конфигурации, маршрутизатор должен находиться в
той автономной системе, в которой инициатор соединения ожидает
обнаружить своего соседа. (Исключение составляет конфигурация
конфедераций.)
3) Идентификаторы маршрутизаторов (Router id) не должны совпадать.
4)Если используется MD5 аутентификация, то она должна быть успешно
пройдена. (BGP для аутентификации использует TCP опцию).
Рисунок 1.6:
Рисунок 1.6: Графический пример установления BGP сессии
Рисунок 1.6 показывает графический пример проверки первых трёх
параметров в случае, когда маршрутизатор R3 инициирует BGP TCP
соединение к маршрутизатору R1. Номера, обведённые кружками (1,2,3)
показывают номер проверки из таблицы 1.3. [3]
На рисунке 1.6 R3 инициирует TCP соединение с ip-адреса 3.3.3.3(адрес
его loopback интерфейса). Первая проверка происходит когда R1 получает
первый пакет, просматривает ip-адрес в поле "source-ip" ip-пакета, и сверяет
его со списком соседей описанных в конфигурации с помощью команды
"neighbor *.*.*.* remote-as *". Вторая проверка происходит, когда R1 сверяет
номер автономной системы в BGP OPEN сообщении с тем, что
сконфигурирован в этой же команде. После чего, R1 сверяет свой RID с тем,
20
который он получил из BGP OPEN сообщения от R3, заканчивая проверку
номер 3.
Так как данные внутри установленного соседства могут не передаваться
достаточно длительное время, BGP использует специальный механизм для
определения доступности соседа. Этот механизм включает в себя ряд
таймеров. BGP использует таймер, который называется "Keepalive timer" для
определения того, как часто BGP должен слать своему соседу служебные
сообщения, сигнализирующие о том, что он жив и "Hold timer" для
обозначения того, как долго маршрутизатор будет ждать "Keepalive"
сообщения, прежде чем объявит своего соседа недоступным и разорвёт
соседство. Если конфигурация данных таймеров отличается между роутерами,
пытающимися установить соседство, то они согласуют самые короткие
таймеры из предлагаемых, но всё равно установят соседство.
1.11 BGP сообщения и статусы соседств
Как правило, желаемый статус любого BGP соседства - это "Established".
Достижение соседством этого статуса означает, что маршрутизаторы уже
установили TCP соединение и обменялись "BGP OPEN" сообщениями,
успешно проверив все нужные параметры, и теперь маршрутизаторы могут
обмениваться "Update" сообщениями. В таблице 1.3 описаны все статусы
соседств и их краткие характеристики.
Состояние
Ждет
TCP
SYN
Пытается
послать
TCP SYN
TCP
соседство
установлено
Отправлено
Open
сообщение
Получено
Open
сообщение
Соседство
установлено
Idle
Нет
Connect
Да
Active
Да
Да
Open sent
Да
Да
Да
Да
Open
confirm
Да
Да
Да
Да
Да
Established
Да
Да
Да
Да
Да
Да
Таблица 1.3: Статусы bgp соседства
BGP использует 4 основных типа сообщений, таких как:
Open это сообщение используется для того, чтобы обменяться
основными параметрами и обозначить попытку установки BGP
соседства.
Keepalive– это сообщение используется для поддержания BGP сессии
и определения доступности соседа. Если данные сообщения не приходят
от одного соседа другому в течении определённого времени, которое
21
задаётся параметром “Hold time”, то сосед объявляется недоступным, а
BGP сессия разрывается.
Update” – используется для обмена маршрутной информацией.
Notification” – позволяет разорвать BGP соединение.
1.12 BGP атрибуты и процесс определения кратчайшего пути
Атрибуты BGP определяют характеристики того или иного
маршрута. Например, AS_PATH атрибут содержит в себе список ASN через
которые данный маршрут был анонсирован. Атрибуты в BGP влияют на
процесс определения кратчайшего пути до определённого префикса, в
ситуации, когда у маршрутизатора существует несколько путей для
достижения одной и той же подсети.
Когда BGP роутер получает несколько маршрутов до одной и той
же подсети, ему необходимо выбрать лучший из них. BGP, в отличии от IGP,
полагается не только на концепцию метрики. Вместо этого, BGP
предоставляет богатый набор инструментов, работа с которыми позволяет
влиять на процесс выбора кратчайшего пути. Этот список описывает
механизм выбора кратчайшего пути:
Доступен ли NEXT_HOP? Так, как в BGP адрес последующего
маршрутизатора (т.е. next hop) является атрибутом, то и здесь не будет лишним
про него упомянуть.
Weight. Атрибут weight доступен только для маршрутизаторов Cisco.
Этот параметр может быть установлен для какого-либо маршрута
непосредственно на самом маршрутизаторе. Между BGP соседями данный
параметр не передаётся. Чем выше значение, тем маршрут приоритетнее.
Local Preference. Атрибут Local preference распространяется
исключительно между маршрутизаторами внутри автономной системы.
Данный атрибут может быть использован для определения ближайшей точки
выхода из автономной системы для конкретного маршрута. Чем выше
значение, тем маршрут приоритетнее.
Маршруты, установленные локально. К этому типу относятся
маршруты, добавленные локально на самом маршрутизаторе через команду
network, или при использовании агрегации, или распределении маршрутов.
Кратчайшая длина AS_PATH. При вычислении длины игнорируются
поля AS_CONFED_SET и AS_CONFED_SEQ. AS_SET, при вычислении,
считается одной AS, независимо от количества автономных систем в списке.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)