Что такое маршрутизация?
Маршрутизация — процесс определения пути, по которому пакет данных должен пройти от источника к получателю через одну или несколько сетей. Устройство, выполняющее маршрутизацию, называется маршрутизатором (router).
Маршрутизатор работает на 3-м уровне модели OSI (Сетевой уровень) и оперирует IP-адресами. Когда пакет приходит на интерфейс маршрутизатора, тот просматривает таблицу маршрутизации, выбирает наилучший маршрут и пересылает пакет на следующий узел (next-hop).
- Next-hop — IP-адрес следующего маршрутизатора на пути к цели.
- Метрика — числовой показатель предпочтительности маршрута.
- Administrative Distance (AD) — степень доверия к источнику маршрута.
Статическая vs Динамическая маршрутизация
Статическая маршрутизация
- Маршруты задаются вручную администратором
- Не меняется автоматически при изменении топологии
- Нет протокольных накладных расходов
- Полный контроль над путями
- Подходит для небольших сетей, граничных маршрутизаторов
- AD = 1 (Cisco)
Динамическая маршрутизация
- Маршруты вычисляются протоколами автоматически
- Адаптируется к изменениям топологии
- Протоколы: OSPF, EIGRP, BGP, RIP
- Требует ресурсов CPU и полосы пропускания
- Подходит для крупных, сложных сетей
- AD = 90–120 (зависит от протокола)
| Критерий | Статическая | Динамическая |
|---|---|---|
| Настройка | Вручную | Автоматически |
| Масштабируемость | Низкая | Высокая |
| Реакция на сбой | Нет | Автоматическая |
| Безопасность | Выше (нет анонсов) | Требует защиты протокола |
| Нагрузка на сеть | Нулевая | Зависит от протокола |
| Типичное применение | Stub-сети, last-resort | Корпоративные WAN/LAN |
IP-адресация и субнетинг (IPv4)
IPv4-адрес — 32-битное число, записываемое в виде четырёх октетов (0–255), разделённых точками.
Например: 192.168.10.5. Вместе с маской подсети он определяет, к какой сети принадлежит хост.
Маска подсети и CIDR
Маска подсети указывает, сколько бит адреса относится к сети, а сколько — к хосту.
CIDR-нотация записывает это как /N, где N — количество единичных битов маски.
| CIDR | Маска | Хостов | Пример сети | Диапазон хостов |
|---|---|---|---|---|
/8 | 255.0.0.0 | 16,777,214 | 10.0.0.0/8 | 10.0.0.1 – 10.255.255.254 |
/16 | 255.255.0.0 | 65,534 | 172.16.0.0/16 | 172.16.0.1 – 172.16.255.254 |
/24 | 255.255.255.0 | 254 | 192.168.1.0/24 | 192.168.1.1 – 192.168.1.254 |
/25 | 255.255.255.128 | 126 | 192.168.1.0/25 | 192.168.1.1 – 192.168.1.126 |
/26 | 255.255.255.192 | 62 | 192.168.1.0/26 | 192.168.1.1 – 192.168.1.62 |
/30 | 255.255.255.252 | 2 | 10.0.0.0/30 | 10.0.0.1 – 10.0.0.2 |
Вычисление адреса сети
Адрес сети = IP-адрес AND Маска подсети (побитовое И):
Частные (RFC 1918) адресные пространства
| Диапазон | CIDR | Количество адресов | Применение |
|---|---|---|---|
| 10.0.0.0 – 10.255.255.255 | /8 | ~16.7 млн | Крупные корп. сети |
| 172.16.0.0 – 172.31.255.255 | /12 | ~1 млн | Средние сети |
| 192.168.0.0 – 192.168.255.255 | /16 | ~65 тыс | Домашние/офисные сети |
Таблица маршрутизации
Таблица маршрутизации (Routing Table / FIB — Forwarding Information Base) хранится в каждом маршрутизаторе и содержит список известных сетей с информацией о том, как до них добраться.
Каждая запись включает:
- Сеть назначения — целевой IP-диапазон (prefix + mask)
- Next-hop — адрес следующего маршрутизатора или
- Интерфейс — исходящий сетевой интерфейс
- Метрика — стоимость маршрута (меньше = лучше)
- Administrative Distance — доверие к источнику
Принятие решений о пересылке пакетов
Когда маршрутизатор получает пакет, он выполняет следующий алгоритм:
- Извлекает IP-адрес назначения из заголовка пакета.
- Ищет совпадение в таблице маршрутизации по принципу Longest Prefix Match (LPM) — выбирается наиболее конкретный (длинный) совпадающий префикс.
- Если найдено несколько маршрутов с одинаковой длиной префикса — выбирается маршрут с наименьшим Administrative Distance, затем с наименьшей метрикой.
- Если маршрут не найден — пакет отбрасывается (ICMP "Destination Unreachable" отправляется источнику).
- Маршрутизатор уменьшает TTL на 1. Если TTL = 0 — пакет отбрасывается (ICMP "Time Exceeded").
- Пересылает пакет на интерфейс или next-hop, найденный в таблице.
Longest Prefix Match — пример
Лабораторная работа: Статические маршруты на Linux
ip route из пакета iproute2.
Устаревшая альтернатива — route из net-tools.
Добавление маршрута
Просмотр и удаление
Постоянные маршруты (сохранение после перезагрузки)
Включение IP-форвардинга (превращение Linux в маршрутизатор)
Лабораторная работа: Статические маршруты на Cisco IOS
Базовый синтаксис команды ip route
Проверка и диагностика
Типовая конфигурация: три маршрутизатора
Визуализация: путь пакета от источника к назначению
Рассмотрим путь пакета от хоста PC-A (192.168.10.5) к хосту PC-B (192.168.30.7) через три маршрутизатора.
10.0.12.1
10.0.23.1
192.168.30.1
Пошаговый разбор
- PC-A → R1: PC-A определяет, что 192.168.30.7 не в его подсети (/24). Отправляет пакет шлюзу по умолчанию — R1 (192.168.10.1). На уровне L2 используется MAC-адрес R1 (ARP).
-
R1 принимает решение: Ищет 192.168.30.7 в таблице маршрутизации.
Находит маршрут
192.168.30.0/24 via 10.0.12.2. Уменьшает TTL. Пересылает на R2. -
R2 принимает решение: Находит маршрут
192.168.30.0/24 via 10.0.23.2. Уменьшает TTL. Пересылает на R3. - R3 принимает решение: Находит сеть 192.168.30.0/24 как напрямую подключённую (connected) через интерфейс GE0/0. Пересылает в локальную сеть.
- R3 → PC-B: На уровне L2 R3 делает ARP-запрос для 192.168.30.7, получает MAC-адрес PC-B и доставляет пакет.
Проверка пути командами
Где захватывать трафик: точки перехвата
Понимание топологии сети критично для эффективного захвата трафика. Место захвата определяет, какой трафик вы увидите.
До маршрутизатора (входной интерфейс)
Видите трафик до применения ACL и маршрутизации. Полезно для анализа входящих атак.
tcpdump -i eth0 -n
После маршрутизатора (исходящий интерфейс)
Видите трафик после маршрутизации. Полезно для проверки правильности пересылки.
tcpdump -i eth1 -n
На интерфейсе между двумя сетями
Позволяет видеть весь межсетевой трафик и обнаруживать аномалии маршрутизации.
tcpdump -i eth0 net 10.0.0.0/8
Зеркалирование (SPAN/Mirror Port)
На коммутаторе настраивается SPAN-порт для копирования всего трафика на анализатор.
monitor session 1 source int Gi0/1
monitor session 1 destination int Gi0/24
-i any для захвата
со всех интерфейсов сразу (трафик будет помечен именем интерфейса).