Маршрутизатор: принципы работы и устройство¶
Маршрутизатор (роутер) — сетевое устройство (или программное обеспечение), предназначенное для пересылки пакетов данных между различными компьютерными сетями на основе информации о маршрутах. Работает на третьем уровне модели OSI (сетевом уровне), в отличие от коммутаторов и хабов, которые оперируют на канальном уровне. Основная задача роутера — определить, куда направить полученный пакет, и передать его по оптимальному пути к конечному получателю.
¶Устройство и архитектура
Современный бытовой роутер объединяет в себе несколько функциональных блоков:
- Процессор (CPU) — управляет обработкой пакетов, выполнением протоколов маршрутизации и обслуживанием интерфейсов.
- Оперативная память (RAM) — хранит таблицы маршрутизации, ARP-кэш, буферы пакетов и загруженное прошивкой программное обеспечение.
- Постоянная память (Flash) — содержит прошивку (прошивку операционной системы, часто на основе Linux или VxWorks).
- Сетевые интерфейсы — физические порты (Ethernet, оптические SFP) и беспроводные модули Wi-Fi.
- Коммутационная матрица — внутренняя шина, соединяющая интерфейсы и обеспечивающая пересылку пакетов между ними.
В корпоративных устройствах (например, линейки Cisco ISR, MikroTik RouterBOARD, Huawei AR) архитектура усложняется: используются отдельные процессоры для плоскости управления и плоскости пересылки, аппаратные ускорители криптографии и модули расширения.
¶Принцип работы
¶Приём и анализ пакета
Когда роутер получает пакет с одного из своих интерфейсов, он выполняет следующие действия:
- Проверка целостности — контрольная сумма заголовка (в IPv4) проверяется на корректность. Повреждённые пакеты отбрасываются.
- Уменьшение TTL — поле Time To Live (время жизни) в заголовке IP-пакета уменьшается на единицу. Если TTL становится равным нулю, пакет отбрасывается, а отправителю отправляется сообщение ICMP Time Exceeded. Это предотвращает бесконечное циркулирование пакетов в сети при наличии петель маршрутизации.
- Определение адреса назначения — роутер извлекает из заголовка IP-адрес получателя.
¶Поиск маршрута
На основе адреса назначения роутер обращается к таблице маршрутизации — списку известных сетей и соответствующих им следующих прыжков (next hop) и выходных интерфейсов. Таблица формируется несколькими способами:
- Статическая маршрутизация — маршруты вносятся администратором вручную. Проста в настройке, но не адаптируется к изменениям топологии.
- Динамическая маршрутизация — маршруты обучаются автоматически с помощью протоколов: RIP (Distance Vector), OSPF и IS-IS (Link State), BGP (Path Vector, используется в магистральных сетях и интернете).
- Запасные (резервные) маршруты — используются при отказе основного канала.
Если подходящего маршрута нет, пакет отбрасывается, а отправителю отправляется ICMP-сообщение Destination Unreachable.
¶Пересылка
Определив выходной интерфейс и адрес следующего прыжка, роутер инкрементирует TTL, пересчитывает контрольную сумму заголовка и передаёт пакет на соответствующий интерфейс. Для передачи по локальной сети роутер обращается к ARP-кэшу, чтобы сопоставить IP-адрес следующего прыжка с MAC-адресом. Если записи нет, отправляется ARP-запрос.
¶Таблица маршрутизации
Типичная таблица маршрутизации (вывод команды ip route или show ip route) содержит записи вида:
| Сеть назначения | Маска подсети | Следующий прыжок | Интерфейс | Метрика |
|---|---|---|---|---|
| 192.168.1.0 | 255.255.255.0 | — | eth0 | 0 |
| 10.0.0.0 | 255.0.0.0 | 192.168.1.1 | eth0 | 100 |
| 0.0.0.0 | 0.0.0.0 | 203.0.113.1 | eth1 | 20 |
При выборе маршрута используется принцип наиболее длинного совпадения префикса (Longest Prefix Match): если подходит несколько маршрутов, выбирается тот, у которого маска подсети длиннее (то есть сеть более специфична).
¶Дополнительные функции
Помимо базовой маршрутизации, современные роутеры выполняют:
- NAT (Network Address Translation) — трансляцию внутренних IP-адресов в публичный адрес и обратно. В бытовых сетях применяется PAT (Port Address Translation), позволяющий множеству устройств использовать один внешний IP.
- DHCP-сервер — автоматическую выдачу IP-адресов, маски, шлюза и DNS-серверов подключённым устройствам.
- Брандмауэр (firewall) — фильтрацию трафика по правилам (IP-адреса, порты, протоколы).
- QoS — приоритизацию трафика (например, голосовой трафик передаётся с высшим приоритетом).
- VPN-сервер — построение защищённых туннелей (IPsec, OpenVPN, WireGuard).
- Wi-Fi контроллер — управление беспроводными точками доступа.
¶Маршрутизация в домашних сетях
В типовой домашней сети роутер выполняет роль шлюза по умолчанию (default gateway). Устройства в локальной сети (192.168.1.0/24) направляют внешний трафик на адрес роутера, который выполняет NAT и пересылает пакеты провайдеру через WAN-интерфейс. Обратный трафик демонстрирует таблицу NAT, сопоставляющую внешние адреса и порты с внутренними.
¶Интересные факты
- Термин «роутер» закрепился в обиходе благодаря компании Cisco Systems, выпустившей в 1986 году первый коммерческий маршрутизатор Cisco 7000.
- В ядре Linux маршрутизация реализована средствами подсистемы Netfilter и утилитами iproute2; программные роутеры на базе Linux (например, на платформах MikroTik RouterOS) широко используются в качестве VPN-серверов и шлюзов.
- Маршрутизаторы уровня оператора связи (например, Huawei NE, Juniper MX) способны обрабатывать сотни гигабит в секунду и поддерживают таблицы маршрутизации, содержащие более миллиона записей.
Источники:
- Кьюси Р., Кларк Р., Кэссел К. «Компьютерные сети. Практический подход»
- Таненбаум Э., Уэзеролл Д. «Компьютерные сети»
- RFC 791 (IPv4), RFC 2460 (IPv6), RFC 1058 (RIP), RFC 2328 (OSPF)
- Документация Cisco IOS, MikroTik RouterOS
