Принципы IP-маршрутизации: таблицы, метрики, алгоритм Longest Prefix Match и настройка OSPF | AdminWiki
Timeweb Cloud — сервера, Kubernetes, S3, Terraform. Лучшие цены IaaS.
Попробовать

Принципы IP-маршрутизации: таблицы, метрики, алгоритм Longest Prefix Match и настройка OSPF

04 апреля 2026 11 мин. чтения

IP-маршрутизация — это механизм, который управляет перемещением пакетов между сетевыми сегментами, от локальной сети до глобального интернета. Каждый маршрутизатор на пути пакета принимает решение о его дальнейшей судьбе, основываясь на собственной таблице маршрутизации — своеобразной «карте сети». В этой статье мы разберем, как устроена эта таблица, как маршрутизатор выбирает путь с помощью алгоритма Longest Prefix Match и чем отличаются статическая и динамическая маршрутизация. Практическая часть содержит пошаговое руководство по настройке динамической маршрутизации OSPF, основанное на проверенной лабораторной работе, и методику диагностики типовых проблем.

Как маршрутизатор принимает решение: таблица маршрутизации и её структура

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

Основные типы записей в таблице маршрутизации:

  • Directly Connected (C): Сети, непосредственно подключенные к интерфейсам маршрутизатора. Маршрутизатор знает о них автоматически, как только на интерфейсе настроен IP-адрес.
  • Static (S): Маршруты, добавленные вручную администратором с помощью команды, например, ip route. Они не меняются при изменении топологии сети.
  • Dynamic (O, D, R и др.): Маршруты, полученные автоматически от соседних маршрутизаторов по протоколам динамической маршрутизации, таким как OSPF (O), EIGRP (D) или RIP (R).

Рассмотрим пример таблицы маршрутизации с маршрутизатора R1 из лабораторной работы по OSPF:

R1# show ip route
Codes: C - connected, S - static, I - IGRP, R - RIP, M - mobile, B - BGP...

Gateway of last resort is not set

     10.0.0.0/8 is variably subnetted, 3 subnets, 2 masks
C       10.0.12.0/24 is directly connected, GigabitEthernet1/0/1
C       10.0.13.0/24 is directly connected, GigabitEthernet1/0/2
O       10.0.23.0/24 [110/2] via 10.0.12.2, 00:01:15, GigabitEthernet1/0/1
                     [110/2] via 10.0.13.3, 00:01:15, GigabitEthernet1/0/2

Разберем ключевые столбцы на примере строки с маршрутом OSPF (O 10.0.23.0/24 [110/2] via 10.0.12.2, ...):

  • Сетевой адрес/маска (10.0.23.0/24): Целевая сеть, которую можно достичь по этому маршруту.
  • Административная дистанция (110): Числовое значение, определяющее степень доверия к источнику маршрута. Указано в первых квадратных скобках.
  • Метрика (2): «Стоимость» пути до целевой сети в рамках одного протокола. Указана после слеша в квадратных скобках.
  • Next-Hop (10.0.12.2): IP-адрес следующего маршрутизатора, на который нужно отправить пакет.
  • Интерфейс выхода (GigabitEthernet1/0/1): Локальный интерфейс маршрутизатора, через который отправляется пакет к next-hop.

Административная дистанция и метрика: два уровня приоритета маршрута

Для выбора лучшего маршрута, особенно когда к одной сети ведут несколько путей от разных источников, маршрутизатор использует двухуровневую систему приоритетов.

Административная дистанция (AD, Administrative Distance) — это глобальный приоритет, который определяет надежность источника маршрута. Чем ниже AD, тем выше приоритет. Маршрутизатор всегда выбирает маршрут с наименьшей AD, если они ведут к одной и той же сети с одинаковой маской.

Источник маршрута Административная дистанция (по умолчанию в Cisco IOS)
Подключенный интерфейс (Connected) 0
Статический маршрут (Static) 1
Протокол EIGRP (внутренний) 90
Протокол OSPF 110
Протокол RIP 120

Пример: если к сети 192.168.1.0/24 существует статический маршрут (AD=1) и маршрут, полученный через OSPF (AD=110), маршрутизатор всегда выберет статический, так как он считается более надежным.

