РОССИЙСКИЙ
УНИВЕРСИТЕТ
ДРУЖБЫ
НАРОДОВ
Факультет
физико–математических
и
естественных
наук
Направление
прикладная
математика и
информатика
Специализация
программное
обеспечение
вычислительных
сетей
Кафедра систем
телекоммуникаций
Реферат
Протоколы
маршрутизации
RIP, OSPF, BGP
Студент
Латышева
Ирина
Владимировна
Группа НП–301
Научный
руководитель к.
ф.–м. н., доцент
Кулябов Д.С.
Заведующий
кафедрой д. т. н.,
проф.
Самуйлов К.Е.
МОСКВА
Оглавление
1. Внутренний
протокол
маршрутизации
RIP
1.1.
История
возникновения
RIP
2. Протокол
OSPF
(алгоритм
Дикстры)
2.3.
Преимущества
и недостатки OSPF:
3.2. Маршрутная
база данных BGP
3.3.
Отличительные
особенности BGP
Список
сокращений и
обозначений
|
TOS |
type of service |
|
OSPF |
Open Shortest Pass First |
|
backbone |
опорная сеть |
|
IBM |
сокр.
от International Business Machines компания
IBM–производитель
аппаратного
и программного
обеспечения,
а также
принадлежащая
ей торговая
марка |
|
CISCO |
компания
Cisco Systems -
производитель
сетевого
оборудования,
а также
принадлежащая
ей торговая
марка (web-site:
http://www.cisco.com) |
|
TCP |
сoкр.
от Transmission Control Protocol
ротокол
управления
передачей (основной
протокол
транспортного
и сеансового
уровней в
наборе
интернет-протоколов,
обеспечивающий
надежные
ориентированные
на
соединения
полнодуплексные
потоки) |
|
UDP |
сокр.
от User Data Protocol
пользовательский
протокол
данных |
1. Внутренний
протокол
маршрутизации
RIP
1.1. История
возникновения
RIP
Этот
протокол
маршрутизации
предназначен
для
сравнительно
небольших и
относительно
однородных
сетей
(алгоритм Белмана–Форда).
Протокол
разработан в
университете
Калифорнии
(Беркли),
базируется
на
разработках
фирмы
Ксерокс и
реализует те
же принципы,
что и
программа маршрутизации
routed,
используемая
в Unix.
Маршрут
здесь
характеризуется
вектором расстояния
до места
назначения.
Предполагается,
что каждый
маршрутизатор
является
отправной
точкой
нескольких
маршрутов до
сетей, с
которыми он
связан.
Описания
этих маршрутов
хранится в
специальной маршрутной
таблице.
Таблица
маршрутизации
RIP
содержит
записи на
каждый
маршрут и
должна
включать в
себя:
§
IP–адрес
места
назначения.
§
Метрика
маршрута (от 1
до 15; число
шагов до
места
назначения).
§
IP–адрес
ближайшего
маршрутизатора
(gateway) по
пути к месту
назначения.
§
Таймеры
маршрута.
Протокол
базируется
на векторе
расстояния
(место
назначение–направление;
метрика–модуль
вектора).
Периодически
(раз в 30 сек)
каждый
маршрутизатор
посылает
широковещательно
копию своей маршрутной
таблицы всем
соседям–маршрутизаторам
(регулярные
коррекции), с
которыми
связан
непосредственно.
Маршрутизатор–получатель
просматривает
таблицу. Если
в таблице присутствует
новый путь
или
сообщение о
более коротком
маршруте, или
произошли
изменения
длин пути,
эти
изменения
фиксируются
получателем
в своей
маршрутной
таблице. Протокол
RIP
должен быть
способен
обрабатывать
три типа
ошибок:
1. Циклические
маршруты. Так
как в
протоколе
нет
механизмов
выявления
замкнутых
маршрутов,
необходимо
либо слепо верить
партнерам,
либо
принимать
меры для блокировки
такой
возможности.
2. Для
подавления
нестабильностей
RIP
должен
использовать
малое
значение
максимально
возможного
числа шагов
(<16).
3.
Медленное
распространение
маршрутной информации
по сети
создает проблемы
при
динамичном
изменении
маршрутной
ситуации
(система не
поспевает за
изменениями).
Малое
предельное
значение
метрики
улучшает
сходимость,
но не
устраняет
проблему.
Несоответствие
маршрутной
таблицы
реальной ситуации
типично не
только для RIP, но
характерно
для всех
протоколов,
базирующихся
на векторе
расстояния,
где информационные
сообщения
актуализации
несут в себе
только пары
кодов: адрес
места
назначение и
расстояние
до него.
Проблема
может быть
решена
следующим
образом.
Маршрутизатор
запоминает,
через какой
интерфейс
получена
маршрутная
информация, и
через этот
интерфейс
эту
информацию
уже не
передает.
Существуют
и другие пути
преодоления
медленных
переходных
процессов.
Если
производится
оповещение о
коротком
пути, все
узлыполучатели
воспринимают
эти данные
немедленно.
Если же
маршрутизатор
закрывает
какой–то
путь, его
отмена фиксируется
остальными
лишь по таймауту.
Универсальным
методом
исключения ошибок
при маршрутизации
является
использование
достаточно
большой
выдержки,
перед тем как
использовать
информацию
об изменении
маршрутов. В этом
случае к
моменту
изменения
маршрута эта
информация
станет
доступной
всем участникам
процесса
маршрутизации.
Но многие из
этих методов
могут при
определенных
условиях
вызвать лавину
широковещательных
сообщений,
что также
дезорганизует
сеть. Именно
малая
скорость
установления
маршрутов в RIP и др.
является
причиной их
постепенного
вытеснения новыми
протоколами.
В RIP
сообщения инкапсулируются
в udp–дейтограммы,
при этом передача
осуществляется
через порт 520. В
качестве
метрики RIP
использует
число шагов
до цели. Если
между отправителем
и приемником
расположено
три маршрутизатора
(gateway),
считается,
что между
ними 4 шага.
Такой вид
метрики не
учитывает
различий в
пропускной
способности
или
загруженности
отдельных
сегментов
сети.
Применение
вектора
расстояния
не может
гарантировать
оптимальность
выбора
маршрута.
Маршрут
по умолчанию
имеет адрес
0.0.0.0. Каждому
маршруту
ставится в
соответствие
таймер тайм–аута
и «сборщика
мусора». Тайм–аут–таймер
сбрасывается
каждый раз,
когда
маршрут
инициализируется
или корректируется.
Если со
времени
последней
коррекции
прошло 3
минуты или
получено
сообщение о
том, что
вектор расстояния
равен 16,
маршрут
считается
закрытым. Но
запись о нем
не стирается,
пока не
истечет
время «уборки
мусора» (2мин).
При
появлении
эквивалентного
маршрута
переключения
на него не
происходит, т.о.
блокируется
возможность
осцилляции
между двумя
или более
равноценными
маршрутами.
Формат
сообщения
протокола RIP
имеет вид,
показанный
на рис. 3. Поле команда
определяет
выбор
согласно
следующей
таблице:
Таблица
1. Значения
кодов поля команда
|
Команда |
Значение |
|
1 |
Запрос
на
получение
частичной
или полной маршрутной
информации; |
|
2 |
Отклик,
содержащий
информацию
о расстояниях
из маршрутной
таблицы
отправителя; |
|
3 |
Включение
режима
трассировки
(устарело); |
|
4 |
Выключение
режима
трассировки
(устарело); |
|
5–6 |
Зарезервированы
для
внутренних
целей sun microsystem. |
Поле версия
для RIP равно 1.
Поле набор
протоколов
сети i
определяет
набор
протоколов,
которые используются
в
соответствующей
сети (для Интернет
это поле
имеет
значение 2).
Поле расстояние
до сети i содержит
целое число
шагов (от 1 до 15)
до данной сети.
В одном
сообщении может
присутствовать
информация о
25 маршрутах.
При
реализации RIP
можно
выделить
следующие
режимы:
Инициализация,
определение
всех «живых»
интерфейсов
путем
посылки
запросов,
получение
таблиц
маршрутизации
от других маршрутизаторов.
Часто
используются
широковещательные
запросы.
Получен
запрос. В
зависимости
от типа
запроса
высылается адресату
полная
таблица
маршрутизации,
или
проводится
индивидуальная
обработка.
Получен
отклик.
Проводится
коррекция
таблицы
маршрутизации
(удаление,
исправление,
добавление).
|
0 |
8 |
16
31 |
|
Команда
(1–6) |
Версия
(1) |
Должно
быть равно
нулю |
|
Набор
протоколов
сети (2) |
Должно
быть равно
нулю |
|
|
IP–адрес
сети 1 |
||
|
Должно
быть равно
нулю |
||
|
Должно
быть равно
нулю |
||
|
Расстояние
до сети 1
(метрика) |
||
|
Набор
протоколов
сети (2) |
Должно
быть равно
нулю |
|
|
IP–адрес
сети 2 |
||
|
Должно
быть равно
нулю |
||
|
Должно
быть равно
нулю |
||
|
Расстояние
до сети 2
(метрика) |
||
|
....................................................... |
||
Рис.
3. Формат
сообщения RIP.
a. RIP не
работает с
адресами
субсетей.
Если
нормальный
16–бит
идентификатор
ЭВМ класса B не
равен 0, RIP не
может
определить
является ли
не нулевая
часть cубсетевым
ID,
или полным IP–адресом.
b. RIP
требует
много
времени для
восстановления
связи после
сбоя в маршрутизаторе
(минуты). В
процессе
установления
режима
возможны
циклы.
c.
Число
шагов важный,
но не
единственный
параметр
маршрута, да
и 15 шагов не
предел для современных
сетей.
2.
Протокол
OSPF
(алгоритм
Дикстры)
Протокол
OSPF (алгоритмы
предложены
Дикстрой)
является альтернативой
RIP в
качестве внутреннего
протокола
маршрутизации.
OSPF
представляет
собой
протокол
состояния
маршрута (в
качестве
метрики
используется
–
коэффициент
качества
обслуживания).
Каждый
маршрутизатор
обладает
полной
информацией
о состоянии всех
интерфейсов
всех
маршрутизаторов
(переключателей)
автономной
системы.
Протокол OSPF
реализован в
демоне
маршрутизации
gated,
который
поддерживает
также RIP и
внешний
протокол
маршрутизации
BGP.
Автономная
система
может быть
разделена на
несколько
областей,
куда могут
входить как
отдельные
ЭВМ, так и
целые сети. В
этом случае
внутренние
маршрутизаторы
области
могут и не
иметь информации
о топологии
остальной
части автономной
системы. Сеть
обычно имеет
выделенный (designated)
маршрутизатор,
который
является
источником
маршрутной
информации
для
остальных маршрутизаторов.
Каждый
маршрутизатор
самостоятельно
решает
задачу
оптимизации
маршрутов.
Если к месту
назначения
ведут два или
более
эквивалентных
маршрута,
информационный
поток будет
поделен
между ними
поровну.
Переходные
процессы в OSPF
завершаются
быстрее, чем
в RIP. В
процессе
выбора
оптимального
маршрута анализируется
ориентированный
граф сети. Алгоритм
Дикстры по
выбору
оптимального
пути: пути с
наименьшим
суммарным значением
метрики
считаются
наилучшими.
2.2.
Качество
сервиса
Качество
сервиса (QoS)
может
характеризоваться
следующими
параметрами:
Определяющими
являются три
характеристики:
задержка,
пропускная
способность
и надежность.
Для
транспортных
целей OSPF
использует IP
непосредственно,
т.е. не
привлекает
протоколы UDP
или TCP. OSPF имеет
свой код (89) в
протокольном
поле IP–заголовка.
Код TOS в IP–пакетах,
содержащих OSPF–сообщения,
равен нулю,
значение TOS
здесь задается
в самих
пакетах OSPF.
Маршрутизация
в этом
протоколе
определяется
IP–адресом
и типом
сервиса. Так
как протокол
не требует инкапсуляции
пакетов,
сильно облегчается
управление
сетями с
большим
количеством
бриджей и
сложной
топологией
(исключается
циркуляция
пакетов,
сокращается
транзитный
трафик). Автономная
система
может быть
поделена на
отдельные
области,
каждая из
которых
становится
объектом
маршрутизации.
Этот прием
позволяет
значительно
сократить
необходимый
объем
маршрутной
базы данных.
В OSPF используется
термин
опорной сети
(backbone)
для
коммуникаций
между
выделенными
областями.
Протокол
работает
лишь в
пределах автономной
системы. В
пределах
выделенной
области
может
работать
свой
протокол маршрутизации.
При
передаче OSPF–пакетов
фрагментация
не
желательна,
но не запрещается.
Для передачи
статусной
информации OSPF
использует
широковещательные
сообщения Hello.
Для
повышения
безопасности
предусмотрена
авторизация
процедур. OSPF–протокол
требует
резервирования
двух мультикастинг–адресов:
|
224.0.0.5 |
предназначен
для
обращения
ко всем
маршрутизаторам,
поддерживающим
этот
протокол. |
|
224.0.0.6 |
служит
для
обращения к
специально
выделенному
маршрутизатору. |
Любое
сообщение OSPF
начинается с
24–октетного
заголовка:
|
0 |
8 |
16
31 |
|
|
Версия |
Тип |
Длина
сообщения |
|
|
IP–адрес
маршрутизатора–отправителя |
|||
|
Идентификатор
области |
|||
|
Контрольная
сумма |
Тип
идентификации |
||
|
Идентификация
(октеты 0–3) |
|||
|
Идентификация
(октеты 4–7) |
|||
Формат
заголовка
сообщений
для протокола
маршрутизации
OSPF
Поле версия
определяет
версию
протокола (= 2).
Поле тип
идентифицирует
функцию
сообщения.
Таблица
3. Коды
поля тип
|
Тип |
Значение |
|
1 |
Hello
(используется
для
проверки
доступности
маршрутизатора). |
|
2 |
Описание базы данных (топология). |
|
3 |
Запрос состояния канала. |
|
4 |
Изменение состояния канала. |
|
5 |
Подтверждение
получения
сообщения о
статусе
канала. |
Поле длина
пакета
определяет
длину блока в
октетах,
включая заголовок.
Идентификатор
области – 32–битный
код,
идентифицирующий
область, которой
данный пакет
принадлежит.
Все OSPF – пакеты
ассоциируются
с той или
иной областью.
Большинство
из них не
преодолевает
более одного
шага. Пакеты,
путешествующие
по
виртуальным
каналам,
помечаются
идентификатором
опорной области
(backbone) 0.0.0.0.
Поле контрольная
сумма
содержит контрольную
сумму IP–пакета,
включая поле типа
идентификации.
Контрольное
суммирование
производится
по модулю 1.
Поле тип
идентификации
может
принимать
значения 0
при
отсутствии контроля
доступа, и 1
при наличии
контроля. В
дальнейшем
функции поля
будут расширены.
Важную
функцию в OSPF–сообщениях
выполняет
одно– октетное
поле опции,
оно
присутствует
в сообщениях
типа Hello,
объявление
состояния
канала и
описание базы
данных.
Особую роль в
этом поле
играют младшие
биты E и Т:
|
|
|
|
|
|
|
E |
T |
Бит E
характеризует
возможность
внешней
маршрутизации
и имеет значение
только в
сообщениях
типа Hello, в
остальных
сообщениях
этот бит
должен быть
обнулен. Если
E=0,
то данный
маршрутизатор
не будет
посылать или
принимать
маршрутную
информацию
от внешних автономных
систем. Бит T
определяет
сервисные
возможности
маршрутизатора
(TOS).
Если T=0, это
означает, что
маршрутизатор
поддерживает
только один
вид услуг (TOS=0) и
он не пригоден
для
маршрутизации
с учетом вида
услуг. Такие
маршрутизаторы,
как правило,
не
используются
для
транзитного
трафика.
Протокол
OSPF
использует
сообщение
типа Hello для обмена
данными
между
соседними
маршрутизаторами.
Структура
пакетов
этого типа:
|
0 |
8 |
16
31 |
|
Заголовок
OSPF типа
1 24 октета |
||
|
Сетевая
маска |
||
|
Время
между Hello |
Опции |
Приоритет |
|
Время
отключения
маршрутизатора |
||
|
IP–адрес
маршрутизатора |
||
|
IP–адрес
соседа 1 |
||
|
IP–адрес
соседа 2 |
||
|
………………………….. |
||
|
IP–адрес
соседа N |
||
Формат
сообщения Hello в
протоколе OSPF
Поле сетевая
маска
соответствует
маске
субсети
данного интерфейса.
Например,
если интерфейс
принадлежит
сети класса B и
третий байт
служит для
выделения
нужной субсети,
то сетевая
маска будет
иметь вид 0xFFFFFF00.
Поле время
между Hello
содержит
значение
времени в
секундах, между
сообщениями Hello.
Поле опции
характеризует
возможности,
которые
предоставляет
данный
маршрутизатор.
Поле приоритет
характеризует
уровень приоритета
маршрутизатора
(целое
положительное
число),
используется
при выборе
резервного (backup)
маршрутизатора.
Если
приоритет
равен нулю,
данный маршрутизатор
никогда не
будет
использован
в качестве
резервного.
Поле время
отключения
маршрутизатора
определяет
временной
интервал в
секундах, по
истечении
которого «молчащий»
маршрутизатор
считается
вышедшим из
строя. IP–адреса
маршрутизаторов,
записанные в
последующих
полях, указывают
место, куда
следует
послать
данное
сообщение.
Поля IP–адрес
соседа k
образуют
список
адресов
соседних
маршрутизаторов,
откуда за
последнее
время были получены
сообщения Hello.
Маршрутизаторы
обмениваются
сообщениями
из баз данных
OSPF,
чтобы
инициализировать,
а в
дальнейшем
актуализовать
свои базы
данных,
характеризующие
топологию
сети. Обмен
происходит в
режиме
клиент–сервер.
Клиент
подтверждает
получение каждого
сообщения.
Маршрутизатор,
получивший OSPF–пакет,
посылает
подтверждение
его приема. Получение
нескольких
объявлений о
состоянии линий
может быть
подтверждено
одним пакетом.
Адресом
места
назначения
этого пакета
может быть
индивидуальный
маршрутизатор,
группа
маршрутизаторов
или все маршрутизаторы
автономной
системы.
Маршрутная
таблица OSPF содержит
в себе:
·
объявляющий
маршрутизатор
(используется
для
межобластных
обменов и для
связей автономных
систем друг с
другом).
2.3. Преимущества
и недостатки OSPF
Преимущества:
1. Для
каждого
адреса может
быть
несколько маршрутных
таблиц, по
одной на
каждый вид IP–операции
(TOS).
2. Каждому
интерфейсу
присваивается
безразмерная
цена,
учитывающая
пропускную
способность,
время
транспортировки
сообщения.
Для каждой IP–операции
может быть
присвоена
своя цена (коэффициент
качества).
3. При
существовании
эквивалентных
маршрутов OSFP
распределяет
поток
равномерно
по этим маршрутам.
4. Поддерживается
адресация
субсетей
(разные маски
для разных
маршрутов).
5. При
связи точка–точка
не требуется IP–адрес
для каждого
из концов. (Экономия
адресов)
6. Применение
мультикастинга
вместо широковещательных
сообщений
снижает
загрузку не
вовлеченных
сегментов.
Недостатки:
1. Трудно
получить
информацию о
предпочтительности
каналов для
узлов,
поддерживающих
другие
протоколы,
или со
статической
маршрутизацией.
2. OSPF
является
лишь
внутренним
протоколом.
Протокол BGP
разработан
компаниями IBM и CISCO.
Главная цель BGP–
сократить
транзитный
трафик.
Местный трафик
либо
начинается,
либо
завершается
в автономной
системе (AS); в
противном
случае–это
транзитный трафик.
Системы без
транзитного
трафика не нуждаются
в BGP. Но
не всякая
ЭВМ,
использующая
протокол BGP,
является
маршрутизатором,
даже если она
обменивается
маршрутной
информацией
с пограничным
маршрутизатором
соседней
автономной
системы. AS
передает информацию
только о
маршрутах,
которыми она
сама
пользуется. BGP–маршрутизаторы
обмениваются
сообщениями
об изменении
маршрутов: UPDATE–сообщения
(имеют поля:
маркер,длина,
тип…).
Максимальная
длина таких
сообщений составляет
4096 октетов, а
минимальная
19 октетов.
Каждое
сообщение
имеет заголовок
фиксированного
размера. Объем
информационных
полей
зависит от типа
сообщения.
Поле маркер
содержит 16
октетов и его
содержимое
может легко
интерпретироваться
получателем.
Если тип
сообщения «OPEN»,
или если код
идентификации
в сообщении open
равен нулю,
то поле маркер
должно быть
заполнено
единицами.
Маркер может
использоваться
для
обнаружения
потери синхронизации
в работе BGP–партнеров.
Поле длина
имеет два
октета и
определяет общую
длину
сообщения в
октетах,
включая заголовок.
Значение
этого поля
должно
лежать в
пределах 19–4096.
Поле тип
представляет
собой код
разновидности
сообщения и
может
принимать
следующие
значения:
|
1 |
OPEN |
(открыть) |
|
2 |
UPDATE |
(изменить) |
|
3 |
NOTIFICATION |
(внимание) |
|
4 |
KEEPALIVE |
(еще жив) |
После того
как связь на
транспортном
протокольном
уровне
установлена,
первое
сообщение,
которое
должно быть
послано–это OPEN.
При успешном
прохождении
этого
сообщения
партнер
должен
откликнуться
сообщением KEEPALIVE («Еще
жив»). После
этого
возможны
любые
сообщения.
Кроме заголовка
сообщение open
содержит
следующие
поля (рис.19):
|
0 |
8 |
16
31 |
|
|
Версия |
|||
|
Моя
автономная
система |
Время
сохранения |
||
|
BGP–идентификатор |
|||
|
Код |
|
||
|
Идентификационные
данные |
|||
Рис.
19 Формат
сообщения open
Поле
версия
описывает код
версии
используемого
протокола, на
сегодня для BGP он
равен 4. Двух–октетное
поле моя
автономная
система
определяет
код AS
отправителя.
Поле время
сохранения
характеризует
время в
секундах, которое
отправитель
предлагает
занести в таймер
сохранения.
После
получения
сообщения OPEN BGP–маршрутизатор
должен
выбрать
значение времени
сохранения.
Обычно
выбирается
меньшее из полученного
в сообщении open и
значения,
определенного
при
конфигурации
системы (0–3сек).
Время
сохранения
определяет
максимальное
время в
секундах
между
сообщениями KEEPALIVE и UPDATE
или между
двумя UPDATE–сообщениями.
Каждому узлу
в рамках BGP
приписывается
4–октетный идентификатор
(BGP–identifier,
задается при
инсталляции
и идентичен
для всех
интерфейсов
локальной
сети). Если
два узла установили
два канала
связи друг с
другом, то согласно
правилам
должен будет
сохранен канал,
начинающийся
в узле, BGP–идентификатор
которого
больше.
Предусмотрен
механизм
разрешения
проблемы при
равных
идентификаторах.
Одно–октетный
код
идентификации
позволяет
организовать
систему доступа,
если он равен
нулю, маркер
всех сообщений
заполняется
единицами, а
поле
идентификационных
данных
должно иметь
нулевую
длину. При
неравном
нулю коде идентификации
должна быть
определена
процедура
доступа и алгоритм
вычисления
кодов поля
маркера.
Длина поля
идентификационных
данных
определяется
по формуле:
Длина
сообщения = 29 +
длина поля
идентификационных
данных.
Минимальная
длина
сообщения open
составляет 29
октетов,
включая
заголовок.
Сообщения
типа UPDATE
(изменения)
используются
для передачи
маршрутной
информации
между BGP–партнерами.
Этот тип
сообщения
позволяет сообщить
об одном
новом
маршруте или
объявить о
закрытии
группы маршрутов,
причем
объявление
об открытии
нового и
закрытии
старых
маршрутов возможно
в пределах одного
сообщения.
Сообщение UPDATE
всегда
содержит
стандартный
заголовок и может
содержать
другие поля в
соответствии
со схемой:
|
0 |
15
|
|
Длина
списка
отмененных
маршрутов |
2 октета |
|
Отменённые
маршруты |
Длина
переменная |
|
Атрибуты
пути |
Длина
переменная |
|
Плоная
длина
списка
атрибутов
пути |
2 октета |
|
Информация
о
доступности
сетевого
уровня |
Длина
переменная |
Рис. 20
Формат update–сообщения
Если
длина списка
отмененных
маршрутов равна
нулю, ни один
маршрут не
отменен, а
поле
отмененные
маршруты в
сообщении
отсутствует.
Поле отмененные
маршруты
имеет
переменную
длину и содержит
список IP–адресных
префиксов
маршрутов,
которые стали
недоступны. Каждая
такая запись
имеет формат:
Длина
пути (1 октет), Префикс
(длина
переменная)
Длина префикса
(в битах),
равная нулю
означает, что
префикс соответствует
всем 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 поля
флагов. Пути
с
нераспознанными
переходными
опционными
атрибутами
должны
восприниматься,
как рабочие.
Один и тот же
атрибут
может появляться
в списке
атрибутов
пути только
один раз.
Предусмотрены
следующие
разновидности
кодов типа
атрибута:
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 –
полная длина
атрибутов
пути – длина
списка
отмененных
маршрутов. Информация
о
достижимости
кодируется в
следующей
форме:
|
0
7 |
|
Длина (1
октет) |
|
Префикс
(длина
переменная) |
Поле длина
определяет
длину IP–адресного
префикса в битах.
Если длина
равна нулю,
префикс
соответствует
всем IP–адресам.
Префикс
содержит IP–адресные
префиксы и
двоичные
разряды, дополняющие
код до целого
числа октетов.
Информация
о
работоспособности
соседних
маршрутизаторов
получается
из KEEPALIVE–сообщений,
которые
должны
посылаться
настолько часто,
чтобы
уложиться во
время,
отведенное таймером
сохранения (hold).
Обычно это
время не
должно
превышать
одной трети
от времени
сохранения,
но не должно быть
и меньше 1
секунды. Если
выбранное
значение
времени сохранения
равно нулю,
периодическая
посылка KEEPALIVE–сообщений
не
обязательна.
NOTIFICATION–сообщения
посылаются,
когда
обнаружена ошибка.
BGP–связь
при этом
немедленно
прерывается. Помимо
заголовка NOTIFICATION–сообщение
имеет
следующие
поля: Код
ошибки, Субкод
ошибки.
Код
ошибки
представляет
собой одно–октетное
поле и
указывает на
тип данного сообщения.
Возможны
следующие
коды ошибки:
Таблица
8.
Коды ошибок
|
Код
ошибки |
Описание |
|
1 |
Ошибка
в заголовке
сообщения. |
|
2 |
Ошибка
в сообщении open |
|
3 |
Ошибка
в сообщении
update |
|
4 |
Истекло
время
сохранения |
|
5 |
Ошибка
машины
конечных
состояний |
|
6 |
Прерывание |
При
отсутствии
фатальной
ошибки BGP–партнер
может в любой
момент
прервать связь,
послав NOTIFICATION–сообщение
с кодом
ошибки прерывание.
Одно–октетное
поле cубкод
ошибки
предоставляет
дополнительную
информацию
об ошибке.
Каждый код
ошибки может
иметь один
или более
субкодов.
Если поле
содержит
нуль, это
означает, что
никаких
субкодов не
определено.
Таблица
9
Субкоды
ошибок
|
Ошибка |
Субкод |
Описание |
|
Заголовок |
1 |
Соединение
не
синхронизовано |
|
Сообщения OPEN |
1 |
Неверный
код версии |
|
Сообщения UPDATE |
1 |
Ошибка
в списке
атрибутов |
3.2.
Маршрутная
база данных BGP
Вся
маршрутная
информация
хранится в
специальной
базе данных 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сек).
3.3.
Отличительные
особенности BGP
BGP отличается
от RIP и OSPF
тем, что
использует TCP в
качестве
транспортного
протокола.
Две системы,
использующие
BGP, связываются
друг с другом
и пересылают
посредством TCP
полные
таблицы
маршрутизации.
В дальнейшем
обмен идет
только в
случае каких–то
изменений.
ЭВМ,
использующая
BGP, не
обязательно
является
маршрутизатором.
Сообщения
обрабатываются
только после того,
как они
полностью
получены.
BGP является
протоколом,
ориентирующимся
на вектор
расстояния.
Вектор
описывается
списком AS по 16 бит
на AS. BGP
регулярно
(каждые 30сек)
посылает
соседям TCP–сообщения,
подтверждающие,
что узел жив
(это не тоже
самое что «Keepalive»
функция в TCP).
Если два BGP–маршрутизатора
попытаются
установить
связь друг с
другом одновременно,
такие две
связи могут
быть установлены.
Такая
ситуация
называется
столкновением,
одна из
связей
должна быть
ликвидирована.
При
установлении
связи маршрутизаторов
сначала
делается
попытка
реализовать
высший из
протоколов
(например, BGP–4),
если один из
них не
поддерживает
эту версию,
номер версии
понижается.
1.
Телекоммуникационные
технологии. Cеменов
Ю.А. (ГНЦ ИТЭФ), http://docs.luksian.com/networks/techs/intro/
2.
Интернет
университет
информационных
технологий. http://www.intuit.ru/department/network/cisco/5/