Сходимость протокола EIGRP. Таймеры протокола

Всем привет!

Так как в начале 2013 Cisco решила отдать своё детище IETF как Informational RFC, было решено написать статью о таймерах, которые мы можем оптимизировать и настроить при работе данного протокола.

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

Протокол в своей работе использует механизм DUAL, который отвечает за быструю сходимость протокола, а также за поиск оптимального маршрута.

Как работает данный протокол?

Протокол EIGRP состоит из четырех основных компонентов:

• Neighbor Discovery/Recovery
• Reliable Transport Protocol
• DUAL Finite State Machine
• Protocol Dependent Modules

Neighbor Discovery/Recovery

Это механизм для поиска соседей, а также для определения работоспособности соседей, работающих по протоколу EIGRP. Этот механизм работает с помощью отправки пакетов (Hello). Пока маршрутизатор получает пакеты Hello от соседей, он знает, что его сосед доступен и работает. После того как соседи обменяются Hello сообщениями и установят соседство друг с другом, они смогут начать обменяться маршрутной информацией.

Reliable Transport Protocol

Протокол отвечает за гарантированную, упорядоченную доставку пакетов EIGRP всем соседям. Он необходим для передачи пакетов самого протокола EIGRP: hello, update и т.д.

DUAL (DUAL Finite State Machine)

Алгоритм, который использует протокол EIGRP для определения маршрутов. Задача алгоритма — определение маршрута/маршрутов до сети назначения избегая петель маршрутизации. Когда такой маршрут обнаружен, алгоритм DUAL добавляет его в таблицу маршрутизации. Процесс DUAL использует механизм обмена сообщениями, чтобы установить, существует ли альтернативный маршрут, убедиться в том, что маршрут не создает маршрутных петель, и в случае выхода из строя основного маршрута заменить нерабочий маршрут в таблице маршрутизации альтернативным.

Protocol Dependent Modules

Данный протокол позволяет протоколу EIGRP работать с несколькими протоколами сетевого уровня ip, ipx, apple talk. Для каждого из которых строятся отдельные таблицы — таблица соседей, таблица топологий и так далее.

Таким образом, Protocol Dependent Modules позволяет нам работать с протоколами 3 уровня модели OSI например IP. Reliable Transport Protocol гарантирует доставку служебных сообщений EIGRP. Neighbor Discovery/Recovery – помогает нам с поиском и отслеживанием статуса наших соседей EIGRP, а DUAL Finite State Machine выбирает оптимальный и альтернативный маршрут до сети назначения, предотвращая петли маршрутизации.

Отсюда можно выделить несколько направлений уменьшения времени сходимости:

1) Увеличение скорости отправки hello сообщений для поиска соседей
2) Уменьшение времени обнаружения проблем с соседом
3) Поддержание в актуальном состоянии маршрутной информации.

Первые два пункта из списка настраиваются изменением таймера отправки Hello сообщений.

То есть, чем чаще отправляем сообщения Hello, тем быстрей мы определим, доступен сосед или нет, быстрей найдем соседа, если мы его потеряли. По умолчанию Hello interval равен 60 секунд для сетей NBMA(non-broadcast multiple access) и 5 секунд для других типов сетей.

Настраивается данный таймер на интерфейсе маршрутизатора следующей командой:

Router(config-if)#ip hello-interval eigrp as_number interval_in_seconds

as_number – номер автономной системы EIGRP
interval_in_seconds – интервал отправки Hello сообщений

Так же как и в других протоколах маршрутизации используется таймер Hold-down timer. Таймер, с помощью которого мы определяем, доступен наш сосед или нет. Обычно данный таймер равен 3 значениям Hello interval. То есть, если от соседа не получаем hello сообщения в течении трех интервалов отправки данных сообщений, то считаем — сосед недоступен. По умолчанию, при использовании стандартных значений данный таймер равен 180 секунд для сетей NBMA и 15 секунд для других типов сетей.

Данный таймер можно изменить следующей командой:

Router(config-if) ip hold-time eigrp as_number holdown_timer_in_seconds

as_number – номер автономной системы EIGRP
interval_in_seconds – интервал отправки Hello сообщений

Третий пункт можно немного изменить, настроив Active timer, который отвечает за время хранения маршрута в таблице топологий.

Active Timer — интервал времени в течение которого маршрут может оставаться в состоянии active. Если таймер истечет до тех пор как будут получены все ответы от соседей (Reply), то маршрутизатор переводит маршрут в состояние stuck-in-active. Кроме того, разрываются отношения соседства с теми соседями, от которых не был получен ответ.

Каким образом работает таймер?

Вы, наверное, уже знаете, что протокол EIGRP составляет несколько таблиц: таблицу маршрутизации, таблицу соседей и таблицу топологий.

EIGRP topologytable

EIGRP topology table

В таблице топологий содержится информация о соседях и маршрутах, которые они объявили нам. Так вот, в таблице топологий существует два состояния passive и active.
Passive – маршрут до сети назначения вычислен и может использоваться для передачи трафика.
Active – маршрут до сети назначения не обнаружен и происходит его поиск через соседей.

Если маршрут был в состоянии passive и исчез, по каким либо причинам, то маршрут также переходит в статус active.

Таймер active, как раз и нужен для определения времени, в течение которого необходимо ждать ответа от соседей о доступности необходимого маршрута.
По умолчанию данный таймер равен 3 минутам.
Изменяется таймер следующей командой в настройках протокола маршрутизации, измеряется в минутах.

R1(config-router)#timers active-time <1-65535>

На этом описание основных таймеров протокола EIGRP завершено.

Сейчас немного рекомендаций по настройке данных таймеров.
Рекомендуется Hello interval устанавливать равным 2 секунды, Hold –timer 6 секунд. При проектировании и настройки таймеров также необходимо проверять,  чтобы Hold –timer был ниже, чем таймер active.

Протокол EIGRP весьма интересен, но, на мой взгляд, слишком поздно сделали его открытым для всего мира, тем самым отбросив его далеко по темпам внедрения в современных сетях.В статье попробовал описать основные таймеры протокола, надеюсь, кому то статью будет полезна и пригодится в будущем. Прошу оставлять отзывы, а также темы новых статей, которые актуальны для вас.

Удачи и до новых встреч!

Best regards
Dmitry Sultanakhmetov


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Hide me
Получать регулярно свежие материалы, лабораторные и вебинары
Email Имя
Show me