Открыть сервис

Таблица маршрутизации

Таблица маршрутизации — это структура данных, используемая сетевыми устройствами (маршрутизаторами, коммутаторами третьего уровня, хостами) для определения оптимального пути передачи пакетов данных между узлами компьютерной сети. Таблица содержит набор записей (маршрутов), каждая из которых сопоставляет адрес назначения или префикс сети с информацией о следующем узле (шлюзе) и интерфейсе, через который следует отправить пакет. Является ключевым элементом реализации протоколов маршрутизации и основой функционирования сетей с коммутацией пакетов.

История

Концепция таблиц маршрутизации возникла с развитием первых пакетных сетей в 1960-х годах. В ранних сетях ARPANET использовались статические таблицы, которые задавались администраторами вручную. С ростом масштабов сетей возникла необходимость в динамическом обновлении маршрутов, что привело к созданию протоколов маршрутизации (RIP, OSPF, BGP) в 1980-х годах. В 1990-х годах с развитием интернета таблицы маршрутизации стали включать сотни тысяч записей, что потребовало оптимизации алгоритмов поиска (например, использование префиксных деревьев). Современные таблицы маршрутизации в ядре интернета содержат более 1 миллиона маршрутов.

Структура и содержимое

Каждая запись (маршрут) в таблице маршрутизации обычно включает следующие поля:

  • Сеть назначения (Destination)IP-адрес сети или хоста, часто задаваемый в виде префикса (например, 192.168.1.0/24).
  • Маска подсети (Netmask) — определяет, какая часть адреса относится к сети, а какая — к хосту.
  • Шлюз (Gateway) — IP-адрес следующего узла, на который следует переслать пакет (может быть 0.0.0.0 для прямого подключения).
  • Интерфейс (Interface) — сетевой интерфейс, через который отправляется пакет (например, eth0, wlan0).
  • Метрика (Metric) — числовое значение, определяющее стоимость маршрута (например, количество хопов, пропускная способность, задержка). Используется для выбора наилучшего пути при наличии нескольких маршрутов к одной сети.
  • Тип маршрута — может быть статическим (задан администратором), динамическим (получен от протокола маршрутизации) или по умолчанию (default route).

Пример записи (Linux)

`` Destination Gateway Genmask Flags Metric Ref Use Iface 0.0.0.0 192.168.1.1 0.0.0.0 UG 100 0 0 eth0 192.168.1.0 0.0.0.0 255.255.255.0 U 100 0 0 eth0 ``

Здесь первая строка — маршрут по умолчанию (все адреса), вторая — локальная сеть 192.168.1.0/24.

Виды маршрутов

Статические маршруты

Настраиваются администратором вручную. Используются в небольших сетях с фиксированной топологией или для задания особых путей (например, к изолированным сетям). Преимущества: предсказуемость, отсутствие накладных расходов на протоколы. Недостатки: не адаптируются к изменениям сети, требуют ручного обновления.

Динамические маршруты

Автоматически обновляются протоколами маршрутизации. Протоколы делятся на два основных типа:

  • Внутренние шлюзовые протоколы (IGP) — используются внутри одной автономной системы (AS). Примеры: RIP (на основе вектора расстояния), OSPF (на основе состояния каналов), EIGRP (гибридный, проприетарный Cisco).
  • Внешние шлюзовые протоколы (EGP) — применяются между автономными системами. Основной протокол — BGP (Border Gateway Protocol), который является основой маршрутизации в интернете.

Маршрут по умолчанию (Default route)

Специальная запись, которая соответствует всем адресам, не имеющим явного маршрута в таблице. Обычно обозначается как 0.0.0.0/0 (IPv4) или ::/0 (IPv6). Используется для направления трафика в шлюз по умолчанию (например, на маршрутизатор провайдера).

Принцип работы

При получении пакета с IP-адресом назначения устройство выполняет поиск в таблице маршрутизации:

  1. Определяется наиболее специфичный маршрут, то есть с наибольшей длиной префикса (наибольшим количеством бит в маске). Например, для адреса 192.168.1.100 маршрут 192.168.1.0/24 будет выбран раньше, чем 0.0.0.0/0.
  2. Если найдено несколько маршрутов с одинаковой длиной префикса, выбирается маршрут с наименьшей метрикой.
  3. Если маршрут не найден, пакет отбрасывается (или отправляется по маршруту по умолчанию, если он задан).

Процесс поиска оптимизируется с помощью структуры данных trie (префиксное дерево) или radix tree, что позволяет выполнять поиск за O(1) или O(log N) в зависимости от реализации.

Управление таблицей маршрутизации

В операционных системах

  • Linux/Unix: команды route (устаревшая), ip route (из пакета iproute2). Пример: ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0.
  • Windows: команда route print для просмотра, route add для добавления.
  • Cisco IOS: команды ip route (статический маршрут) и show ip route для просмотра.

В маршрутизаторах

Таблица маршрутизации хранится в оперативной памяти устройства. При использовании динамических протоколов она обновляется в реальном времени при изменении топологии сети. Для повышения производительности в крупных сетях применяются аппаратные ускорители (TCAM — Ternary Content-Addressable Memory), позволяющие выполнять параллельный поиск по всем записям.

Проблемы и ограничения

  • Размер таблицы: В глобальной сети интернет таблица BGP содержит более 1 миллиона префиксов, что требует значительных вычислительных ресурсов и памяти.
  • Конвергенция: Время, необходимое для обновления таблиц после изменения топологии, может достигать десятков секунд в протоколах типа RIP.
  • Петли маршрутизации: Возникают при некорректной настройке или медленной конвергенции, что приводит к бесконечной передаче пакетов. Для предотвращения используются механизмы TTL (Time to Live) и split horizon.
  • Атаки на маршрутизацию: Например, BGP-хайекинг (перехват префиксов) или подмена маршрутов через протоколы IGP. Для защиты применяются фильтрация, проверка подлинности (RPKI, BGPsec) и аутентификация.

Применение

  • Локальные сети: Маршрутизация между подсетями в офисах, дата-центрах.
  • Интернет: Глобальная маршрутизация между автономными системами с помощью BGP.
  • Виртуальные сети: В облачных платформах (AWS, Azure, Яндекс.Облако) таблицы маршрутизации используются для управления трафиком между виртуальными машинами и VPN-подключениями.
  • Мобильные сети: В сетях 4G/5G таблицы маршрутизации применяются в шлюзах (SGW, PGW) для направления трафика абонентов.

Интересные факты

  • В 2020 году в таблице BGP было зафиксировано около 900 000 префиксов, а к 2024 году их число превысило 1 000 000.
  • Некоторые маршрутизаторы поддерживают до 1 миллиона записей в таблице маршрутизации, используя TCAM-память.
  • Ошибка в конфигурации BGP в 2008 году привела к тому, что трафик YouTube был перенаправлен через Пакистан, что вызвало глобальный сбой доступа к сервису на несколько часов.

Источники

  • Кузнецов А. В. «Сети и телекоммуникации. Маршрутизация в IP-сетях». — М.: Горячая линия – Телеком, 2020.
  • Стивенс Р. «TCP/IP. Протоколы, маршрутизация, программирование». — СПб.: Питер, 2019.
  • Документация Cisco: «IP Routing Configuration Guide» (Cisco IOS).
  • RFC 4271 — «A Border Gateway Protocol 4 (BGP-4)».
  • RFC 2328 — «OSPF Version 2».

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →