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