Пояснение

среда, 19 марта 2014 г.

Быть или не быть, succesor или feasible succesor?


Всем известный алгоритм DUAL позволяет протоколу EIGRP получать оптимальную, свободную от петель топологию. В русскоязычных блогах ему обычно уделяется не так много места, типа вот так:
Если маршрут через successor становится недействительным (изменилась топология) или у соседа изменилась метрика, DUAL проверяет, есть ли для данного маршрута feasible successor.
Если feasible successor есть, DUAL использует его в качестве successor-а, что позволяет избежать перерасчет маршрута.
Если feasible successor-а для маршрута нет, производится перерасчет маршрута. Хотя перерасчет не сильно загружает процессор, он занимает определенное время, поэтому желательно избегать ненужных перерасчетов.
На первый взгляд всё так и есть. Но если попытаться разобраться в том, как работает DUAL, станет понятно, что данное описание неполно. Рассмотрим следующую топологию в качестве примера:

Маршрутизатор R3 анонсирует интересующую нас сеть 3.3.3.3/32, c точки зрения R1 роли соседних маршрутизаторов распределятся следующим образом:

successor: R2
feasible successor's : R4, R5
other: R6
Признаться, значения выбраны довольно специфичные, тем не менее, для R6 правило feasibility condition не выполнено, т.к. в случае равенства RD и FD, DUAL не может гарантировать отсутствие петель в топологии. Т.е. в таблице eigrp topology мы увидим следующее:
P 3.3.3.3/32, 1 successors, FD is 2693888
        via 10.12.0.2 (2693888/2691072), FastEthernet0/0    ---   R2
        via 10.14.0.4 (2694656/2693376), FastEthernet0/1    ---   R4
        via 10.15.0.5 (2694912/2693120), FastEthernet1/0    ---   R5
Если руководствоваться описанным в начале правилом, то после падения линка до R2 будет выбран путь через R4. Однако это не так, successor'ом станет R6, т.к. маршрут через него будет наикратчайшим после изменения топологии. Теперь мы можем рассмотреть логику такого поведения.
  1. При падении или изменении маршрута до текущего successor'a будет произведен выбор соседа с наименьшей метрикой до нужной сети.
  2. Если такой сосед не удовлетворяет правилу feasibility condition, то требуемая сеть будет переведена в active состояние. После рассылки запросов и получения ответов, выберем соседа с наименьшей метрикой до требуемой сети и назначим его successor'ом.
  3. Если такой сосед удовлетворяет правилу feasibility condition, то он будет выбран новым successor'ом.

Вообще, работу DUAL можно рассмотреть очень подробно, благо оригинальная работа профессора Garcia-Luna-Aceves доступна в Интернете.

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

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