Как работает маршрутизация
Как работает маршрутизация
Мы уже знаем, что роутер заглядывает в таблицу маршрутизации и решает, куда отправить пакет. Теперь разберём этот процесс детально: как именно роутер ищет маршрут, откуда берутся записи в таблице и как тысячи роутеров по всему миру договариваются о путях.
Пошаговый процесс маршрутизации
Когда пакет приходит на интерфейс роутера, происходит следующее:
- Роутер извлекает из заголовка IP-адрес получателя.
- Просматривает свою таблицу маршрутизации в поисках подходящей записи.
- Если найдено несколько совпадений — выбирает наиболее конкретное (с самой длинной маской).
- Если маршрут найден — отправляет пакет в указанный интерфейс.
- Если маршрут не найден — отбрасывает пакет и отправляет отправителю ICMP-сообщение об ошибке.
- Уменьшает TTL на 1. Если TTL стал 0 — пакет отбрасывается.
Весь процесс занимает микросекунды. Роутер не задумывается, не анализирует — он механически, по таблице, принимает решение.
Longest prefix match: правило выбора маршрута
Часто таблица содержит несколько записей, подходящих для одного IP. Роутер выбирает ту, у которой самая длинная маска (longest prefix match):
Пакет для: 192.168.1.42
Записи в таблице:
192.168.0.0/16 → интерфейс A
192.168.1.0/24 → интерфейс B
0.0.0.0/0 → интерфейс C (default)
Выбран: 192.168.1.0/24 → интерфейс B (24 бита > 16 бит > 0 бит)
Это похоже на адресную систему: если на конверте написано «Москва, ул. Тверская, д. 7, кв. 42», то сортировочный центр смотрит сначала на город, потом на улицу, потом на дом. Самый конкретный ориентир — самый полезный.
Статическая маршрутизация
Администратор вручную прописывает маршруты. Примерно так:
ip route 192.168.2.0 255.255.255.0 10.0.0.2
Это означает: «пакеты для сети 192.168.2.0/24 отправляй через роутер с адресом 10.0.0.2».
Плюсы: предсказуемо, никаких неожиданных изменений. Минусы: любое изменение топологии сети требует ручного обновления таблиц на всех затронутых роутерах. Для сети из 5 роутеров — терпимо. Для сети из 500 — кошмар.
Динамическая маршрутизация: роутеры договариваются сами
Динамические протоколы маршрутизации позволяют роутерам автоматически обмениваться информацией. Выделяют две большие категории:
IGP (Interior Gateway Protocols) — работают внутри одной организации, внутри одной «автономной системы»:
- RIP (Routing Information Protocol). Самый простой: роутер рассказывает соседям обо всех известных ему сетях. Каждый «прыжок» (hop) увеличивает метрику. Максимум 15 hop'ов — если больше, сеть считается недостижимой. Сегодня почти не используется, но полезен для понимания базового принципа.
- OSPF (Open Shortest Path First). Более умный протокол: роутеры строят полную карту сети и вычисляют кратчайший путь по алгоритму Дейкстры. Учитывает не просто число hop'ов, а пропускную способность каналов. Используется внутри большинства средних и крупных организаций.
EGP (Exterior Gateway Protocols) — работают между организациями, между разными «автономными системами»:
- BGP (Border Gateway Protocol). Единственный протокол, который работает в масштабах всего интернета. BGP не ищет кратчайший путь — он ищет путь, удовлетворяющий политикам (бизнес-правилам). Провайдер может сказать: «трафик от такого-то соседа не принимаю» или «через меня трафик в ту сеть не ходит». BGP — это дипломатия, а не математика.
Автономные системы (AS)
Весь интернет разбит на автономные системы (Autonomous Systems, AS) — крупные блоки сетей под единым административным управлением. У каждого AS есть уникальный номер (ASN), например, AS15169 принадлежит Google, AS32934 — Facebook.
Внутри AS маршрутизация работает по IGP (OSPF или аналог). Между AS — по BGP. Представь: внутри страны доставку почты организует национальная почтовая служба (IGP), а между странами работают международные соглашения (BGP).
Метрики: как роутер выбирает лучший путь
К одной и той же сети может быть несколько путей. Роутер выбирает лучший по метрике — числовой оценке «стоимости» маршрута:
- В RIP метрика — количество hop'ов.
- В OSPF метрика — обратно пропорциональна пропускной способности (быстрый канал «стоит» дешевле медленного).
- В BGP метрика — длина AS-пути (через сколько автономных систем надо пройти).
Если метрики равны, трафик может балансироваться между несколькими маршрутами.
Сходимость: почему интернет не ломается при авариях
Когда где-то обрывается кабель или падает роутер, соседние роутеры обнаруживают это (перестают получать keepalive-сообщения) и запускают пересчёт маршрутов. Процесс, в течение которого все роутеры приходят к новому согласованному состоянию, называется сходимость (convergence).
В небольшой сети на OSPF сходимость занимает секунды. В глобальном интернете на BGP — минуты. Именно поэтому при крупных авариях мы наблюдаем не мгновенное отключение сайта, а замедление и нестабильность в течение нескольких минут: роутеры по всему миру перестраивают маршруты.
Что происходит внутри роутера: резюме
Пакет пришёл на порт 1
│
├─ Извлечь IP получателя (например, 93.184.216.34)
├─ Найти в таблице маршрутизации самую конкретную запись
├─ Уменьшить TTL на 1
├─ Если TTL = 0 → отбросить
├─ Если маршрут не найден → отбросить + ICMP-ошибка
└─ Отправить пакет в найденный порт
Проверь себя
- Что выберет роутер: маршрут
/16или/24для одного и того же IP? - BGP ищет кратчайший путь или путь, соответствующий политикам?
- Что произойдёт, если в таблице маршрутизации вообще нет подходящей записи?
/24— правило longest prefix match. Чем длиннее маска, тем маршрут конкретнее и тем он приоритетнее.- BGP работает на основе политик, а не математического кратчайшего пути. Провайдер может запретить трафик через определённые сети по бизнес-причинам.
- Пакет будет отброшен, а отправителю уйдёт ICMP-сообщение «Destination Unreachable».
Что унести с урока
- Роутер выбирает маршрут по правилу longest prefix match — самый конкретный выигрывает.
- Статические маршруты прописывает администратор. Динамические — роутеры находят сами.
- IGP (OSPF) работает внутри организации, EGP (BGP) — между организациями и в масштабах интернета.
- BGP — протокол политик, а не математики. Он управляет трафиком между автономными системами.
- Сходимость — процесс восстановления согласованной картины маршрутов после аварии.
Теперь мы знаем, как пакеты находят путь. Но остаётся загадка: как домашняя сеть с одним публичным IP-адресом обслуживает десяток устройств одновременно? Ответ — NAT. В следующем уроке разберём этот гениальный «костыль», который продлил жизнь IPv4 на десятилетия.