Введение
Интернет-протокол
Enhanced Interior Gateway Routing Protocol (EIGRP) — это продвинутый протокол маршрутизации на основе векторов расстояний, используемый в компьютерных сетях для автоматизации принятия решений о маршрутизации и конфигурации. Протокол был разработан компанией Cisco Systems как проприетарный, доступный только на маршрутизаторах Cisco. В 2013 году Cisco разрешила другим производителям свободно реализовывать ограниченную версию EIGRP с некоторыми сопутствующими функциями, такими как высокая доступность (HA), но сохранила за собой другие функции EIGRP, например, EIGRP stub, необходимые для DMVPN и масштабного развертывания в корпоративных сетях. Информация, необходимая для реализации, была опубликована в 2016 году как информационная, но не была доведена до уровня Internet Standards Track, что позволило Cisco сохранить контроль над протоколом EIGRP. EIGRP используется на маршрутизаторе для обмена информацией о маршрутах с другими маршрутизаторами в пределах одной и той же автономной системы. В отличие от других известных протоколов маршрутизации, таких как RIP, EIGRP отправляет только инкрементные обновления, что снижает нагрузку на маршрутизатор и объем передаваемых данных. EIGRP заменил протокол Interior Gateway Routing Protocol (IGRP) в 1993 году. Основной причиной этого стало изменение в Интернет-протоколе на бесклассную адресацию IPv4, которую IGRP не поддерживал.
Enhanced Interior Gateway Routing Protocol (EIGRP) is an advanced distance vector routing protocol that is used on a computer network for automating routing decisions and configuration. The protocol was designed by Cisco Systems as a proprietary protocol, available only on Cisco routers. In 2013, Cisco permitted other vendors to freely implement a limited version of EIGRP with some of its associated features such as High Availability (HA), while withholding other EIGRP features such as EIGRP stub, needed for DMVPN and large scale campus deployment. Information needed for implementation was published with informational status as in 2016, which did not advance to Internet Standards Track level, and allowed Cisco to retain control of the EIGRP protocol. EIGRP is used on a router to share routes with other routers within the same autonomous system. Unlike other well known routing protocols, such as RIP, EIGRP only sends incremental updates, reducing the workload on the router and the amount of data that needs to be transmitted. EIGRP replaced the Interior Gateway Routing Protocol (IGRP) in 1993. One of the major reasons for this was the change to classless IPv4 addresses in the Internet Protocol, which IGRP could not support.
Технические детали
EIGRP - это протокол маршрутизации, сочетающий в себе характеристики протоколов векторных расстояний и состояния канала, использующий алгоритм диффузионного обновления (DUAL) (основанный на разработках SRI International) для повышения эффективности протокола и предотвращения вычислительных ошибок при определении оптимального пути к удаленной сети. EIGRP определяет стоимость пути, используя пять метрик: пропускную способность, нагрузку, задержку, надежность и MTU. Для связи с соседними маршрутизаторами EIGRP использует пять типов сообщений: Hello, Update, Query, Reply и Acknowledgement. Информация о маршрутизации EIGRP, полученная от другого маршрутизатора в пределах одной и той же автономной системы, имеет административное расстояние по умолчанию 90. Информация о маршрутизации EIGRP, полученная от маршрутизатора с поддержкой EIGRP за пределами автономной системы, имеет административное расстояние по умолчанию 170. EIGRP не работает поверх протоколов TCP или UDP, а значит, не использует номера портов для идентификации трафика. Вместо этого EIGRP разработан для работы на уровне 3 (то есть поверх протокола IP). Поскольку EIGRP не использует TCP для связи, он реализует протокол надежной транспортировки (RTP) Cisco для обеспечения полной доставки обновлений маршрутизатора EIGRP всем соседям. Протокол надежной транспортировки также включает другие механизмы для повышения эффективности и поддержки многоадресной рассылки. Хотя EIGRP является продвинутым протоколом маршрутизации, объединяющим многие функции протоколов состояния канала и векторных расстояний, алгоритм DUAL в EIGRP содержит множество особенностей, которые делают его ближе к протоколу векторных расстояний, чем к протоколу состояния канала. Тем не менее, EIGRP имеет ряд отличий от большинства других протоколов векторных расстояний, включая:
использование явных Hello-пакетов для обнаружения и поддержания связности между маршрутизаторами;
использование надежного протокола для передачи обновлений маршрутизации;
использование условия допустимости (feasibility condition) для выбора маршрута без петель;
использование диффузионных вычислений для вовлечения затронутой части сети в вычисление нового кратчайшего пути.
Возможный преемник
Возможным преемником для конкретного пункта назначения является маршрутизатор следующего прыжка, который гарантированно не входит в состав маршрутизационной петли. Это условие проверяется посредством проверки условия осуществимости. Таким образом, каждый преемник также является возможным преемником. Однако в большинстве материалов, посвященных EIGRP, термин "возможный преемник" используется для обозначения только тех маршрутов, которые обеспечивают путь без петель, но не являются преемниками (то есть не обеспечивают наименьшее расстояние). С этой точки зрения, для достижимого пункта назначения всегда существует как минимум один преемник, однако возможные преемники могут отсутствовать. Возможный преемник предоставляет рабочий маршрут к тому же пункту назначения, хотя и с большим расстоянием. В любой момент времени маршрутизатор может отправить пакет в пункт назначения, помеченный как "Passive", через любого из своих преемников или возможных преемников, не уведомляя их об этом предварительно, и этот пакет будет доставлен корректно. Возможные преемники также записываются в топологическую таблицу. Возможный преемник фактически предоставляет резервный маршрут в случае недоступности существующих преемников. Кроме того, при выполнении балансировки нагрузки с неравномерной стоимостью (балансировка сетевого трафика обратно пропорционально стоимости маршрутов) возможные преемники используются в качестве маршрутизаторов следующего прыжка в таблице маршрутизации для пункта назначения, к которому применяется балансировка нагрузки. По умолчанию общее количество преемников и возможных преемников для пункта назначения, хранящихся в таблице маршрутизации, ограничено четырьмя. Этот предел можно изменить в диапазоне от 1 до 6. В более новых версиях Cisco IOS (например, 12.4) этот диапазон составляет от 1 до 16.
Активное и пассивное состояние
Направление в таблице топологии может быть помечено как пассивное или активное. Пассивное состояние – это состояние, когда маршрутизатор определил преемника (преемников) для данного направления. Направление переходит в активное состояние, когда текущий преемник перестает удовлетворять условию допустимости и не найдено ни одного допустимого преемника для этого направления (то есть, нет доступных резервных маршрутов). Направление возвращается из активного в пассивное состояние, когда маршрутизатор получает ответы на все запросы, отправленные его соседям. Следует отметить, что если преемник перестает удовлетворять условию допустимости, но есть хотя бы один доступный допустимый преемник, маршрутизатор выбирает допустимый преемник с наименьшим суммарным расстоянием (расстояние, сообщенное допустимым преемником, плюс стоимость соединения с этим соседом) в качестве нового преемника, и направление остается в пассивном состоянии.
Неравномерная стоимость пути балансировки нагрузки
EIGRP поддерживает балансировку нагрузки по маршрутам с разными стоимостями. Для определения, какие маршруты включать в балансировку нагрузки, используется множитель, называемый коэффициентом отклонения. По умолчанию коэффициент отклонения равен 1, что означает балансировку нагрузки по маршрутам с одинаковой стоимостью. Максимальное значение коэффициента отклонения – 128. Минимальная метрика маршрута умножается на значение коэффициента отклонения. В балансировку нагрузки включаются все маршруты, метрика которых меньше полученного результата. Благодаря функции балансировки нагрузки по маршрутам с неравной стоимостью в EIGRP, протокол OSPF не может проектировать сеть с использованием балансировки нагрузки по маршрутам с неравной стоимостью. Что касается практического применения функции балансировки нагрузки по неравномерным затратам, то она обеспечивает гибкость проектирования сети и управления трафиком.
EIGRP и совместимость с другими поставщиками
Cisco опубликовала подробную информацию о проприетарном протоколе маршрутизации EIGRP в RFC, чтобы помочь компаниям, чьи сети функционируют в многопоставщической среде. Протокол, описанный в RFC, был разработан 20 лет назад, однако он по-прежнему остается одним из основных протоколов маршрутизации Cisco благодаря заявленной простоте использования и масштабируемости по сравнению с другими протоколами. Cisco утверждает, что EIGRP является открытым стандартом, но опускает несколько ключевых деталей в определении RFC, что затрудняет обеспечение взаимодействия между маршрутизаторами различных производителей при использовании этого протокола. Например, даже Cisco NX OS не поддерживает балансировку нагрузки с неравномерной стоимостью. По состоянию на 2022 год EIGRP имеет альфа-поддержку в FRRouting и, судя по всему, в целом не поддерживается другим программным обеспечением для маршрутизации.