Динамическая маршрутизация
Динамическая маршрутизация (адаптивная маршрутизация) — процесс, при котором маршрутизатор направляет данные по различным маршрутам к заданному пункту назначения, основываясь на текущих условиях каналов связи внутри системы[1]. Такой подход позволяет сети сохранять работоспособность и обходить неисправные участки (например, при выходе из строя узла или соединения между узлами), если существуют альтернативные маршруты. Термин «динамическая маршрутизация» чаще всего используется применительно к передаче данных в компьютерных сетях и описывает способность сети «обходить» повреждения, позволяя сохранять максимальное количество рабочих маршрутов при изменении топологии.
В системах, не поддерживающих динамическую маршрутизацию, используется статическая маршрутизация, когда маршруты описаны жёстко заданными путями. При изменениях (например, выходе из строя узла или соединения) такие системы не компенсируют потери маршрута. Любая передача данных по затронутому пути в таком случае вынуждена либо ожидать восстановления маршрута, либо завершиться неудачей[2].
Концепция динамической маршрутизации продолжает развиваться в рабочих документах Инженерного совета Интернета (IETF). В частности, разрабатываются механизмы динамического обновления возможностей протокола BGP и алгоритмы оптимизации флудинга в протоколах маршрутизации на основе состояния канала (link-state)[3][4].
Алгоритмы маршрутизации
В динамической маршрутизации выделяют два основных класса алгоритмов, различающихся способом сбора информации о топологии сети и методом расчёта маршрутов: дистанционно-векторные и алгоритмы состояния канала[5].[6]
Дистанционно-векторные алгоритмы (Distance-vector) основаны на обмене информацией только с непосредственно подключёнными соседями. Маршрутизаторы не обладают данными о полной топологии сети, поэтому такой подход часто называют «маршрутизацией по слухам». Устройства периодически отправляют свои таблицы маршрутизации соседям, а расчёт лучших путей базируется на алгоритме Беллмана — Форда[5].[6]
Алгоритмы состояния канала (Link-state) предполагают построение полной карты сети. Каждый маршрутизатор собирает информацию о состоянии каналов связи всех узлов в пределах своей зоны и самостоятельно вычисляет кратчайшие пути с помощью алгоритма Дейкстры. Обновления рассылаются только при изменении состояния сети[5].[6]
Для гетерогенных сетей, объединяющих различные технологии связи (например, Wi-Fi, 5G, IoT), алгоритмы адаптивной маршрутизации классифицируются на проактивные, реактивные и гибридные. Проактивные протоколы постоянно поддерживают актуальные маршруты ко всем узлам сети, что минимизирует задержку перед отправкой данных. Реактивные протоколы осуществляют поиск маршрута только по требованию, когда возникает необходимость в передаче данных. Гибридные алгоритмы комбинируют оба подхода, как правило, используя проактивную маршрутизацию внутри локальных зон и реактивную — для связи между ними.
Протоколы
Для организации динамической маршрутизации используются различные протоколы маршрутизации. Routing Information Protocol (RIP) относится к классу протоколов на основе векторного расстояния и предотвращает появление маршрутизирующих петель путём ограничения количества прыжков в маршруте от источника к получателю[7], однако для современных сетей он считается устаревшим из-за ограничений масштабируемости и медленной конвергенции[8]. OSPF использует алгоритм маршрутизации на основе состояния канала и относится к классу внутренних шлюзовых протоколов (IGP). IS-IS определяет наилучший маршрут передачи данных в сетях с коммутацией пакетов. IGRP и его усовершенствованная версия EIGRP используются маршрутизаторами для обмена маршрутной информацией внутри автономной системы[9].
В современных архитектурах IP-Fabric (в частности, EVPN-VXLAN) протокол BGP применяется в качестве протокола плоскости управления (control plane)[10].
Для mesh-сетей и децентрализованных систем используется протокол Babel[11].
Архитектура LISP разделяет идентификатор конечной точки (Endpoint Identifier, EID) и локатор маршрутизации (Routing Locator, RLOC).
Балансировка нагрузки и отказоустойчивость
Во многих системах применяется механизм маршрутизации с выбором «следующего хопа» (next-hop): при получении пакета на узле, этот узел на лету определяет, по какому из доступных каналов переслать пакет ближе к пункту назначения.
Маршрутизаторы, использующие адаптивные протоколы, такие как Spanning Tree Protocol (STP) для предотвращения петель моста и маршрутизирующих петель, рассчитывают дерево, указывающее наилучшее соединение для доставки пакета. Резервные (избыточные) связи, не входящие в дерево, временно отключаются, пока не произойдёт сбой в основном канале — после этого рассчитывается новое дерево, включающее ранее отключённые связи для обхода неисправного участка.
В других адаптивных протоколах, например в групповой адаптивной маршрутизации, строится группа всех каналов, по которым возможно отправить пакет на следующий шаг. Пакет отправляется по любому из незанятых каналов этой группы. Агрегация каналов превращает совокупность этих связей в единое высокоскоростное соединение[12].
В динамической маршрутизации для балансировки нагрузки и повышения отказоустойчивости применяются механизмы многопутевой маршрутизации. Технология ECMP (Equal-Cost Multi-Path) позволяет распределять трафик по нескольким маршрутам с равной стоимостью (метрикой). Для распределения нагрузки между маршрутами с разными метриками используется механизм UCMP (Unequal-Cost Multi-Path)[13].
Для быстрого восстановления сети после сбоев применяются технологии IP Fast Reroute (IPFRR). Одним из современных механизмов является Topology-Independent Loop-Free Alternate (TI-LFA), который интегрирован с технологией сегментной маршрутизации (Segment Routing) и обеспечивает переключение на резервный путь менее чем за 50 миллисекунд[14].
В высокопроизводительных сетях и AI-кластерах
Вычислительные кластеры для задач искусственного интеллекта (ИИ) характеризуются специфическими моделями трафика, состоящими из крупных и долгоживущих потоков данных (так называемых «слоновьих потоков» или elephant flows). В таких условиях традиционные методы балансировки нагрузки, такие как ECMP (Equal-Cost Multi-Path), могут быть неэффективны. Поскольку ECMP распределяет трафик на основе хеширования заголовков пакетов, при малом разнообразии потоков это приводит к неравномерной загрузке каналов, образованию перегруженных участков и задержкам[15].
Для решения этих проблем применяется адаптивная маршрутизация, осведомлённая о перегрузках (Congestion-Aware Routing). Данный подход позволяет в реальном времени отслеживать состояние сетевых путей и динамически перенаправлять трафик на менее загруженные маршруты[16].
Для детерминированного управления путями и оптимизации производительности также используется технология Segment Routing over IPv6 (SRv6). Например, в высокопроизводительных сетях Microsoft Azure механизм исходной маршрутизации SRv6 позволяет хосту-отправителю заранее определять полный путь для пакетов. Это обеспечивает точное распределение трафика от графических процессоров по всем доступным путям сетевой фабрики, избегая перегрузок при масштабном обучении ИИ-моделей[17].[18]
Безопасность
В контексте динамической маршрутизации применяются специализированные механизмы для обеспечения безопасности сетей. Для защиты управляющего уровня (Control Plane) от перегрузок во время аномальной сетевой активности или атак используется механизм Control Plane Policing (CoPP), который ограничивает объём служебного трафика, направляемого на центральный процессор сетевого устройства. Для предотвращения подключения неавторизованных устройств и внедрения ложных маршрутов применяется аутентификация протоколов динамической маршрутизации[19].
Для защиты от распределённых атак типа «отказ в обслуживании» (DDoS) используются такие инструменты, как Remotely Triggered Black Hole (RTBH) и BGP FlowSpec. Механизм RTBH позволяет с помощью протокола BGP удалённо перенаправлять вредоносный трафик в «чёрную дыру» (например, на специальный интерфейс null0), где он отбрасывается[20]. В свою очередь, BGP FlowSpec обеспечивает более гибкую фильтрацию: он позволяет распространять детализированные правила блокировки на основе IP-адресов, портов и протоколов, отсекая только вредоносные пакеты и сохраняя доступность сервисов для легитимных пользователей[21].
Вне компьютерных сетей
Динамическая маршрутизация встречается и в биологических системах, например, в головном мозге при обработке сенсорных, мнемонических сигналов и принятии решений. Это направление изучается в нейронауках[22].
Примечания
Литература
- Mak, Terrence; Cheung, Peter Y. K.; Lam, Kai-Pui; Luk, Wayne (2011). “Adaptive Routing in Network-on-Chips Using a Dynamic-Programming Network”. IEEE Transactions on Industrial Electronics [англ.]. 58 (8). DOI:10.1109/TIE.2010.2081953.
- Lugones, Diego; Franco, Daniel; Luque, Emilio (2008). “Dynamic Routing Balancing On InfiniBand Networks” (PDF). Journal of Computer Science and Technology [англ.]. 8 (2). Архивировано из оригинала (PDF) 2015-05-06.
- On Self Adaptive Routing in Dynamic Environments — An Evaluation and Design Using a Simple, Probabilistic Scheme (англ.). Yale University. Архивировано 2 сентября 2011 года.
- Comparing Dynamic Routing Protocols (англ.). Network Computing.