Устройство на границе двух сетей
Маршрутизатор соединяет разные IP-сети и пересылает между ними пакеты. У него как минимум два интерфейса, и у каждого адрес из своей подсети. Всё, что нужно доставить внутри одной подсети, устройства делают сами через коммутатор. Как только адрес назначения находится в другой сети, пакет отдаётся маршрутизатору, работающему как выходная дверь.
Интернет представляет собой множество таких узлов, связанных друг с другом. Путь от вашего компьютера до сервера обычно проходит через десяток маршрутизаторов, и ни один из них не знает всей дороги целиком, только следующий шаг.
Как принимается решение о пересылке
Маршрутизатор получает кадр, снимает канальный заголовок и читает IP-адрес назначения. Затем он сверяет его с таблицей маршрутизации и выбирает запись с самым длинным совпадающим префиксом, то есть самую точную. Если ничего конкретного не нашлось, применяется маршрут по умолчанию. После этого TTL уменьшается на единицу, пересчитывается контрольная сумма заголовка, пакет упаковывается в новый кадр с MAC следующего узла и уходит в нужный интерфейс.
Отдельная деталь: если TTL достигает нуля, пакет уничтожается, а отправителю возвращается сообщение ICMP. Так устроена утилита traceroute.
Откуда берутся маршруты
Записи попадают в таблицу тремя путями. Непосредственно подключённые сети появляются автоматически. Статические маршруты задаёт администратор вручную, что удобно для небольших схем. Динамические маршруты собираются протоколами: внутри организации используют, например, OSPF, между провайдерами BGP. Протоколы обмениваются сведениями с соседями и перестраивают таблицу при обрывах и появлении новых каналов.
Благодаря этому сеть реагирует на сбои без участия человека, хотя пересчёт может занимать от долей секунды до минут в зависимости от протокола и настроек.
Домашний роутер и профессиональное оборудование
Домашний роутер представляет собой комбинацию: маршрутизатор с двумя интерфейсами, коммутатор на несколько портов, точка доступа Wi-Fi, DHCP-сервер и сетевой экран с трансляцией адресов. Для домашней сети таблица маршрутов у него крошечная: локальная подсеть и маршрут по умолчанию в сторону провайдера.
Магистральные маршрутизаторы провайдеров держат таблицы из сотен тысяч записей и обрабатывают трафик специализированными микросхемами. Принцип решения тот же, но масштаб и требования к производительности несопоставимы.
Как увидеть маршрутизатор в своей сети
Адрес вашего маршрутизатора известен как шлюз по умолчанию. В Windows его покажет команда ipconfig, в Linux ip route. Путь пакетов до любого узла можно проследить утилитой tracert или traceroute: каждая строка соответствует очередному маршрутизатору.
Частая ошибка состоит в том, что роутером называют любую коробку, раздающую интернет. Оптический терминал провайдера, модем и точка доступа могут выполнять только часть функций, а маршрутизацию делает лишь одно устройство в цепочке. Двойная маршрутизация, когда два устройства подряд делают трансляцию адресов, нередко мешает пробросу портов.
Что влияет на скорость маршрутизации
Большинство современных домашних роутеров пересылают пакеты аппаратным ускорителем, и для гигабитного канала этого хватает. Замедляться устройство начинает, когда включены функции, требующие участия центрального процессора: шифрование туннелей, глубокая проверка трафика, сложные правила QoS. Тогда скорость упирается в вычислительную мощность, а не в порты.
Если скорость на проводе заметно ниже заявленной, проверьте порт роутера и кабель, температуру корпуса и версию прошивки. Полезно сравнить измерения при подключении напрямую к оптическому терминалу или модему и через роутер: разница показывает, на каком участке теряется скорость.
В крупных сетях маршрутизаторы соединяют несколькими путями, чтобы отказ одного канала не разрывал связь. Протоколы маршрутизации замечают исчезновение соседа и пересчитывают таблицу. Иногда применяют протоколы виртуального шлюза, при которых два роутера делят один адрес: если основной перестаёт отвечать, второй подхватывает трафик.
Домашним пользователям такие схемы почти не нужны, но принцип объясняет, почему при обрыве магистрального кабеля интернет обычно продолжает работать, только с большей задержкой.
Если сеть кажется медленной, полезно понять, какое именно устройство считает пакеты. Проверьте загрузку процессора роутера в его панели и число активных соединений: при тысячах одновременных подключений таблица трансляции адресов может переполняться, и часть соединений начинает обрываться.