Маршрутизация
Маршрутизация — процесс выбора пути для передачи данных между устройствами в сети. Определяет, через какие узлы пройдёт пакет от отправителя к получателю.
Что это
Маршрутизация — это процесс определения оптимального пути для передачи пакетов данных от источника к получателю через одну или несколько сетей. Маршрутизатор (router) анализирует IP-адрес назначения каждого пакета и решает, на какой следующий узел его отправить. Это происходит миллиарды раз в секунду по всему интернету — каждый раз, когда вы открываете страницу, отправляете сообщение или смотрите видео.
Зачем это нужно
Интернет — это не единая сеть, а тысячи автономных систем (AS), соединённых между собой. Без маршрутизации пакет просто не знал бы, куда идти: он мог бы зациклиться, потеряться или попасть не туда. Маршрутизация решает три задачи: доставить данные по правильному адресу, выбрать наиболее эффективный путь (по скорости, стоимости или загруженности канала) и перестроиться, если один из узлов недоступен. Именно благодаря маршрутизации интернет устойчив к сбоям — идея, заложенная ещё в проекте ARPANET в 1969 году.
Как это работает
Маршрутизатор хранит таблицу маршрутов — список сетей и интерфейсов, через которые до них можно добраться. Когда приходит пакет, устройство смотрит на IP-адрес назначения, ищет совпадение в таблице по принципу «самого длинного префикса» и пересылает пакет дальше. Таблицы маршрутов формируются двумя способами: статически (администратор прописывает маршруты вручную) или динамически — с помощью протоколов маршрутизации, которые маршрутизаторы используют для обмена информацией друг с другом. Внутри одной автономной системы чаще используют OSPF или EIGRP, между автономными системами (то есть между провайдерами и крупными сетями) — протокол BGP, на котором фактически держится весь интернет.
Виды маршрутизации
- Статическая — маршруты задаются вручную. Подходит для небольших и предсказуемых сетей, не адаптируется к сбоям автоматически.
- Динамическая — маршрутизаторы обмениваются информацией о топологии сети и сами обновляют таблицы. Используется в крупных и постоянно меняющихся сетях.
- Маршрутизация по умолчанию (default route) — все пакеты, для которых нет явного маршрута, отправляются на один заданный шлюз. Типичный сценарий — домашний роутер отправляет весь трафик к провайдеру.
- Многопутевая (multipath) — трафик распределяется сразу по нескольким маршрутам для балансировки нагрузки или повышения отказоустойчивости.
Примеры
- Домашний Wi-Fi роутер маршрутизирует трафик между вашими устройствами и сетью провайдера — это самый простой пример маршрутизации в действии.
- Крупные облачные провайдеры (AWS, Google Cloud) используют BGP для анонсирования своих IP-префиксов в интернет, чтобы трафик со всего мира доходил до их дата-центров.
- CDN-сети (например, Cloudflare) применяют anycast-маршрутизацию: один IP-адрес анонсируется из десятков точек мира, и пользователь автоматически попадает на ближайший сервер.
- В веб-разработке термин «маршрутизация» используют для URL-роутинга: фреймворки вроде React Router или Express.js определяют, какой компонент или обработчик вызвать по конкретному адресу.
- Инцидент 2010 года: China Telecom случайно анонсировала через BGP около 50 000 чужих префиксов — трафик со всего мира на 18 минут пошёл через китайские серверы. Наглядный пример того, насколько критична корректная маршрутизация.
Связанные понятия
- IP-адрес — уникальный идентификатор устройства в сети, по которому и происходит маршрутизация.
- BGP (Border Gateway Protocol) — протокол маршрутизации между автономными системами, основа глобального интернета.
- OSPF (Open Shortest Path First) — протокол динамической маршрутизации внутри одной автономной системы.
- Таблица маршрутов (routing table) — база данных маршрутизатора с перечнем сетей и путей к ним.
- Шлюз по умолчанию (default gateway) — узел, куда отправляются пакеты, если подходящего маршрута в таблице нет.
- Коммутация (switching) — смежный процесс: передача данных внутри одной локальной сети по MAC-адресам, без участия IP.
Частые заблуждения
Маршрутизацию часто путают с коммутацией. Коммутатор (switch) работает на канальном уровне и передаёт кадры внутри одной сети по MAC-адресам — он не знает об IP и не строит маршруты. Маршрутизатор работает на сетевом уровне и соединяет разные сети. Ещё одно заблуждение: что маршрут всегда один и фиксирован. На практике пакеты одной сессии могут идти разными путями и приходить не по порядку — протоколы верхнего уровня (TCP) сами разбираются с восстановлением последовательности.