Компьютерные сети

Маршрутизаторы (Router)

При открытии google.com запрос проходит через 10-20 роутеров по всему миру за миллисекунды. Каждый роутер - перекрёсток, который мгновенно решает, куда направить пакет. Как это работает?

  • **Traceroute:** Диагностика «где тормозит» сеть
  • **BGP hijacking:** Атака через подмену маршрутов (как угнали YouTube в 2008)
  • **Отказоустойчивость:** Если роутер падает, трафик автоматически идёт другим путём

Предварительные знания

  • Private and Public Addresses

Что делает роутер

**Роутер (маршрутизатор)** - устройство L3, которое соединяет разные сети и принимает решения о пересылке пакетов на основе IP-адресов. Коммутатор работает внутри сети, роутер - между сетями.

Роутер имеет **несколько интерфейсов**, каждый в своей сети. Пакет приходит на один интерфейс, роутер смотрит destination IP и отправляет через другой интерфейс ближе к цели.

**Ключевое отличие:** коммутатор пересылает фреймы по MAC внутри сети. Роутер пересылает пакеты по IP между сетями. Домашний «роутер» - обычно роутер + коммутатор + Wi-Fi + NAT в одном корпусе.

Какой уровень OSI использует роутер для принятия решений?

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

**Таблица маршрутизации** - база данных роутера, которая связывает сети назначения с интерфейсами или next-hop адресами. Роутер ищет наиболее специфичный маршрут для каждого пакета.

**Longest prefix match:** если пакет подходит под несколько маршрутов, выбирается самый специфичный. 192.168.1.50 подойдёт и под /24 и под /0, но выберется /24 (более длинный префикс).

Маршруты бывают **статические** (настроенные вручную) и **динамические** (изученные через протоколы OSPF, BGP, RIP). В домашней сети обычно достаточно default route.

Пакет для 192.168.1.50. Есть маршруты: 192.168.0.0/16 и 192.168.1.0/24. Какой выберется?

Default Gateway

**Default Gateway** - роутер, которому устройство отправляет пакеты, если не знает маршрута к назначению. Это «выход» из локальной сети. Записывается как маршрут 0.0.0.0/0.

**Нет gateway = нет интернета.** Если DHCP не выдал gateway или он неправильный - устройство сможет общаться только внутри своей сети.

Когда устройство использует default gateway?

Хопы и путь пакета

**Hop** (прыжок) - переход пакета через один роутер. Путь от ПК до сервера может включать 10-20 хопов. На каждом роутер принимает независимое решение о следующем шаге.

**TTL (Time To Live)** - счётчик хопов в IP-заголовке. Каждый роутер уменьшает TTL на 1. Когда TTL = 0, пакет отбрасывается. Это защита от бесконечных петель.

Traceroute использует TTL: отправляет пакеты с TTL=1, 2, 3... Каждый роутер, где TTL истекает, отправляет ICMP "Time Exceeded" - так мы узнаём весь путь.

Пакет всегда идёт одним и тем же маршрутом

Маршрут может меняться в зависимости от нагрузки, отказов, политик

Интернет динамичен. Роутеры обмениваются информацией через BGP/OSPF и перестраивают маршруты. Два последовательных пакета могут пойти разными путями.

Что происходит, когда TTL пакета достигает 0?

Ключевые идеи

  • **Роутер** соединяет сети и принимает решения по IP (L3)
  • **Таблица маршрутизации** связывает сети с интерфейсами/next-hop
  • **Longest prefix match** - выбирается самый специфичный маршрут
  • **Default gateway** - выход из локальной сети (0.0.0.0/0)
  • **TTL** защищает от петель, используется в traceroute

Связанные темы

Маршрутизация - сердце интернета:

  • ICMP и Ping — Диагностика маршрутов и доступности
  • ARP — Как найти MAC gateway для отправки пакета
  • Статическая маршрутизация — Ручная настройка маршрутов

Вопросы для размышления

  • Почему traceroute иногда показывает * * * для некоторых хопов?
  • Что произойдёт, если удалить default route с ПК?
  • Почему latency до первого хопа обычно <1ms, а до Google - 20-50ms?

Связанные уроки

  • ds-13-trie
Маршрутизаторы (Router)

0

1

Войти