Метрика (Metric) — это «стоимость» пути, которая используется для выбора лучшего маршрута среди нескольких путей, полученных из одного источника (с одинаковой AD). Каждый протокол маршрутизации рассчитывает метрику по-своему:

  • OSPF: Использует стоимость (cost), которая обычно обратно пропорциональна пропускной способности (bandwidth) интерфейса. Суммируется по всем исходящим интерфейсам на пути к сети назначения. Чем меньше стоимость, тем лучше маршрут.
  • RIP: Использует счетчик прыжков (hop count). Каждый транзитный маршрутизатор увеличивает метрику на 1. Маршрут с наименьшим количеством прыжков считается лучшим.
  • EIGRP: Использует составную метрику, которая может учитывать задержку (delay), пропускную способность (bandwidth), надежность (reliability) и загрузку (load).

В примере из лабораторной работы маршрут OSPF к сети 10.0.23.0/24 имеет метрику 2. Это означает, что суммарная стоимость пути до этой сети равна 2.

Алгоритм Longest Prefix Match: как маршрутизатор выбирает самый точный путь

Когда маршрутизатор получает пакет, он смотрит на IP-адрес назначения и ищет в своей таблице маршрутизации самую точную инструкцию для его пересылки. Эту задачу решает алгоритм Longest Prefix Match (LPM) — «совпадение по самому длинному префиксу».

Алгоритм работает пошагово:

  1. Из заголовка IP-пакета извлекается адрес назначения (например, 192.168.1.5).
  2. Маршрутизатор последовательно «накладывает» маски подсети из своих табличных записей на этот адрес.
  3. Выбирается та запись, маска которой (префикс) является самой длинной и при этом совпадает с адресом назначения.

Простая аналогия: представьте, что вам нужно доставить письмо по адресу «ул. Ленина, д. 10, кв. 5». У вас есть два правила: «Все письма на ул. Ленина отправлять в почтовое отделение №1» (широкий префикс) и «Письма на ул. Ленина, д. 10 отправлять в почтовое отделение №2» (более длинный, конкретный префикс). Алгоритм LPM выберет второе, более точное правило.

Рассмотрим практический пример. Предположим, в таблице маршрутизации есть две записи:

S    192.168.0.0/16 [1/0] via 10.1.1.1
C    192.168.1.0/24 is directly connected, GigabitEthernet0/1

Для пакета с адресом назначения 192.168.1.5:

  • Первая запись (192.168.0.0/16): маска /16 (255.255.0.0). Адрес 192.168.1.5 попадает в этот диапазон (192.168.0.0 – 192.168.255.255).
  • Вторая запись (192.168.1.0/24): маска /24 (255.255.255.0). Адрес 192.168.1.5 также попадает в этот более узкий диапазон (192.168.1.0 – 192.168.1.255).

Поскольку маска /24 длиннее (более специфична), чем /16, маршрутизатор выберет вторую запись и отправит пакет через непосредственно подключенный интерфейс GigabitEthernet0/1, а не на шлюз 10.1.1.1. Этот принцип лежит в основе сегментации сетей (VLAN) и точного управления трафиком. Для более глубокого анализа конкретных проблем с выбором пути используйте готовые методики из практического руководства по диагностике сетевой маршрутизации.

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

Выбор между статической и динамической маршрутизацией — ключевое решение при проектировании сети, которое влияет на её масштабируемость, отказоустойчивость и сложность администрирования.

Параметр Статическая маршрутизация Динамическая маршрутизация (на примере OSPF)
Сложность администрирования Высокая. Каждый маршрут добавляется вручную на каждом маршрутизаторе. При изменении топологии требуется ручное обновление всех устройств. Низкая после начальной настройки. Маршрутизаторы автоматически обмениваются информацией и адаптируются к изменениям.
Масштабируемость Низкая. Подходит для сетей с 2-5 маршрутизаторами. В больших сетях количество ручных конфигураций становится неуправляемым. Высокая. Протоколы вроде OSPF с иерархической структурой областей (areas) позволяют строить сети любого размера.
Устойчивость к сбоям Низкая. При отказе линка статический маршрут становится нерабочим, пока администратор не пропишет новый. Высокая. При отказе линка протокол за секунды вычисляет альтернативный путь и обновляет таблицы маршрутизации на всех устройствах (сходимость сети).
Контроль над трафиком Полный. Администратор явно указывает путь для каждого пакета. Опосредованный. Путь выбирается на основе метрик протокола. Для тонкого контроля требуется дополнительная настройка (например, изменение стоимости интерфейсов).
Загрузка оборудования Минимальная. Нет служебного трафика между маршрутизаторами. Зависит от протокола. Требует CPU и памяти для вычислений и обмена служебными сообщениями (hello, LSA в OSPF).

