Разработка информационного компонента протокола маршрутизации RIP/RIPv2,BGP-4, OSPF

Автор работы: Пользователь скрыл имя, 26 Ноября 2012 в 11:07, курсовая работа

Описание работы

В работе рассмотреть базовые принципы работы протоколов маршрутизации RIP/RIPv2,BGP-4, OSPF. Описать их достоинства и недостатки. Разобрать принципы работы отдельных частей протоколов. Отдельно выделить информационную составляющую и разобрать принципы её разработки.

Содержание работы

1. Постановка задачи 2
2. Общие сведения о протоколах маршрутизации 3
3. Параметры и классы протоколов маршрутизации 5
4. Протокол RIP/RIPv2 9
5. Протокол BGP (BGP-4) 16
6. Протокол OSPF 34

Файлы: 1 файл

Курсовик Сети ЭВМ.doc

— 604.00 Кб (Скачать файл)

Предусмотрены следующие  разновидности кодов типа атрибута:

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

Код атрибута

Описание

0

IGP - информация достижимости  сетевого уровня является внутренней  по отношению к исходной автономной системе;

1

EGP - информация достижимости  сетевого уровня получена с  помощью внешнего протокола маршрутизации;

2

Incomplete - информация достижимости  сетевого уровня получена каким-то  иным способом.


AS_PATH (код типа = 2) также является стандартным обязательным атрибутом, который составлен из совокупности сегментов пути. Атрибут определяет автономные системы, через которые доставлена маршрутная информация. Когда BGP-маршрутизатор передает описание маршрута, которое он получил от своего BGP-партнера, он модифицирует AS_PATH-атрибут, соответствующий этому маршруту, если информация передается за пределы автономной системы. Каждый сегмент AS_PATH состоит из трех частей <тип сегмента пути, длина сегмента пути и оценка сегмента пути>. Тип сегмента пути представляет в свою очередь однооктетное поле, которое может принимать следующие значения:

Код типа сегмента

Описание

1

AS_set: неупорядоченный  набор маршрутов в update сообщении;

2

AS_sequence: упорядоченный  набор маршрутов автономной системы  в UPDATE-сообщении.


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

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

MULTI_EXIT_DISC (код типа = 4) представляет собой опционный непереходной атрибут, который занимает 4 октета и является положительным целым числом. Величина этого атрибута может использоваться при выборе одного из нескольких путей к соседней автономной системе.

LOCAL_PREF (код типа = 5) является опционным атрибутом, занимающим 4 октета. Он используется BGP-маршрутизатором, чтобы сообщить своим BGP-партнерам в своей собственной автономной системе степень предпочтения объявленного маршрута.

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

Aggregator (код типа = 7) - опционный переходной атрибут с длиной в 6 октетов. Атрибут содержит последний код автономной системы, который определяет агрегатный маршрут (занимает два октета), и IP-адрес BGP-маршрутизатора, который сформировал этот маршрут (4 октета). Объем информации о достижимости сетевого уровня равен (в октетах):

Длина сообщения UPDATE - 23 - полная длина атрибутов пути - длина  списка отмененных маршрутов. Информация о достижимости кодируется в следующей форме:

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

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

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

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

 

 

 

 

Коды ошибок

Таблица 5.1. Коды ошибок

Код ошибки

Описание

1

Ошибка в заголовке  сообщения.

2

Ошибка в сообщении open

3

Ошибка в сообщении update

4

Истекло время сохранения

5

Ошибка машины конечных состояний

6

Прерывание


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

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

Таблица 5.2 Субкоды ошибок

Ошибка

Субкод

Описание

Заголовок



3

Соединение не синхронизовано 
Неверная длина сообщения 
Неверный тип сообщения

Сообщения OPEN






6

Неверный код версии 
Ошибочный код as-партнера 
Ошибочный идентификатор BGP 
Ошибка в коде идентификации 
Ошибка при идентификации 
Неприемлемое время сохранения

Сообщения UPDATE










10 
11

Ошибка в списке атрибутов 
Не узнан стандартный атрибут 
Отсутствует стандартный атрибут 
Ошибка в флагах атрибута 
Ошибка в длине атрибута 
Неправильный атрибут origin 
Циклический маршрут 
Ошибка в атрибуте next_hop 
Ошибка в опционном атрибуте 
Ошибка в сетевом поле 
Ошибка в as_path


 

Маршрутная база данных RIB

Вся маршрутная информация хранится в специальной базе данных RIB (routing information base). Маршрутная база данных BGP состоит из трех частей:

1.

ADJ-RIBS-IN:

Запоминает маршрутную информацию, которая получена из update-сообщений. Это список маршрутов, из которого можно выбирать. (policy information base - PIB).

2.

LOC-RIB:

Содержит локальную  маршрутную информацию, которую BGP-маршрутизатор  отобрал, руководствуясь маршрутной политикой, из ADJ-RIBS-IN.

3.

ADJ-RIBS-OUT:

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


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

Протокол BGP позволяет  реализовать маршрутную политику, определяемую администратором AS. Политика отражается в конфигурационных файлах BGP. Маршрутная политика это не часть протокола, она определяет решения, когда место назначения достижимо несколькими путями, политика отражает соображения безопасности, экономические интересы и пр. Количество сетей в пределах одной AS не лимитировано. Один маршрутизатор на много сетей позволяет минимизировать таблицу маршрутов. BGP использует три таймера:  
Connectretry (сбрасывается при инициализации и коррекции; 120 сек),  
Holdtime (запускается при получении команд Update или Keepalive; 90сек) и  
keepalive (запускается при посылке сообщения Keepalive; 30сек).

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

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

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.

Основу протокола CIDR составляет идея бесклассовых адресов, где нет  деления между полем сети и  полем ЭВМ.

Дополнительная информация, например 32-разрядная маска, выделяющая поле адреса сети, передается в рамках протокола маршрутизации. При этом выдерживается строгая иерархия адресов: провайдер > предприятие > отдел/здание > сегмент локальной сети. Групповой (агрегатный) адрес воспринимается маршрутизатором как один адрес. Группу может образовывать только непрерывная последовательность IP-адресов. Такой бесклассовый интернетовский адрес часто называется IP-префиксом. Так адрес 192.1.1.0/24 означает диапазон адресов 192.1.1.0 - 192.1.1.255, а адрес 192.1.128.0/17 описывает диапазон 192.1.128.0 - 192.1.255.255, таким образом, число, следующее после косой черты, задает количество двоичных разрядов префикса. Это представление используется при описании политики маршрутизации и самих маршрутов. Для приведенных примеров это в терминах масок выглядит следующим образом:

24 и 17 длины префикса  сети.

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

Протокол

Метрика

Диапазон

Код "маршрут недостижим"

RIP 
hello 
BGP

Число скачков 
Задержка в ms 
Не определена

0-15 
0-29999 
0-65534

16 
30000 
65535


Колонка "маршрут недостижим" содержит коды метрики, которые говорят  о недоступности маршрута. Обычно предполагается, что если послан пакет  из точки <А> в точку <B>, то маршруты их в одном и другом направлении совпадают. Но это не всегда так. Пример, когда маршруты пакетов "туда" и "обратно" не совпадают, представлен на рис. 4.4.11.4.4. В предложенной схеме имеется две ЭВМ "Место назначения" и "ЭВМ-отправитель", а также два маршрутизатора "GW-2" и "GW-1".

 

Рис. 5.4. Пример разных маршрутов для пути "туда" и "обратно".

Предполагается, что оператор находится в ЭВМ-отправителе. Команда traceroute 192.148.166.33 в этом случае выдаст:

1 GW-1

(192.148.166.35)

2 Место назначения

(192.148.166.33)


Команда же traceroute 192.148.165.80 распечатает:

1 GW-1

(192.148.166.35)

2 GW-2

(192.148.166.7)

3 Место назначения

(192.148.165.80)


Команда traceroute -g 192.148.165.80 сообщит вам:

1 GW-1

(192.148.166.35)

2 *****

; В этом режиме маршрутизатор  не откликается

3 Место назначения

(192.148.165.80)

4 GW-1

(192.148.166.35)

5 ЭВМ-отправитель

(192.148.166.32)


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

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

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

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

Информация о работе Разработка информационного компонента протокола маршрутизации RIP/RIPv2,BGP-4, OSPF