Kinzersky.ru

CCNP: EIGRP (часть 1)

Просмотров: 4628Комментарии: 3
МаршрутизацияCisco

Начинаю вольный перевод книги CCNP Route Quick Reference Guide. Для подготовки к экзамену все равно нужно читать всю литературу на английском, чтобы до конца понимать терминологию, используемую авторами вопросов и лабораторных работ, но в "обычной" жизни может кому-то пригодится.

Итак, приступим.

Следующие части:

Часть 2

Часть 3

Часть 4

EIGRP

Общие сведения

Протокол динамической маршрутизации EIGRP - проприетарный (т.е. использоваться может только на устройствах циско), Distance-vector, бесклассовый. Использует комплексную метрику, основанную на полосе пропускания (bandwith) и задержке (delay). Ниже описаны некоторые его "фишки":

  • Быстрая сходимость (Fast Convergence).
  • Поддержка масок переменной длинны (VLSM).
  • Частичные обновления, позволяющие сберечь полосу пропускания. (Partial updates).
  • Поддержка IP, AppleTalk, IPX.
  • Работает непосредственно над протоколом IP (НЕ TCP), имеет номер протокола 88.
  • Поддержка всех технологий второго уровня (Data link layer).
  • Сложная метрика, позволяющая балансировать нагрузку между неравнозначными путями.
  • Использование мультикаста вместо броадкаста (в отличие от RIP, наверное).
  • Поддержка аутентификации.
  • Ручная суммаризация на любом интерфейсе.
  • Используемый адрес мультикаста - 224.0.0.10.


  • Функции EIGRP контролируются четырьмя ключевыми технологиями:

  • Поиск соседей и поддержание соседства: периодические сообщения hello.
  • Reliable Transport Protocol (RTP): контролирует отправку, проверку и подтверждение доставки EIGRP-сообщений.
  • Diffusing Update Algotithm (DUAL): позволяет просчитать лучший путь, гарантирующий отсутствие петель.
  • Protocol-independent Modules (PDM): Модульная система, имеющая IP, IPX, AppleTalk-версии EIGRP.

  • В EIGRP используется три таблицы:

  • Таблица соседей (Neighbor Table) - строится на основе полученных hello-сообщений и используется для надежной доставки сообщений
  • Таблица топологии (Topology Table) - содержит всю маршрутную информацию, полученную от соседей, и пережеванную алгоритмом DUAL.
  • Таблица маршрутизации (Routing Table) - в нее помещаются маршруты. Это стандартная таблица маршрутизации любого роутера.


  • Сообщения EIGRP

    EIGRP использует различные типы пакетов для инициации и поддержания соседства между маршрутизаторами, а так же поддерживать в актуальном состоянии таблицу маршрутизации. Он спроектирован для экономии полосы пропускания и ресурсов маршрутизаторов, отправляя сообщения только тогда, когда происходят какие-либо изменения, и только тем маршрутизаторам, которые должны эти изменения получить.

    Типы пакетов

    EIGRP использует 5 типов сообщений:

  • Hello: идентифицирует соседа, а так же служит в качестве механизма поддержания соединения (keepalive).
  • Update: отправка маршрутной информации.
  • Query: запрос запрошенной маршрутной информации.
  • Reply: "ответ" на "запрос" (т.е. ответ на предыдущее сообщение, Query).
  • ACK: (Acknoledgment) - подтверждение доставки сообщения.


  • Поиск соседей и обмен маршрутной информацией

    Когда процесс EIGRP стартует, он использует Hello-сообщения для построения таблицы соседей. Соседи - это напрямую подключенные маршрутизаторы, у которых EIGRP настроен на ту же самую AS (Autonomous System) и одинаковые K-values. Процесс поиска соседей состоит из 5 этапов:

    Шаг 1: Маршрутизатор А отправляет Hello-сообщение.

    Шаг 2: Маршрутизатор Б отправляет ответное hello-сообщение и update-сообщение, содержащее маршрутную информацию.

    Шаг 3: Маршрутизатор А отправляет подтверждение (ACK) в ответ на update от B.

    Шаг 4: Маршрутизатор А отправляет update-сообщение

    Шаг 5: Маршрутизатор Б отправляет подтверждение (ACK) в ответ на update от A.

    Когда два маршрутизатора становятся соседями, они используют hello-сообщения для поддержания соединения (keepalive). Дополнительная маршрутная информация отправляется, только если маршруты становятся недостижимыми, или появляется новый маршрут. Сосед получает статус недостижимого, если за период, равный трем Hello-периодам (т.н. Holdtime) от него не пришло ни одного Hello-сообщения.

    По умолчанию таймеры Hello/Holdtime равны:

    5 сек / 15 сек - для интерфейсов со скоростью выше Т1 (1.54 Мбит/сек) и для точка-точка (point-to-point) соединений.

    60 сек / 180 сек - для мультипоинт соединений с полосой пропускания меньше или равной Т1 (1.54 Мбит/сек).

    Процесс обмена сообщениями можно наблюдать, включив debug ip eigrp packets, процесс обновления маршрутов - debug ip eigrp.

    Таблицу соседей (neighbor table) можно посмотреть с помощью команды show ip eigrp neighbors

    Выбор маршрута в EIGRP

    Маршрутизатор с запущенным процессом EIGRP получает объявления (advertisements) от каждого соседа, содержащие список AD (advertised distance - объявленная дистанция - расстояние до сети назначения от лица соседа), и FS (Feasible Distance - Возможное расстояние - Расстояние до сети назначения от данного роутера (от того, который принял advertisement).

    Подсчет метрики

    Метрика в EIGRP подсчитывается по следующей формуле:

    Значения K - константы. По умолчанию они равны k1=1, k2=0, k3=1, k4=0, k5=0. Если k5=0, последняя часть формулы игнорируется.

    BW min = минимальная полоса пропускания по всему пути следования к сети назначения.

    Значение Delay (задержка) - сумма всех задержек на интерфейсах по пути следования к сети назначения.

    При значениях К по-умолчанию формула упрощается до следующего вида:

    Bandwith - самый большой участник этого безобразия. Значения delay позволяют выбирать более точный путь в определенный момент времени, тогда как значение bandwith - постоянно.

    Алгоритм DUAL (Diffusing Update Algotithm)

    DUAL - алгоритм, используемый EIGRP для выбора лучшего пути на основании AD и FD.

    Путь с лучшей (самой низкой) метрикой называют successor. Именно он попадает в таблицу маршрутизации.

    Пути с AD (advertised distance), меньшим чем FD successor'a (возможное расстояние от рассчитывающего роутера до пути назначения) гарантируют отсутствие петель и называется Feasible Successor'ами - резервным маршрутом. Если successor падает, то маршрутизатор без пересчета DUAL начинает использовать Feasible Successor'а. (Для тех кто не понял - чтобы маршрут стал резервным, нужно чтобы AD предыдущего роутера было меньше чем ПОЛНЫЙ путь FD маршрута с самой меньшей метрикой (successor'a). Т.е., если сосед заявляет слишком огромное расстояние, то это может быть петля. Примечание автора).

    После того как роутер выбрал путь до сети назначения, маршрут помечается как passive (типа с ним все хорошо и мы его больше не считаем).

    Если маршрут теряется и резервного (FS) не было, маршрутизатор шлет запросы по всем интерфейсам, пытаясь найти альтернативный маршрут. В этот момент маршрут (точнее говоря, префикс) помечается как Active. Пока не будут получены ответы со всех интерфейсов (от всех соседей), successor не может быть выбран. Если ответа нет 3 минуты, роутер становится stuck in active ("Застрявший в активном"). В таком случае он рвет дружбу с неотвечающим соседом.

    Три общие причины Stuck in Active:

  • Загрузка процессора или памяти слишком высока, и сосед не может обработать запрос или ответ.
  • Часть пакетов по пути между маршрутизаторами теряется. Пакетов, чтобы роутеры стали соседями - достаточно, но некоторые запросы дропаются.
  • Однонаправленный линк, т.е. маршрутизатор никогда не получал пакетов от своего соседа (интересно, как же они тогда подружились?)
  • Пример выбора маршрута

    Картинка ниже показывает объявления AD/FD на маршрутизаторах R3 и R5 до сети назначения, подключенной к R1. R5 выбирает R4 в качестве основного маршрута (successor), т.к. тот предлагает самую маленькую Feasible Distance. Объявленное расстояние (Advertised Distance, AD) от R3 указывает что трафик, проходящий через R3 не пойдет через "петлю", поэтому R3 выбирается как Feasible Successor.

    На рисунке ниже изображен процесс выбора пути для маршрутизатора R3:

    R1 будет его основным маршрутом (successor), т.к. имеет меньшую метрику. Но резервного маршрута (feasible successor) не будет, т.к. Объявляемое расстояние (AD=Advetised Distance) маршрутизатора R2 больше чем полное расстояние FD, которое получается по пути через R1. Если канал через R1 падает, то R3 отправляет соседям запрос на поиск альтернативы. Он должен будет подождать ответа от R2 и R5 и решит, что R2 это новый successor.

    Продолжение следует.

    Комментариев: 3 RSS

    1 Илья 20-12-2012 21:09

    Отличная работа. Все написано грамотно. Только возможно есть маленькая опечатка.

    Шаг 1: Маршрутизатор А отправляет Hello-сообщение.

    Шаг 2: Маршрутизатор Б отправляет ответное hello-сообщение и update-сообщение, содержащее маршрутную информацию.

    Шаг 3: Маршрутизатор А отправляет подтверждение (ACK) в ответ на update от А. (в ответ на update от B)

    Шаг 4: Маршрутизатор А отправляет update-сообщение.

    Шаг 5: Маршрутизатор Б отправляет подтверждение (ACK) в ответ на update от Б.(в ответ на update от A)

    Скорее так. Работа очень хорошая буду читать и следить, спасибо что пишите такие вещи!))))

    2 Kinzersky 25-12-2012 12:49

    Да, спасибо, поправил. До конца года переведу еще часть материала. Ну и я рад что кому-то это пригодилось;)

    3 Дмитрий 10-08-2013 15:23

    Спасибо за статью, очень подробно и соответственно понятно.

    Оставить комментарий!

    grin LOL cheese smile wink smirk rolleyes confused surprised big surprise tongue laugh tongue rolleye tongue wink raspberry blank stare long face ohh grrr gulp oh oh downer red face sick shut eye hmmm mad angry zipper kiss shock cool smile cool smirk cool grin cool hmm cool mad cool cheese vampire snake excaim question

         

      

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

    (обязательно)