Рекомендации по применению:

  • Используйте статическую маршрутизацию для:
        • Маршрута по умолчанию (default route) в небольших офисах, ведущего в интернет.
        • Фиксированных каналов связи (например, точка-точка между двумя дата-центрами), где альтернативных путей нет.
        • Обеспечения безопасности, когда нужно жестко задать путь трафика.
  • Используйте динамическую маршрутизацию (OSPF) для:
        • Корпоративных сетей с более чем тремя маршрутизаторами.
        • Сетей с избыточными связями (redundant links), где требуется быстрая сходимость при сбоях.
        • Сложных инфраструктур, где ручное управление маршрутами неэффективно.

Важно помнить про административную дистанцию: статический маршрут (AD=1) всегда будет предпочтительнее динамического OSPF (AD=110) к одной и той же сети. Это можно использовать для создания резервного пути: основной маршрут настраивается через OSPF, а запасной — статический с более высокой метрикой или с использованием отслеживания линка (tracking).

Практическая настройка динамической маршрутизации OSPF: пошаговое руководство

Рассмотрим настройку OSPF на примере лабораторной работы с тремя маршрутизаторами (R1, R2, R3) и виртуальными ПК (VPC). Цель — обеспечить полную связность между всеми узлами.

Шаг 1: Базовая настройка устройств
На каждом маршрутизаторе настраиваем имена и IP-адреса на интерфейсах. Пример для R1:

! Назначение имени устройству
hostname R1

! Настройка интерфейса к R2
interface GigabitEthernet1/0/1
 ip address 10.0.12.1 255.255.255.0
 no shutdown

! Настройка интерфейса к R3
interface GigabitEthernet1/0/2
 ip address 10.0.13.1 255.255.255.0
 no shutdown

! Настройка интерфейса к локальной сети (VPC1)
interface GigabitEthernet1/0/3
 ip address 192.168.1.1 255.255.255.0
 no shutdown

На виртуальном ПК VPC1 настраиваем IP-адрес и шлюз по умолчанию (в эмуляторе или через команды):

ip 192.168.1.10/24 192.168.1.1

Шаг 2: Настройка процесса OSPF
Создаем процесс OSPF, назначаем Router-ID и объявляем сети, которые будут участвовать в обмене маршрутами.

! Вход в режим конфигурации OSPF (процесс 250)
router ospf 250

! Ручное назначение Router-ID для стабильности
 router-id 1.1.1.1

! Объявление сети 10.0.12.0/24 в области (area) 0
 network 10.0.12.0 0.0.0.255 area 0.0.0.0

! Объявление сети 10.0.13.0/24 в области 0
 network 10.0.13.0 0.0.0.255 area 0.0.0.0

! Объявление сети 192.168.1.0/24 в области 0
 network 192.168.1.0 0.0.0.255 area 0.0.0.0

Примечание: В команде network используется wildcard-mask (обратная маска). 0.0.0.255 соответствует префиксу /24.

Шаг 3: Конфигурация пассивных интерфейсов
Интерфейсы, подключенные к конечным пользователям (например, к VPC1), не должны отправлять OSPF-сообщения (hello-пакеты), так как там нет других маршрутизаторов. Это экономит ресурсы и повышает безопасность.

router ospf 250
 passive-interface GigabitEthernet1/0/3

Аналогичные настройки выполняются на R2 и R3 с соответствующими IP-адресами и Router-ID (2.2.2.2 и 3.3.3.3).

Анализ результатов: проверка таблиц маршрутизации и связности

После настройки необходимо убедиться, что OSPF работает корректно.

1. Проверка соседств OSPF: Команда показывает, с какими маршрутизаторами установлено соседство.

R1# show ip ospf neighbor

Neighbor ID     Pri   State           Dead Time   Address         Interface
2.2.2.2           1   FULL/DR         00:00:38    10.0.12.2       GigabitEthernet1/0/1
3.3.3.3           1   FULL/DR         00:00:37    10.0.13.3       GigabitEthernet1/0/2

Состояние FULL указывает на успешный обмен базами данных о топологии сети.

