linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
Intro
Lessons
Footer
linuxlab-УчебникиЦеныО платформеКонфиденциальность и куки
Copyright © 2026 LinuxLab. Все права защищены.
linuxlab.io
Учебники▾
  • Линукс и сети
    Файловая система, процессы, TCP/IP, BGP и OSPF
    →
  • Terraform и IaC
    HCL, state, plan/apply на sandbox LocalStack
    →
  • Git и GitHub
    Объектная модель, plumbing, ветвление, GitHub Actions
    →
Все учебники →
ЦеныО платформеВойтиСоздать аккаунт
/
  • Введение
  • Уроки
  • How it works
  • Симулятор
  • База знаний
  • Собеседование
home/linux/how/routing

how/network

Маршрутизация и TTL

Как пакет долетает от твоего ноута до Google за 10-15 хопов? Каждый роутер знает только «куда передать дальше» - и этого хватает.

Когда ты пингуешь 8.8.8.8 - пакет проходит через 5-15 роутеров прежде чем добраться до Google. Странно: интернет гигантский, как роутеры умудряются «знать дорогу»?

Простой ответ: никто не знает «всю карту интернета». Каждый роутер знает только свой маленький кусочек: «сеть X у меня на интерфейсе Y, а всё остальное - отдай вон тому соседу». Эта hop-by-hop-логика и делает интернет масштабируемым.

Нажми ▶ - посмотрим как один пакет проходит через 3 роутера, как каждый из них принимает решение, и почему TTL обязан декрементироваться.

step 1/5·00 · клиент готовит пакет в чужую сеть
client10.0.0.5ROUTERR110.0.0.1 / 172.16.0.1ROUTERR2172.16.0.2 / 192.0.2.1server203.0.113.4510.0.0.0/24172.16.0.0/16192.0.2.0/24клиент в 10.0.0.0/24 хочет отправить пакет на 203.0.113.45 - это «не моя сеть», идём в default gateway

§ шаги

  1. Клиент с IP 10.0.0.5 хочет отправить пакет на 203.0.113.45. Стек смотрит в routing-table:

    • 10.0.0.0/24 dev eth0 - наша сеть
    • default via 10.0.0.1 - всё остальное идёт через шлюз R1

    Адрес 203.0.113.45 под наш /24 не подпадает → используем default-gateway. Пакет уходит на R1 со стартовым TTL=64 (дефолт Linux).

итого

Что важно запомнить:

  • Routing работает hop-by-hop: ни один роутер не знает «всю дорогу до конца», только следующий шаг. Каждый делает свой выбор независимо
  • TTL (Time To Live) защищает от зацикливания: каждый роутер декрементирует его на 1, при TTL=0 пакет дропается и отправителю летит ICMP time-exceeded. На этом и построен traceroute
  • Longest prefix match: если в таблице несколько маршрутов совпадают с destination - побеждает самый «длинный» (специфичный). /24 бьёт /16, /16 бьёт /0
  • Connected routes - сети, физически подключённые к нашим интерфейсам - попадают в routing-table автоматически. Их не нужно прописывать руками
  • В Linux таблица - ip route. Поиграться с маршрутами можно без перезагрузки: добавил ip route add, удалил ip route del

Если хочешь покрутить руками - есть lab где собирается топология из 3 нод и пакет идёт через них с tcpdump-наблюдением.

§ копнуть в базу знаний

  • routing-tablerouting table - структура и команды
  • default-gatewaydefault gateway - куда идём по умолчанию
  • traceroutetraceroute - увидеть путь пакета своими глазами
  • ip-forwardingip_forward - как Linux становится роутером

§ попробовать руками

  • ›intermediate-03-three-node-routing- Three-node routing - собрать топологию руками
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки