Введение
Алгоритм диффузионного обновления (DUAL) — это алгоритм, используемый протоколом маршрутизации EIGRP компании Cisco для обеспечения глобального пересчета маршрута, если существует вероятность возникновения петли маршрутизации. Он был разработан Дж. Дж. Гарсией Луна Асевесом в SRI International. Полное название алгоритма — конечный автомат диффузионного обновления (DUAL FSM). EIGRP отвечает за маршрутизацию внутри автономной системы, а DUAL реагирует на изменения в топологии маршрутизации и динамически корректирует таблицы маршрутизации маршрутизатора автоматически. EIGRP использует условие допустимости (feasibility condition) для гарантии выбора только маршрутов, свободных от петель. Условие допустимости является консервативным: при его выполнении исключаются любые петли, однако в некоторых случаях оно может отклонить все маршруты к заданному пункту назначения, даже если некоторые из них не содержат петель. Если не существует допустимого маршрута к пункту назначения, алгоритм DUAL запускает диффузионный расчет для устранения всех следов проблемного маршрута из сети. После этого используется стандартный алгоритм Беллмана — Форда для поиска нового маршрута.
Операция
DUAL использует три отдельные таблицы для вычисления маршрутов. Эти таблицы создаются на основе информации, обмениваемой между маршрутизаторами EIGRP. Эта информация отличается от той, что обменивается протоколами маршрутизации с полной информацией о состоянии сети. В EIGRP обмен информацией включает в себя маршруты, "метрику" или стоимость каждого маршрута, а также информацию, необходимую для установления соседства (такую как номер AS, таймеры и значения K). Три таблицы и их функции подробно описаны ниже:
Neighbor table contains information on all other directly connected routers. A separate table exists for each supported protocol (IP, IPX, etc.). Each entry corresponds to a neighbour with the description of network interface and address. In addition, a timer is initialized to trigger the periodic detection of whether the connection is alive. This is achieved through "Hello" packets. If a "Hello" packet is not received from a neighbor for a specified time period, the router is assumed down and removed from the neighbor table. Topology table contains the metric (cost information) of all routes to any destination within the autonomous system. This information is received from neighboring routers contained in the Neighbor table. The primary (successor) and secondary (feasible successor) routes to a destination will be determined with the information in the topology table. Among other things, each entry in the topology table contains the following:
"FD (Feasible Distance)": The calculated metric of a route to a destination within the autonomous system. "RD (Reported Distance)": The metric to a destination as advertised by a neighboring router. RD is used to calculate the FD, and to determine if the route meets the "feasibility condition". Route Status: A route is marked either "active" or "passive". "Passive" routes are stable and can be used for data transmission. "Active" routes are being recalculated, and/or not available. Routing table contains the best route(s) to a destination (in terms of the lowest "metric"). These routes are the successors from the topology table. DUAL evaluates the data received from other routers in the topology table and calculates the primary (successor) and secondary (feasible successor) routes. The primary path is usually the path with the lowest metric to reach the destination, and the redundant path is the path with the second lowest cost (if it meets the feasibility condition). There may be multiple successors and multiple feasible successors. Both successors and feasible successors are maintained in the topology table, but only the successors are added to the routing table and used to route packets. For a route to become a feasible successor, its RD must be smaller than the FD of the successor. If this feasibility condition is met, there is no way that adding this route to the routing table could cause a loop. If all the successor routes to a destination fail, the feasible successor becomes the successor and is immediately added to the routing table. If there is no feasible successor in the topology table, a query process is initiated to look for a new route.
Соседняя таблица содержит информацию обо всех непосредственно подключенных маршрутизаторах. Для каждого поддерживаемого протокола (IP, IPX и т. д.) существует отдельная таблица. Каждая запись соответствует соседу с описанием сетевого интерфейса и адреса. Кроме того, инициализируется таймер для периодической проверки доступности соединения. Это осуществляется посредством "Hello"-пакетов. Если "Hello"-пакет не получен от соседа в течение заданного периода времени, маршрутизатор считается недоступным и удаляется из соседней таблицы. Топологическая таблица содержит метрику (информацию о стоимости) всех маршрутов к любому пункту назначения в пределах автономной системы. Эта информация поступает от соседних маршрутизаторов, содержащихся в соседней таблице. На основе информации в топологической таблице определяются основной (преемник) и резервный (возможный преемник) маршруты к месту назначения. Каждый элемент в топологической таблице содержит, в частности, следующее:
Neighbor table contains information on all other directly connected routers. A separate table exists for each supported protocol (IP, IPX, etc.). Each entry corresponds to a neighbour with the description of network interface and address. In addition, a timer is initialized to trigger the periodic detection of whether the connection is alive. This is achieved through "Hello" packets. If a "Hello" packet is not received from a neighbor for a specified time period, the router is assumed down and removed from the neighbor table. Topology table contains the metric (cost information) of all routes to any destination within the autonomous system. This information is received from neighboring routers contained in the Neighbor table. The primary (successor) and secondary (feasible successor) routes to a destination will be determined with the information in the topology table. Among other things, each entry in the topology table contains the following:
"FD (Feasible Distance)": The calculated metric of a route to a destination within the autonomous system. "RD (Reported Distance)": The metric to a destination as advertised by a neighboring router. RD is used to calculate the FD, and to determine if the route meets the "feasibility condition". Route Status: A route is marked either "active" or "passive". "Passive" routes are stable and can be used for data transmission. "Active" routes are being recalculated, and/or not available. Routing table contains the best route(s) to a destination (in terms of the lowest "metric"). These routes are the successors from the topology table. DUAL evaluates the data received from other routers in the topology table and calculates the primary (successor) and secondary (feasible successor) routes. The primary path is usually the path with the lowest metric to reach the destination, and the redundant path is the path with the second lowest cost (if it meets the feasibility condition). There may be multiple successors and multiple feasible successors. Both successors and feasible successors are maintained in the topology table, but only the successors are added to the routing table and used to route packets. For a route to become a feasible successor, its RD must be smaller than the FD of the successor. If this feasibility condition is met, there is no way that adding this route to the routing table could cause a loop. If all the successor routes to a destination fail, the feasible successor becomes the successor and is immediately added to the routing table. If there is no feasible successor in the topology table, a query process is initiated to look for a new route.
"FD (Feasible Distance)": вычисленная метрика маршрута до пункта назначения в пределах автономной системы.
"RD (Reported Distance)": метрика до пункта назначения, объявленная соседним маршрутизатором. RD используется для вычисления FD и определения соответствия маршрута "условию осуществимости".
Статус маршрута: маршрут помечается как "активный" или "пассивный". "Пассивные" маршруты стабильны и могут использоваться для передачи данных. "Активные" маршруты пересчитываются и/или недоступны.
Neighbor table contains information on all other directly connected routers. A separate table exists for each supported protocol (IP, IPX, etc.). Each entry corresponds to a neighbour with the description of network interface and address. In addition, a timer is initialized to trigger the periodic detection of whether the connection is alive. This is achieved through "Hello" packets. If a "Hello" packet is not received from a neighbor for a specified time period, the router is assumed down and removed from the neighbor table. Topology table contains the metric (cost information) of all routes to any destination within the autonomous system. This information is received from neighboring routers contained in the Neighbor table. The primary (successor) and secondary (feasible successor) routes to a destination will be determined with the information in the topology table. Among other things, each entry in the topology table contains the following:
"FD (Feasible Distance)": The calculated metric of a route to a destination within the autonomous system. "RD (Reported Distance)": The metric to a destination as advertised by a neighboring router. RD is used to calculate the FD, and to determine if the route meets the "feasibility condition". Route Status: A route is marked either "active" or "passive". "Passive" routes are stable and can be used for data transmission. "Active" routes are being recalculated, and/or not available. Routing table contains the best route(s) to a destination (in terms of the lowest "metric"). These routes are the successors from the topology table. DUAL evaluates the data received from other routers in the topology table and calculates the primary (successor) and secondary (feasible successor) routes. The primary path is usually the path with the lowest metric to reach the destination, and the redundant path is the path with the second lowest cost (if it meets the feasibility condition). There may be multiple successors and multiple feasible successors. Both successors and feasible successors are maintained in the topology table, but only the successors are added to the routing table and used to route packets. For a route to become a feasible successor, its RD must be smaller than the FD of the successor. If this feasibility condition is met, there is no way that adding this route to the routing table could cause a loop. If all the successor routes to a destination fail, the feasible successor becomes the successor and is immediately added to the routing table. If there is no feasible successor in the topology table, a query process is initiated to look for a new route.
Таблица маршрутизации содержит наилучшие маршруты (с наименьшей "метрикой") к месту назначения. Эти маршруты являются преемниками из топологической таблицы. DUAL анализирует данные, полученные от других маршрутизаторов в топологической таблице, и вычисляет основной (преемник) и резервный (возможный преемник) маршруты. Основной путь обычно представляет собой путь с наименьшей метрикой для достижения пункта назначения, а резервный путь – путь со второй наименьшей стоимостью (если он соответствует условию осуществимости). Может быть несколько преемников и несколько возможных преемников. И преемники, и возможные преемники хранятся в топологической таблице, но в таблицу маршрутизации добавляются и используются для маршрутизации пакетов только преемники. Чтобы маршрут стал возможным преемником, его RD должно быть меньше FD преемника. Если это условие осуществимости выполнено, добавление этого маршрута в таблицу маршрутизации не может привести к образованию петли. Если все маршруты-преемники к месту назначения становятся недоступными, возможный преемник становится преемником и немедленно добавляется в таблицу маршрутизации. Если в топологической таблице нет возможного преемника, запускается процесс запроса для поиска нового маршрута.
Neighbor table contains information on all other directly connected routers. A separate table exists for each supported protocol (IP, IPX, etc.). Each entry corresponds to a neighbour with the description of network interface and address. In addition, a timer is initialized to trigger the periodic detection of whether the connection is alive. This is achieved through "Hello" packets. If a "Hello" packet is not received from a neighbor for a specified time period, the router is assumed down and removed from the neighbor table. Topology table contains the metric (cost information) of all routes to any destination within the autonomous system. This information is received from neighboring routers contained in the Neighbor table. The primary (successor) and secondary (feasible successor) routes to a destination will be determined with the information in the topology table. Among other things, each entry in the topology table contains the following:
"FD (Feasible Distance)": The calculated metric of a route to a destination within the autonomous system. "RD (Reported Distance)": The metric to a destination as advertised by a neighboring router. RD is used to calculate the FD, and to determine if the route meets the "feasibility condition". Route Status: A route is marked either "active" or "passive". "Passive" routes are stable and can be used for data transmission. "Active" routes are being recalculated, and/or not available. Routing table contains the best route(s) to a destination (in terms of the lowest "metric"). These routes are the successors from the topology table. DUAL evaluates the data received from other routers in the topology table and calculates the primary (successor) and secondary (feasible successor) routes. The primary path is usually the path with the lowest metric to reach the destination, and the redundant path is the path with the second lowest cost (if it meets the feasibility condition). There may be multiple successors and multiple feasible successors. Both successors and feasible successors are maintained in the topology table, but only the successors are added to the routing table and used to route packets. For a route to become a feasible successor, its RD must be smaller than the FD of the successor. If this feasibility condition is met, there is no way that adding this route to the routing table could cause a loop. If all the successor routes to a destination fail, the feasible successor becomes the successor and is immediately added to the routing table. If there is no feasible successor in the topology table, a query process is initiated to look for a new route.