- •Введение
- •Условные обозначения, используемые в пособии
- •Графические символы
- •Соглашения по синтаксису командного языка
- •1 Проектирование масштабируемых сетей передачи данных
- •1.1 Масштабируемые сети передачи данных
- •1.2 Архитектура корпоративной сети передачи данных
- •1.3 Введение в технологию подсетей и ее обоснование
- •1.4 Применение технологии VLSM
- •1.5 Суммирование маршрутов
- •1.6 Проектирование масштабируемого адресного пространства
- •2 Принципы маршрутизации
- •2.1 Определение маршрутизации
- •2.1.1 Маршрутизируемые и маршрутизирующие протоколы
- •2.1.2 Основные функции маршрутизаторов
- •2.2 Концептуальные основы маршрутизации
- •2.2.1 Таблицы маршрутизации
- •2.2.2 Административное расстояние
- •2.2.3 Метрики маршрутов
- •2.2.4 Построение таблицы маршрутизации
- •2.3 Механизмы маршрутизации
- •2.3.1 Прямое соединение
- •2.3.2 Статическая маршрутизация
- •2.3.3 Настройка статических маршрутов
- •2.3.4 Использование «плавающих» статических маршрутов
- •2.3.5 Маршрутизация по умолчанию
- •2.4 Проверка и устранение ошибок в статических маршрутах
- •3 Принципы динамической маршрутизации
- •3.1 Операции динамической маршрутизации
- •3.1.1 Стоимость маршрута
- •3.2 Внутренние и внешние протоколы маршрутизации
- •3.2.1 Понятие автономной системы и домена маршрутизации
- •3.2.2 IGP – протоколы внутреннего шлюза
- •3.2.3 EGP – протоколы внешнего шлюза
- •3.3 Обзор классовых протоколов маршрутизации
- •3.3.1 Суммирование маршрутов при классовой маршрутизации
- •3.3.2 Суммирование маршрутов в разобщенных классовых сетях
- •3.4 Обзор бесклассовых протоколов маршрутизации
- •3.4.1 Суммирование маршрутов при бесклассовой маршрутизации
- •3.4.2 Суммирование маршрутов в разобщенных классовых сетях
- •3.5 Категории алгоритмов маршрутизации
- •3.5.1 Особенности дистанционно-векторных протоколов
- •3.5.2 Маршрутизация по состоянию канала
- •3.5.3 Гибридные протоколы маршрутизации
- •3.6 Конфигурирование протокола маршрутизации
- •4 Дистанционно-векторная маршрутизация
- •4.1 Дистанционно-векторный алгоритм
- •4.1.1 Дистанционно-векторный алгоритм для протокола IP
- •4.2 Маршрутизация по замкнутому кругу
- •4.3 Максимальное количество транзитных переходов
- •4.4 Применения принципа расщепления горизонта
- •4.5 Обратное обновление
- •4.6 Таймеры удержания информации
- •4.7 Механизм мгновенных обновлений
- •5 Протокол RIP
- •5.1 Настройка протокола RIP
- •5.2 Протокол RIP v1
- •5.2.1 Заголовок и поля протокола RIP v1
- •5.2.2 Команда – 1 байт
- •5.2.3 Версия – 1 байт
- •5.2.4 Неиспользуемые поля – 2 байта
- •5.2.5 Идентификатор семейства адресов – 2 байта
- •5.2.6 IP адрес – 4 байта
- •5.2.6 Метрика – 4 байта
- •5.3 Использование команды ip classless
- •5.4 Недостатки протокола RIP v1
- •5.5 Протокол RIP v2
- •5.5.1 Заголовок и поля протокола RIP v2
- •5.5.2 Тег маршрута – 2 байта
- •5.5.3 Маска подсети – 4 байта
- •5.5.4 Следующая пересылка – 4 байта
- •5.6 Аутентификация в протоколе RIP v2
- •5.6.1 Настройка аутентификации для протокола RIP
- •5.7 Суммирование маршрутов в протоколе RIP
- •5.7.1 Распространение маршрута по умолчанию
- •5.8 Расширенная настройка протокола RIP
- •5.8.1 Таймеры протокола RIP
- •5.8.2 Совместное использование в сети протокола RIP v1 и v2
- •5.8.3 Распределение нагрузки в протоколе RIP
- •5.8.4 Настройка протокола RIP для работы в сетях NBMA
- •5.8.5 Механизм инициированных обновлений в протоколе RIP
- •5.9 Тестирование и устранение ошибок в работе протокола RIP
- •6 Протокол EIGRP
- •6.1 Алгоритм диффузионного обновления
- •6.2 Преимущества протокола EIGRP
- •6.3 Автономная система протокола EIGRP
- •6.4 База данных протокола EIGRP
- •6.4.1 Таблица соседства
- •6.4.2 Таблица топологии
- •6.5 Метрика протокола EIGRP
- •6.6 Функционирование протокола EIGRP
- •6.6.1 Надежность передачи пакетов протокола EIGRP
- •6.6.2 Разрыв соседских отношений
- •6.6.3 Запланированное отключение
- •6.6.5 Меры обеспечения стабильности протокола EIGRP
- •6.7 Алгоритм DUAL
- •6.7.1 Работа алгоритма DUAL
- •6.8 Механизм ответов на запросы
- •7 Конфигурирование и тестирование протокола EIGRP
- •7.1 Запуск протокола EIGRP
- •7.2 Настройка аутентификации в протоколе EIGRP
- •7.3 Суммирование маршрутов в протоколе EIGRP
- •7.4 Настройка маршрута по умолчанию в протоколе EIGRP
- •7.5 Распределение нагрузки в протоколе EIGRP
- •7.6 Расширенная настройка протокола EIGRP
- •7.6.1 Таймеры протокола EIGRP
- •7.6.2 Изменение административного расстояния протокола EIGRP
- •7.6.3 Изменение весовых коэффициентов протокола EIGRP
- •7.6.4 Настройка протокола EIGRP для сетей NBMA
- •7.6.5 Использование EIGRP пропускной способности каналов связи
- •7.6.6 Идентификация маршрутизаторов в протоколе EIGRP
- •7.7 Тестирование и устранение ошибок в работе протокола EIGRP
- •8 Использование протокола EIGRP в масштабируемых сетях
- •8.1 Масштабируемость. Проблемы и решения
- •8.2 Использование суммарных маршрутов
- •8.3 Использование тупиковых маршрутизаторов
- •8.4 Использование протокола EIGRP в современных условиях
- •9 Протоколы маршрутизации по состоянию канала
- •9.1 Алгоритм «кратчайшего пути» Дейкстры
- •10 Протокол OSPF
- •10.1 Характеристики протокола OSPF
- •10.1.1 Групповая рассылка обновлений состояния каналов
- •10.1.2 Аутентификация
- •10.1.3 Быстрота распространения изменения в топологии
- •10.1.4 Иерархическое разделение сети передачи данных
- •10.2 База данных протокола OSPF
- •10.2.1 Таблица соседства
- •10.2.2 Таблица топологии
- •10.3 Метрика протокола OSPF
- •10.4 Служебные пакеты протокола OSPF
- •10.4.1 Пакет приветствия
- •10.4.2 Суммарная информация о таблице топологии
- •10.4.3 Запрос на получение информации о топологическом элементе
- •10.4.4 Обновление информации о топологических элементах
- •10.4.5 Подтверждение о получении
- •10.5 Процесс установки соседских отношений
- •10.5.1 Поиск соседей
- •10.5.2 Обмен топологической информацией
- •11 Настройка протокола OSPF в одной зоне
- •11.1 Запуск протокола OSPF
- •11.2 Управление значением идентификатора маршрутизатора OSPF
- •11.3 Настройка аутентификации в протоколе OSPF
- •11.3.1 Проверка функционирования аутентификации
- •11.4 Настройка маршрута по умолчанию в протоколе OSPF
- •11.5 Распределение нагрузки в протоколе OSPF
- •11.6 Расширенная настройка протокола OSPF
- •11.6.1 Таймеры протокола OSPF
- •11.6.2 Изменение административного расстояния протокола OSPF
- •11.7 Тестирование и устранение ошибок в работе протокола OSPF
- •12 Работа протокола OSPF в сетях различных типов
- •12.1 Работа протокола OSPF в сетях «Точка-Точка»
- •12.2 Работа протокола OSPF в широковещательных сетях
- •12.2.1 Правила выбора DR и BDR маршрутизаторов
- •12.3 Работа протокола OSPF в сетях NBMA
- •12.4 Режимы работы протокола OSPF в сетях NBMA
- •12.5 Режимы работы протокола OSPF в сетях Frame Relay
- •12.5.1 Нешироковешательный режим
- •12.5.2 Многоточечный режим
- •12.5.3 Использование подинтерфейсов
- •12.6 Проверка работы протокола OSPF в сетях различных типов
- •13 Работа протокола OSPF в нескольких зонах
- •13.1 Типы маршрутизаторов OSPF
- •13.1.1 Внутренние маршрутизаторы
- •13.1.2 Магистральные маршрутизаторы
- •13.1.3 Пограничные маршрутизаторы
- •13.1.4 Пограничные маршрутизаторы автономной системы
- •13.2 Типы объявлений о состоянии каналов
- •13.2.1 Структура заголовка сообщения LSA
- •13.2.2 Объявление состояния маршрутизатора (Тип 1)
- •13.2.3 Объявление состояния сети (Тип 2)
- •13.2.4 Суммарные объявления о состоянии каналов (Тип 3 и 4)
- •13.2.5 Объявления внешних связей (Тип 5 и 7)
- •13.3 Построение таблицы маршрутизации протоколом OSPF
- •13.3.1 Типы маршрутов протокола OSPF
- •13.3.2 Расчет метрики внешних маршрутов
- •13.4 Суммирование маршрутов протоколом OSPF
- •13.4.1 Суммирование межзональных маршрутов
- •13.4.2 Суммирование внешних маршрутов
- •13.4.3 Отображение внешних суммарных маршрутов
- •14 Специальные типы зон протокола OSPF
- •14.1 Типы зон протокола OSPF
- •14.1.1 Правила тупиковых зон
- •14.2 Тупиковые зоны протокола OSPF
- •14.2.1 Настройка тупиковой зоны
- •14.3 Полностью тупиковые зоны протокола OSPF
- •14.3.1 Настройка полностью тупиковой зоны
- •14.4 Таблицы маршрутизации в тупиковых зонах
- •14.5 Не совсем тупиковые зоны протокола OSPF
- •14.5.1 Настройка не совсем тупиковой зоны
- •14.5.2 Настройка полностью тупиковой зоны NSSA
- •14.6 Проверка функционирования специальных зон протокола OSPF
- •15 Виртуальные каналы в протоколе OSPF
- •15.1 Настройка виртуальных каналов
- •15.1.2 Примеры использования виртуальных каналов
- •15.2 Проверка функционирования виртуальных каналов
- •16 Перераспределение маршрутной информации
- •16.1 Понятие перераспределения маршрутной информации
- •16.2 Понятие метрического домена
- •16.3 Маршрутные петли
- •16.3.1 Односторонние перераспределение маршрутной информации
- •16.3.2 Двухсторонние перераспределение маршрутной информации
- •16.3.3 Протоколы маршрутизации подверженные образованию маршрутных петель
- •17 Совместная работа нескольких протоколов маршрутизации
- •17.2 Настройка базового перераспределения маршрутной информации
- •17.2.1 Метрика, присваиваемая перераспределяемым маршрутам
- •17.3 Настройка перераспределения маршрутной информации из присоединенных и статических маршрутов
- •17.4 Настройка перераспределения маршрутной информации в протокол RIP
- •17.5 Настройка перераспределения маршрутной информации в протокол EIGRP
- •17.6 Настройка перераспределения маршрутной информации в протокол OSPF
- •18 Управление трафиком маршрутных обновлений
- •18.1 Использование пассивных интерфейсов
- •18.1.1 Настройка пассивных интерфейсов
- •18.2 Фильтрация маршрутной информации, передаваемой между маршрутизаторами
- •18.2.1 Фильтрация сетей получателей по IP адресу сети
- •18.2.2 Фильтрация сетей получателей по длине префикса
- •18.2.3 Использование списков доступа и списков префиксов при фильтрации маршрутной информации
- •18.3 Фильтрация маршрутной информации в процессе перераспределения маршрутной информации
- •19 Маршрутные карты
- •19.1 Понятие маршрутных карт
- •19.2 Настройка маршрутной карты
- •19.3 Использование маршрутных карт при перераспределении маршрутной информации
- •19.4 Проверка конфигурации маршрутных карт
- •20 Маршрутизация по политикам
- •20.1 Понятие маршрутных политик
- •20.2 Настройка маршрутизации по политикам
- •20.3 Пример маршрутизации по политикам
- •20.4 Проверка маршрутизации по политикам
- •21 Обзор протокола BGP
- •21.1 Автономные системы
- •21.2 Использование протокола BGP
- •21.2.1 Когда используется протокол BGP
- •21.2.2 Когда не следует использовать протокол BGP
- •22 Терминология и концепции протокола BGP
- •22.1 Характеристики протокола BGP
- •22.2 Таблицы протокола BGP
- •22.3 Одноранговые устройства или соседи BGP
- •22.4 Маршрутизация по политикам
- •22.5 Атрибуты протокола BGP
- •22.5.1 Содержимое сообщения обновления протокола BGP
- •22.5.2 Стандартные и опциональные атрибуты
- •22.5.3 Атрибут «Путь к AS»
- •22.5.4 Атрибут «Узел следующего перехода»
- •22.5.5 Атрибут «Локальный приоритет»
- •22.5.6 Атрибут MED
- •22.5.7 Атрибут «Отправитель»
- •22.5.7 Атрибут «Сообщество»
- •22.5.8 Атрибут «Вес»
- •23 Работа протокола BGP
- •23.1 Типы сообщений протокола BGP
- •23.1.1 Состояния BGP соседей
- •23.2 Процесс принятия решения при выборе пути
- •23.2.1 Выбор нескольких путей
- •23.3 CIDR маршрутизация и суммирование маршрутов
- •24 Настройка протокола BGP
- •24.1 Одноранговые группы
- •24.2 Основные команды протокола BGP
- •24.2.1 Модификация атрибута NEXT-HOP
- •24.2.2 Описание объединенного адреса в BGP таблице
- •24.2.3 Перезапуск протокола BGP
- •24.3 Проверка работоспособности протокола BGP
- •25 Множественная адресация
- •25.1 Типы множественной адресации
- •Заключение
- •Словарь терминов
- •Список использованных источников
4 Дистанционно-векторная маршрутизация
4.1 Дистанционно-векторный алгоритм
Как говорилось ранее, все дистанционно-векторные протоколы маршрутизации основываются на дистанционно-векторном алгоритме, который был впервые описан Фордом и Фулкерсоном в работе «Потоки в Сетях». Их работа опиралась в свою очередь на уравнение Беллмана из его книги «Динамическое программирование».
Изучение классического дистанционно-векторного алгоритма проводиться в курсе дискретной математики. Мы же рассмотрим версию, которая используется в протоколах динамической маршрутизации.
Задача, которую решает дистанционно-векторный алгоритм, – это задача нахождения кратчайших путей между вершинами графа. Граф – это математическая абстракция, в которой вершины соединены между собой ребрами. Каждое ребро имеет некоторую стоимость его использования. Путь между двумя вершинами является набором промежуточных ребер и вершин, соединяющих две исходные вершины. Стоимость пути определяется как сумма стоимостей ребер, составляющих его. Кратчайшим путем между двумя вершинами при этом считается путь с наименьшей стоимостью.
Дистанционно-векторный алгоритм можно определить в виде следующего набора правил:
–В начале работы алгоритма каждая вершина знает лишь пути к смежным вершинам, т. е. вершинам, с которыми она соединена ребрами.
–В процессе работы алгоритма смежные вершины сообщают друг другу о вершинах, им доступных. Каждое объявление состоит из вершины-адре- сата и стоимости кратчайшего пути, известного информирующей вершине.
–Изначально каждая вершина сообщает только о смежных вершинах со стоимостью кратчайших путей, равной стоимости ребер.
–При получении объявления вершина рассчитывает стоимость пути к объявленной вершине через объявляющую как сумму стоимости ребра, ведущего к объявляющей вершине, и стоимости пути, содержащегося в объявлении. После этого вершина проверяет, знает ли она уже о пути к объявленной вершине-адресату.
–Если не знает или если стоимость известного пути больше вычисленной стоимости нового пути, вершина запоминает новый путь к вершине-адре- сату.
–Если новый путь заменяет существующий, последний отбрасывается.
–Если стоимость существующего пути меньше или равна стоимости нового пути, последний будет отброшен.
–После запоминания нового пути вершина должна объявить смежным вершинам вершину адресат и стоимость нового пути.
65
Математически доказано, что описанный алгоритм вычисляет кратчайшие пути между всеми парами вершин за конечный промежуток времени (Рисунок 4.1).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
A |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
1 |
|
1 |
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
B |
|
|
|
|
|
C |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
1 |
|
|
|
1 |
|
1 |
1 |
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
D |
|
|
|
E |
|
F |
|
|
H |
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Шаг 1 |
|
A |
|
|
|
B |
|
|
|
|
C |
|
|
|
D |
|
|
E |
|
|
F |
|
|
H |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
B |
1 |
B |
|
A |
1 |
A |
|
A |
1 |
A |
|
B |
1 |
B |
|
B |
1 |
B |
|
C |
1 |
C |
|
C |
1 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
1 |
C |
|
D |
1 |
D |
|
F |
|
1 |
F |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E |
1 |
E |
|
H |
|
1 |
H |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Шаг 2 |
|
A |
|
|
|
B |
|
|
|
|
C |
|
|
|
D |
|
|
E |
|
|
F |
|
|
H |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
B |
1 |
B |
|
A |
1 |
A |
|
A |
1 |
A |
|
A |
2 |
B |
|
A |
2 |
B |
|
A |
2 |
C |
|
A |
2 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
1 |
C |
|
C |
2 |
A |
|
B |
2 |
A |
|
B |
1 |
B |
|
B |
1 |
B |
|
C |
1 |
C |
|
C |
1 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D |
2 |
B |
|
D |
1 |
D |
|
F |
1 |
F |
|
E |
2 |
B |
|
D |
2 |
B |
|
H |
2 |
C |
|
F |
2 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E |
2 |
B |
|
E |
1 |
E |
|
H |
|
1 |
H |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
2 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
H |
2 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Шаг 3 |
|
A |
|
|
|
B |
|
|
|
|
C |
|
|
|
D |
|
|
E |
|
|
F |
|
|
H |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
B |
1 |
B |
|
A |
1 |
A |
|
A |
1 |
A |
|
A |
2 |
B |
|
A |
2 |
B |
|
A |
2 |
C |
|
A |
2 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
1 |
C |
|
C |
2 |
A |
|
B |
2 |
A |
|
B |
1 |
B |
|
B |
1 |
B |
|
B |
3 |
C |
|
B |
3 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D |
2 |
B |
|
D |
1 |
D |
|
D |
3 |
A |
|
C |
3 |
B |
|
C |
3 |
B |
|
C |
1 |
C |
|
C |
1 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E |
2 |
B |
|
E |
1 |
E |
|
E |
3 |
A |
|
E |
2 |
B |
|
D |
2 |
B |
|
H |
2 |
C |
|
F |
2 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
2 |
C |
|
F |
3 |
A |
|
F |
|
1 |
F |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
H |
2 |
C |
|
H |
3 |
A |
|
H |
|
1 |
H |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||
Шаг 4 |
|
A |
|
|
|
B |
|
|
|
|
C |
|
|
|
D |
|
|
E |
|
|
F |
|
|
H |
||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|||||||||||||||
|
B |
1 |
B |
|
A |
1 |
A |
|
A |
1 |
A |
|
A |
2 |
B |
|
A |
2 |
B |
|
A |
2 |
C |
|
A |
2 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
C |
1 |
C |
|
C |
2 |
A |
|
B |
2 |
A |
|
B |
1 |
B |
|
B |
1 |
B |
|
B |
3 |
C |
|
B |
3 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
D |
2 |
B |
|
D |
1 |
D |
|
D |
3 |
A |
|
C |
3 |
B |
|
C |
3 |
B |
|
C |
1 |
C |
|
C |
1 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
E |
2 |
B |
|
E |
1 |
E |
|
E |
3 |
A |
|
E |
2 |
B |
|
D |
2 |
B |
|
D |
4 |
C |
|
D |
4 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
F |
2 |
C |
|
F |
3 |
A |
|
F |
1 |
F |
|
F |
4 |
B |
|
F |
4 |
B |
|
E |
4 |
C |
|
E |
4 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
H |
2 |
C |
|
H |
3 |
A |
|
H |
1 |
H |
|
H |
4 |
B |
|
H |
4 |
B |
|
H |
2 |
C |
|
F |
2 |
C |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Рисунок 4.1 – Функционирование дистанционно-векторного алгоритма
Обратите внимание, что ни по завершении работы алгоритма, ни в процессе ее, ни одна вершина не обладает топологическими сведениями ни об одном маршруте. Каждый обнаруженный путь представлен лишь вершинойадресатом, стоимостью пути и следующей вершиной на пути к вершине-адре- сату, и представление пути не содержит промежуточных вершин и ребер. Именно поэтому алгоритм называется дистанционно-векторным; стоимость
66
пути - это дистанция, а вершина-адресат и следующая вершина представляют собой вектор.
Когда алгоритм завершает работу, результаты могут быть использованы для «путешествия» между любыми двумя вершинами графа. Находясь в исходной вершине, «путешественник» должен найти путь к вершине-адресату и переместиться в следующую вершину, указанную в пути. Находясь в следующей вершине, путешественник должен опять найти путь к вершине-адресату и переместиться в следующую вершину, указанную в этом пути. Путешественник должен продолжать эти действия, пока не достигнет искомой вершины.
Описанный процесс, по существу, является маршрутизацией. Пути, имеющиеся у каждой вершины, составляют таблицу маршрутизации этой вершины. Следовательно, задача, которую решает дистанционно-векторный алгоритм, – это заполнение таблицы маршрутизации путями, или маршрутами, именно эта задача и решается протоколами динамической маршрутизации.
4.1.1 Дистанционно-векторный алгоритм для протокола IP
В версии дистанционно-векторного алгоритма для протокола IP или другого маршрутизируемого протокола вершины представляют маршрутизаторы, а ребра – соединения между ними.
Предназначение версии дистанционно-векторного алгоритма для протокола IP несколько отличается от предназначения общей версии. Цель версии для протокола IP находить пути к сетевым префиксам. Следовательно, содержимое объявлений, которыми обмениваются маршрутизаторы, тоже отличается - вместо вершин объявления содержат сетевые префиксы, к которым имеют доступ объявляющие маршрутизаторы.
Говорят, что сетевые префиксы, содержащиеся в маршрутных обновлениях, анонсируются маршрутизатором. Объявляемые сетевые префиксы берутся с собственных интерфейсов маршрутизатора и получаются от других маршрутизаторов в маршрутных обновлениях.
Процесс получения и принятия сетевых префиксов, передаваемых в маршрутных обновлениях других маршрутизаторов, называется обучением. Однако не все сетевые префиксы в маршрутных обновлениях, которые получает маршрутизатор, принимаются.
Интерфейсы, через которые маршрутизатор получает и отправляет маршрутные обновления, должны быть отдельно сконфигурированы администратором для выполнения этой задачи. Маршрутизатор не получает и не отправляет маршрутные обновления через другие интерфейсы. Каждый интерфейс, сконфигурированный для получения и передачи маршрутных обновлений, получает некоторую стоимость в рамках протокола маршрутизации, которая используется в двух целях.
67
Маршрутизатор использует стоимость интерфейса в расчетах своих метрик для сетевых префиксов, содержащихся в маршрутных обновлениях, полученных через этот интерфейс
Маршрутизатор использует ее в качестве метрики при объявлении сетевого префикса, соответствующего интерфейсу.
Маршрутизатор выполняет следующую трехступенчатую процедуру для решения, должен ли он принять сетевой префикс, содержащийся в полученном маршрутном обновлении:
–Маршрутизатор сначала рассчитывает свою метрику для объявленного сетевого префикса, складывая метрику, содержащуюся в маршрутном обновлении, со стоимостью интерфейса, через который было получено обновление. Точная формула для расчета собственной метрики маршрутизатора зависит от протокола маршрутизации, но рассчитанное значение должно быть в любом случае больше метрики, содержащейся в маршрутном обновлении.
–Если маршрутизатор не имеет маршрута для объявленного сетевого префикса, он принимает этот префикс и создает для него новый маршрут. Маршрутизатор использует IP адрес объявляющего маршрутизатора и интерфейс, через который было получено маршрутное обновление, в качестве значений полей следующего маршрутизатора и выходного интерфейса соответственно. Маршрутизатор также сохраняет вычисленную метрику в части маршрута, специфичной для протокола маршрутизации.
–Если маршрутизатор имеет маршрут для объявленного сетевого префикса, и если маршрут был создан тем же дистанционно-векторным протоколом, маршрутизатор сравнивает рассчитанную метрику с метрикой, содержащейся в существующем маршруте. Если рассчитанная метрика меньше существующей, маршрутизатор отбрасывает имеющийся маршрут и создает новый маршрут. Если же новая метрика больше или равна существующей, маршрутизатор просто отбрасывает полученное маршрутное обновление, не изменяя таблицу маршрутизации.
После принятия объявленного сетевого префикса и создания соответствующей записи в таблице маршрутизации маршрутизатор сам начинает объявлять об этом сетевом префиксе с рассчитанной метрикой. Он также объявляет о сетевых префиксах, присвоенных его интерфейсам, которые были сконфигурированы для отправки и получения маршрутных обновлений.
В самом начале процесса, до того, как маршрутизатор получит какиелибо маршрутные обновления, он объявляет только о сетевых префиксах, присвоенных его интерфейсам, которые были сконфигурированы для отправки и получения маршрутных обновлений. По мере обнаружения новых сетевых префиксов, обновления маршрутизации систематически передаются от одного маршрутизатора другому.
68