2. Проверка таблицы маршрутизации: Убедимся, что маршруты к удаленным сетям появились с кодом O (OSPF).

R1# show ip route ospf
...
O    192.168.2.0/24 [110/2] via 10.0.12.2, 00:05:21, GigabitEthernet1/0/1
O    192.168.3.0/24 [110/2] via 10.0.13.3, 00:05:21, GigabitEthernet1/0/2

Здесь видно, что R1 узнал через OSPF о сетях 192.168.2.0/24 (за VPC2 на R2) и 192.168.3.0/24 (за VPC3 на R3). Метрика до каждой равна 2.

3. Итоговая проверка связности: Выполняем ping с конечного устройства VPC1 до VPC3, чтобы проверить сквозную маршрутизацию через R1 и R3.

VPC1> ping 192.168.3.10
84 bytes from 192.168.3.10 icmp_seq=1 ttl=61 time=2.100 ms

Успешный ping подтверждает, что маршрутизация настроена правильно. Данный принцип настройки динамической маршрутизации также применим и в других средах, например, для организации сетевой инфраструктуры в системах хранения, как описано в руководстве по настройке маршрутизации между VLAN в TrueNAS Scale.

Важное предупреждение: Синтаксис команд может незначительно отличаться в разных версиях Cisco IOS, IOS XE, а также на оборудовании других вендоров (Juniper Junos, MikroTik RouterOS). Всегда проверяйте актуальный синтаксис для вашего конкретного оборудования.

Диагностика проблем маршрутизации: от теории к практике

Понимание принципов маршрутизации позволяет не только настраивать, но и быстро диагностировать проблемы. Рассмотрим типовой сценарий: ping с VPC1 (192.168.1.10) на VPC3 (192.168.3.10) не проходит.

Методика диагностики:

  1. Проверить локальную связность и шлюз на источнике.
    На VPC1 выполнить show ip и убедиться, что шлюз по умолчанию (192.168.1.1) прописан и доступен (ping 192.168.1.1). Если пинг до шлюза не идет, проблема в локальном сегменте (кабель, настройки VPC, интерфейс маршрутизатора).
  2. Проверить таблицу маршрутизации на первом маршрутизаторе (R1).
    На R1 выполнить show ip route 192.168.3.10. Команда покажет, какой именно маршрут будет использован для этого адреса.
    Возможные проблемы:
    • Маршрут отсутствует. Значит, OSPF не распространил информацию о сети 192.168.3.0/24. Нужно проверить настройки OSPF на R3 и состояние линка между R1 и R3.
    • Выбран неверный маршрут. Например, если ошибочно настроен статический маршрут с меньшей AD, который ведет в никуда. Проверьте AD и метрику выбранного маршрута.
  3. Проверить наличие обратного пути.
    Маршрутизация должна работать в обе стороны. На R3 нужно проверить маршрут до сети 192.168.1.0/24 (show ip route 192.168.1.10). Частая ошибка — асимметричная маршрутизация, когда пакет идет одним путем, а ответ возвращается другим, который может быть заблокирован.
  4. Использовать поэтапную трассировку.
    На VPC1 или R1 выполнить traceroute 192.168.3.10. Утилита покажет путь пакета и укажет, на каком прыжке происходит обрыв. Если трассировка обрывается на R1, проблема в его таблице маршрутизации. Если проходит до R3, но не до VPC3, проблема может быть в настройках шлюза на VPC3 или правилах межсетевого экрана на R3. Подробные методы диагностики с использованием traceroute и mtr описаны в отдельном практическом руководстве.

Пример кейса: После настройки OSPF связности нет. Проверка таблицы маршрутизации на R1 показывает, что маршрут к сети 192.168.3.0/24 отсутствует. Причина: на интерфейсе R3, подключенном к R1, забыли выполнить команду no shutdown, или на R3 не включена сеть 10.0.13.0 в процесс OSPF. Диагностика через show ip ospf neighbor на R1 покажет отсутствие соседства с R3.

Систематическое применение этой методики, основанной на знании таблиц маршрутизации, AD, метрик и алгоритма LPM, позволяет эффективно находить и устранять подавляющее большинство проблем в сетевой инфраструктуре. Для построения более сложных сценариев, таких как принудительное направление трафика определенных приложений через выделенные каналы, изучите руководство по настройке Policy-Based Routing (PBR) в Linux.

Поделиться:
Сохранить гайд? В закладки браузера