Протоколы внутренней маршрутизации
Материал продолжает серию статей, посвящённую семинарам внутреннего обучения, которые проводятся в IT-компании NAUKA. Надеемся, что сведения, представленные в ней, будут полезными для школьников старших классов, студентов младших курсов ВУЗов, сотрудников IT-компаний, не связанных в своей работе с IT-инфраструктурой.
В данном разделе будут кратко рассмотрены протоколы внутренней динамической маршрутизации (RIP, EIGPR, OSPF) наиболее часто используемые в настоящее время для сетей IPv4.
RIP
RIP (Routing Information Protocol) является самым старым и самым простым из используемых в настоящее время протоколов внутренней динамической маршрутизации, который основан на разработанном в 1969 году алгоритме Беллмана — Форда определения кратчайшего пути между двумя вершинами графа. Этот протокол относится к протоколам дистанционно-векторной маршрутизации.
Принцип работы RIP: маршрутизаторы, работающие через этот протокол, отправляют таблицы маршрутизации соседним устройствам для их обновления. Поэтапно это выглядит так:
маршрутизатор посылает свои пакеты в нужный интерфейс и, в случае наличия соседнего устройства, оно принимает эти широковещательные пакеты.
«сосед» определяет количество переходов до нужной сети, и отправляет свои маршруты в этот же интерфейс.
следующий «сосед», принимая данный пакет, понимает, какое количество переходов нужно сделать до нужной сети.
Рисунок 1 — Принцип работы протокола RIP
Упрощённый до предела принцип работы RIP представлен на рисунке 1. Пусть маршрутизатору Source (Отравитель) нужно определить путь до маршрутизатора Destination (Получатель). Возможны два пути: «Отправитель — А — В — Получатель» и «Отправитель — С — Получатель». Количество промежуточных маршрутизаторов (переходов) в первом случае равно 2, а во втором — 1. RIP выберет маршрут с минимальным количеством переходов, а именно — второй.
RIP обеспечивает доставку всей таблицы маршрутизации на все активные интерфейсы каждые 30 секунд. В протоколе RIP количество переходов — единственная метрика, определяющая наилучший путь к удаленной сети.
Преимуществами данного протокола являются:
отлично подходит для небольших сетей — его легко понять и настроить;
гарантированно поддерживается почти всеми маршрутизаторами;
не требует обновления каждый раз при изменении топологии сети.
Недостатками данного протокола являются:
из-за обновлений, передаваемых каждые 30 секунд, RIP может создать узкое место в трафике, и, поскольку любое обновление маршрутизации в RIP требует большой пропускной способности, ресурсы для критически важных ИТ-процессов ограничены;
количество переходов ограничено 15-ю, поэтому любой маршрутизатор за пределами этого расстояния считается недоступным;
скорость сходимости низкая, и при обрыве какого-либо соединения выбор альтернативных маршрутов занимает много времени.
RIP не поддерживает несколько путей на одном маршруте, что может создавать больше петель маршрутизации. При использовании показателей фиксированного количества переходов для выбора наилучших маршрутов RIP не работает, когда маршруты сравниваются на основе данных в реальном времени. Это вызывает потерю пакетов и перегрузку сетевых операций из-за повторяющихся процессов.
EIGRP
EIGRP (Enhanced Interior Gateway Routing Protocol) — протокол маршрутизации, разработанный компанией Cisco на основе протокола IGRP той же компании. Релиз протокола состоялся в 1992 году. EIGRP использует механизм DUAL для выбора наиболее короткого маршрута и является более простым в реализации и менее требовательным к вычислительным ресурсам маршрутизатора, чем OSPF. Также EIGRP имеет более продвинутый алгоритм вычисления метрики DUAL (Diffusing Update ALgorithm), который может использовать 5 различных компонентов для её расчета:
Bandwidth (Пропускная способность) — минимальная пропускная способность маршрута;
Delay (Задержка) — суммарная задержка на всём пути маршрута;
Reliability (Надежность) — наихудший показатель надёжности на всём пути маршрута;
Loading (Загруженность) — наихудший показатель загруженности интерфейса на всём пути маршрута, основанный на количестве трафика, проходящего через интерфейс и настроенном на нём параметре Bandwidth.
MTU (Maximum Transmitted Unit — максимальный размер пакета) — минимальный размер MTU на всём пути маршрута.
По умолчанию для расчёта метрики EIGRP использует только первые два компонента, поскольку надежность и загруженность являются динамическими величинами и могут изменяться до нескольких раз в секунду. Каждое изменение вызывает перерасчет метрики для маршрутов и использование процессорной мощности маршрутизатора до 100%. MTU не является динамической величиной, но не используется по причине слабого влияния на метрику маршрута.
Преимущество протокола EIGRP в том, что он способен производить суммаризацию на любом маршрутизаторе на пути, поскольку является протоколом класса «вектор расстояния» (Distance Vector), когда информация передается от соседа к соседу, и каждый следующий выбирает только лучший маршрут, отдаваемый соседу.
Единственный недостаток протокола EIGRP на данный момент — его ограниченность в использовании оборудования только компании Cisco. Хотя в феврале 2013 года Cisco открыла EIGRP, об его внедрении в маршрутизаторы других производителей официально не объявлено.
OSPF
OSPF (Open Shortest Path First) является наиболее часто используемым протоколом внутренней динамической маршрутизации, основанным на технологии отслеживания состояния канала (link-state technology) и использующий для нахождения кратчайшего пути алгоритм Дейкстры — Shortest Path First (SPF), и по сути это — протокол передачи информации по наилучшему пути из возможных.
Каждый из маршрутизаторов, использующих OSPF, готовит свои таблицы маршрутизации согласно объявлениям о состоянии канала (LSA — Link State Acknowledgment). Маршрутизаторы получают их от остальных маршрутизаторов, расположенных в той же области. Также они добавляют в базы LSA, которые создают сами.
LSA — это пакет данных, содержащий информацию о соседних маршрутизациях и стоимости пути. На основании своих баз данных (базы данных соседей и базы данных состояния каналов) каждый маршрутизатор определяет кратчайший путь передачи данных к каждой сети, используя алгоритм SPF. Этот процесс напоминает построение дерева, корнем которого является сам маршрутизатор, а ветвями — пути к доступным сетям. Построение этого дерева происходит очень быстро.
Основные преимущества OSPF:
по сравнению с дистанционно-векторными протоколами маршрутизации, например, RIP, OSPF хорошо подходит для обслуживания больших разнородных объединенных сетей и может пересчитывать маршруты за короткий промежуток времени при изменении топологии сети.
с помощью OSPF можно разделить автономную систему на области и сохранить их отдельные топологии, что позволяет уменьшить трафик маршрутизации OSPF и размер базы данных для каждой такой области.
OSPF поддерживает маршрутизацию для нескольких путей с равной стоимостью; повторяющиеся маршруты можно добавить в стек TCP, используя разные следующие переходы, т.е. пакеты, предназначенные одному и тому же Получателю, могут идти до него разными маршрутами.
В сетях OSPF для уменьшения размера таблиц маршрутизации выделяются следующие типы маршрутизаторов:
DR (Designated Router) — выделенный маршрутизатор, управляющий процессом рассылки LSA;
BDR (Backup Designated Router) — резервный выделенный маршрутизатор, автоматически становящийся DR при выходе DR из строя;
ABR (Area Border Router) — пограничный маршрутизатор зоны, соединяющий одну или несколько зон с магистральной зоной и выполняющий функции шлюза для межзонального трафика; у такого маршрутизатора всегда хотя бы один интерфейс принадлежит магистральной зоне, при этом для каждой присоединенной зоны маршрутизатор поддерживает отдельную базу данных состояния каналов;
BR (Backbone Router) — магистральный маршрутизатор, у которого всегда хотя бы один интерфейс принадлежит магистральной зоне (это не всегда пограничный маршрутизатор);
ASBR (AS Boundary Router) — пограничный маршрутизатор автономной системы, один из портов которого находится в домене OSPF протокола, а другой в домене любого из внутренних шлюзовых протоколов (например RIP или EIGRP). Пограничный маршрутизатор автономной системы может находиться в любом месте автономной системы и быть пограничным или магистральным маршрутизатором.
Маршрутизаторы отправляют LSA не напрямую, а с другими пакетами. OSPF применяет следующие виды пакетов:
Hello — эти пакеты через фиксированные отрезки времени отправляются со всех интерфейсов маршрутизаторов для того, чтобы установить и поддерживать отношения соседства. Вместе с этими пакетами отправляются параметры, по поводу которых маршрутизаторам нужно условиться прежде, чем установить соседство:
Network mask — сетевая маска интерфейса.
HelloInterval — информация о частоте отправки.
Options — дополнительные опции, которые поддерживает маршрутизатор, например, MC-bit.
Router Priority — приоритет маршрутизатора. Эта информация используется при выборе DR и BDR.
RouterDeadInterval — интервал времени, после которого сосед считается «мертвым».
Designated Router — IP-адрес DR для сети, в которую отправлен hello-пакет.
Backup Designated Router — IP-адрес BDR.
Neighbor — идентификаторы соседей-маршрутизаторов.
Database Description — пакет описания базы данных, который описывает содержимое топологической базы данных. Процедура вопроса-ответа используется для описания использования нескольких пакетов. Один маршрутизатор назначается ведущим, а другой — ведомым. Ведущий маршрутизатор передаёт описание базы данных ведомому маршрутизатору. После этого ведомый маршрутизатор передаёт описание базы данных ведущему устройству. Эти пакеты необходимы для проверки синхронизации баз данных между маршрутизаторами.
В пакете содержатся данные:
Interface MTU — максимальный размер в байтах IP-дейтаграммы, которая может быть отправлена через интерфейс без фрагментации.
I-бит — устанавливается для первого пакета в последовательности.
M-бит — указывает наличие последующих дополнительных пакетов.
MS-бит — устанавливается для ведущего.
DD sequence number — уникальное значение, устанавливается в начальном пакете; в каждом следующем увеличивается на единицу, пока не будет передана вся база данных.
LSA headers — массив заголовков базы данных состояния каналов.
Link-State Request — пакет запроса состояния канала. Предназначен для рассылки записей о состоянии каналов. В нем содержится Number of LSA — количество объявлений в пакете.
Link-State Acknowledgment — пакет подтверждения состояния канала. Это сообщение, которое подтверждает получение других типов пакетов.
В отличие от RIP, OSPF может работать в рамках иерархии. Самой большой сущностью в иерархии является AC. АС можно разделить на зоны (Area), связанные друг с другом маршрутизаторами. Зона в свою очередь состоит из групп смежных сетей и присоединенных хостов. Топологии зон невидимы для объектов, находящихся за их пределами. В одной и той же зоне все маршрутизаторы имеют абсолютно одинаковую базу данных состояния канала.
Все пути между соседними маршрутизаторами имеют свою стоимость. Для выбора оптимального маршрута необходимо иметь знания о топологии сети. Для этого маршрутизаторы передают знания о соседних устройствах, о соединениях и их стоимости. Далее проводятся вычисления по алгоритму SPF и выбирается маршрут, имеющий меньшую стоимость пути.
Продолжение следует…