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/default-gateway

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

Default gateway - выход из своей сети

IP-адрес роутера в твоей подсети, куда стек шлёт пакеты для всех адресов, которые **не лежат локально**. Один gateway на хост - но в multi-homed сетапах их может быть несколько.

view as markdownaka: gateway, default-route

Зачем вообще нужен

Когда у тебя пакет на 8.8.8.8, ты делаешь два вопроса:

  1. Это в моей подсети? Сравниваем IP+маска с локальной сетью. Если да - шлём напрямую через arp и Ethernet-фрейм
  2. Если нет - куда вообще слать? Тут вступает default gateway: специальный маршрут «всё что я не знаю - отдай этому роутеру»

В Linux это выглядит так:

$ ip route
default via 192.168.1.1 dev eth0     # ← вот он, default gateway
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.50

Первая строка = «всё неизвестное → шлём в 192.168.1.1». Вторая = «своя подсеть → напрямую через eth0».

Откуда берётся

Три типичных пути:

  • DHCP даёт его в опции 3 (router). Дома - это твой Wi-Fi-роутер
  • Прописан вручную (/etc/network/interfaces, NetworkManager, cloud-init)
  • Получен через RA (router advertisement) в IPv6

Как используется

Когда пакет на 8.8.8.8 уходит:

  1. Стек смотрит routing-table. Match для 8.8.8.8 = default
  2. Default route говорит: next hop = 192.168.1.1
  3. Стек смотрит - 192.168.1.1 это в моей подсети, шлю L2-фреймом
  4. ARP по 192.168.1.1 → получаем MAC роутера
  5. Кладём фрейм с dst MAC = MAC роутера, dst IP = 8.8.8.8
  6. Роутер ловит фрейм, видит что dst IP не его, идёт по своей таблице

Важный момент: в L2-заголовке destination - это MAC шлюза, не конечного сервера. На L3 destination остаётся 8.8.8.8. На каждом хопе L2-заголовок переписывается, L3 - нет.

Несколько gateway'ев

  • Multiple default routes с разными метриками - для failover между провайдерами или Wi-Fi/Ethernet
  • Policy routing (ip rule) - разные gateway'и для разных source IP или меток netfilter
  • VPN'ы часто меняют default gateway на туннель - поэтому весь трафик идёт через VPN

Когда ломается

  • Нет default route - пингуешь 8.8.8.8, получаешь network is unreachable. Лечится ip route add default via X
  • Gateway недоступен - пакеты уходят, но ARP не находит MAC. Видно в ip neigh как FAILED
  • Wrong gateway (не в твоей подсети) - стек его сразу отвергает, «next hop is not directly reachable»

§ команды

bash
ip route show default

Показать default gateway

bash
ip route add default via 192.168.1.1 dev eth0

Прописать руками (если DHCP не дал или для ручной настройки)

bash
ip route del default

Удалить default route - все пакеты в чужие сети начнут падать

bash
ip route get 8.8.8.8

Какой маршрут будет использован для конкретного destination

§ см. также

  • routing-tableRouting tableТаблица маршрутизации - список «куда направлять пакеты с таким destination». Самая длинная (longest-prefix) подходящая запись выигрывает.
  • subnetting-cidrSubnetting и CIDRCIDR /N показывает сколько бит из 32 (или 128 для IPv6) - это сеть. /24 = 256 адресов, /30 = 4 (p2p), /16 = 65536. Хост в подсети может напрямую общаться только с хостами с тем же prefix'ом.
  • 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.
  • dhcp-protocolDHCP - Dynamic Host Configuration ProtocolDHCP выдаёт хосту IP-адрес, маску, шлюз и DNS через broadcast. 4 пакета: DORA = Discover (клиент), Offer (сервер), Request (клиент), Ack (сервер). Аренда продлевается за 50% TTL.
  • ip-forwardingIP forwarding - превратить хост в роутерLinux по умолчанию НЕ пересылает пакеты между интерфейсами. Включается через `sysctl net.ipv4.ip_forward=1`. Без этого не работают NAT, VPN-роутер, любой forwarding.
Footer
linuxlab-
Copyright © 2026 LinuxLab. Все права защищены.
Учебники
Цены
О платформе
Конфиденциальность и куки