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

kb/network-l2-l3 ── Сеть: L2 / L3 ── intermediate

Routing table

Таблица маршрутизации - список «куда направлять пакеты с таким destination». Самая длинная (longest-prefix) подходящая запись выигрывает.

view as markdownaka: routing, ip-route, routes

Что в таблице

Каждая запись содержит:

  • destination - подсеть-получатель (10.0.0.0/24, 0.0.0.0/0 для default)
  • next hop - IP следующего роутера (via X.X.X.X) или - если подсеть напрямую подключена
  • dev - через какой интерфейс отправлять
  • metric - приоритет (меньше = лучше) при нескольких подходящих
  • scope - link (одна подсеть) или global
  • proto - кто записал маршрут: kernel, static, boot, ra (router advertisement), bgp, ospf, dhcp

Longest prefix match

Когда пакет уходит на 1.2.3.4, ядро ищет в таблице самую длинную совпадающую подсеть. Например:

default via 192.168.1.1 dev eth0
10.0.0.0/8 via 192.168.1.254 dev eth0
10.42.0.0/16 via 10.42.0.1 dev wg0
  • 8.8.8.8 → не попадает в 10.x.x.x, идёт через default → 192.168.1.1
  • 10.99.5.5 → попадает в /8 (но не в /16) → 192.168.1.254
  • 10.42.7.7 → попадает в /8 И в /16, но /16 длиннее → wg0

Это правило универсально, BGP/OSPF не меняют: они только ВСТАВЛЯЮТ записи в таблицу, выбор делает kernel-FIB.

Default route

0.0.0.0/0 - «всё что не покрыто более специфичной записью». На обычном хосте это обязательная запись для выхода в интернет.

Без default route:

$ ping 8.8.8.8
ping: connect: Network is unreachable

Где смотреть

bash
ip route                  # вся таблица main
ip -4 route show           # только IPv4
ip route get 1.2.3.4       # какой маршрут СЕЙЧАС выберется для 1.2.3.4

Помимо main есть ещё local (адреса самой машины) и default (отдельные tables через ip rule для policy-routing).

Где это хранится в ядре

  • RIB (Routing Information Base) - то что вводят протоколы и админ
  • FIB (Forwarding Information Base) - оптимизированная для lookup структура (trie); именно по ней пакет маршрутизируется

Для большинства задач пользователю эта разница неважна.

§ команды

bash
ip route

Текущая main-таблица маршрутизации

bash
ip route get 8.8.8.8

Какой маршрут выберется для адреса 8.8.8.8 (с auto-selected source IP)

bash
sudo ip route add 10.5.0.0/16 via 10.0.0.1

Добавить статический маршрут (требует NET_ADMIN)

bash
sudo ip route add default via 192.168.1.1

Установить default gateway

bash
ip rule

Policy routing: правила выбора таблицы маршрутизации (для multi-WAN, VPN-split)

§ см. также

  • ipv4-addressingIPv4-адресация и CIDRIP-адрес = 32 бита, обычно как `a.b.c.d`. **/N** в конце - длина префикса сети: `/24` = первые 24 бита фиксированы, последние 8 - host'ы (256 адресов).
  • subnetting-cidrSubnetting и CIDRCIDR /N показывает сколько бит из 32 (или 128 для IPv6) - это сеть. /24 = 256 адресов, /30 = 4 (p2p), /16 = 65536. Хост в подсети может напрямую общаться только с хостами с тем же prefix'ом.
  • default-gatewayDefault gateway - выход из своей сетиIP-адрес роутера в твоей подсети, куда стек шлёт пакеты для всех адресов, которые **не лежат локально**. Один gateway на хост - но в multi-homed сетапах их может быть несколько.
  • policy-routingPolicy routing - rule-based маршрутизацияPolicy routing - выбор routing-таблицы по src-IP, fwmark, iif, tos. ip rule + ip route table N. Multi-uplink, source-based routing, VRF, split-tunnel VPN. RPDB - Routing Policy Database.
  • gre-tunnelGRE-туннели и IPIP - point-to-point поверх IPGRE - инкапсуляция любого L3 в IP (proto 47), 24 байта header. IPIP - тоньше, только IP-в-IP. mGRE - один интерфейс к multiple endpoint'ам. Без шифрования - обёртывают в IPsec. Используется в site-to-site VPN, BGP-полу-мешах.
  • bgpBGP - Border Gateway Protocol**BGP** - протокол маршрутизации между автономными системами (AS). Это «язык» которым общаются ISP и крупные сети интернета: какой AS владеет какими prefix'ами и через кого до них доходить.
  • ospfOSPF - Open Shortest Path First**OSPF** - link-state IGP внутри одной автономной системы. Каждый роутер знает полную топологию (LSDB) и независимо считает кратчайшие пути алгоритмом Dijkstra. Сходимость секунды.

§ упоминается в уроках

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