До основного вмісту

Налаштування маршрутизації Linux: ip route та netplan

VDS / VPS · 19.04.2026 · 4 хв читання
Ілюстрація до статті «Налаштування маршрутизації Linux: ip route та netplan»

Маршрутизація Linux визначає, через який мережевий інтерфейс і шлюз надсилати пакети. Сучасний інструмент — команда ip з пакета iproute2.

Основні команди ip

# Показати всі IP-адреси
ip addr show
ip a  # коротка форма

# Показати таблицю маршрутизації
ip route show
ip r  # коротка форма

# Показати маршрут до конкретного хоста
ip route get 8.8.8.8

# ARP-таблиця (відповідність IP → MAC)
ip neigh show

Тимчасові зміни (до перезавантаження)

# Додати IP-адресу на інтерфейс
sudo ip addr add 192.168.1.100/24 dev eth0

# Видалити IP-адресу
sudo ip addr del 192.168.1.100/24 dev eth0

# Додати маршрут через конкретний шлюз
sudo ip route add 10.0.0.0/8 via 192.168.1.1

# Додати дефолтний шлюз
sudo ip route add default via 192.168.1.1

# Видалити маршрут
sudo ip route del 10.0.0.0/8

# Увімкнути/вимкнути інтерфейс
sudo ip link set eth0 up
sudo ip link set eth0 down

Постійні маршрути через Netplan (Ubuntu 22.04+)

# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    eth0:
      dhcp4: false
      addresses:
        - 192.168.1.10/24
      routes:
        - to: default
          via: 192.168.1.1
        - to: 10.0.0.0/8
          via: 10.0.0.1
          metric: 100
      nameservers:
        addresses: [8.8.8.8, 8.8.4.4]
sudo netplan apply

Два інтерфейси з різними шлюзами

# /etc/netplan/01-netcfg.yaml
network:
  version: 2
  ethernets:
    eth0:                          # Основний (інтернет)
      dhcp4: false
      addresses: [1.2.3.4/24]
      routes:
        - to: default
          via: 1.2.3.1
    eth1:                          # Приватна мережа
      dhcp4: false
      addresses: [10.0.0.10/24]
      routes:
        - to: 10.0.0.0/8
          via: 10.0.0.1
💡 ip vs ifconfig: Команда ifconfig застаріла і не встановлена за замовчуванням в Ubuntu 20.04+. Використовуйте ip addr і ip route — вони підтримують IPv6 і сучасні можливості ядра.

Розбір типових помилок маршрутизації

"RTNETLINK answers: Network is unreachable" під час додавання маршруту через шлюз — означає, що вказаний шлюз недосяжний напряму, тобто не перебуває в одній підмережі з адресою інтерфейсу.

sudo ip route add 10.0.0.0/8 via 192.168.1.1
RTNETLINK answers: Network is unreachable

Перевірте, що на інтерфейсі вже є адреса з тієї самої підмережі, що й шлюз: ip addr show dev eth0. Якщо шлюз 192.168.1.1, а на інтерфейсі лише адреса 10.0.0.5/24, маршрут додати не вдасться, поки не з'явиться адреса з мережі 192.168.1.0/24.

Після netplan apply інтернет зникає повністю — майже завжди синтаксична помилка відступів у YAML (YAML критичний до пробілів) або конфлікт з NetworkManager/systemd-networkd, який керує тим самим інтерфейсом.

sudo netplan apply
Error in network definition //etc/netplan/01-netcfg.yaml: invalid indentation

Перевірте синтаксис перед застосуванням: sudo netplan try — команда покаже помилку і автоматично відкотить зміни через 120 секунд, якщо ви їх не підтвердите, що рятує від втрати SSH-доступу через одруківку.

Способи налаштування маршрутів: порівняння

СпосібПостійністьДе застосовуєтьсяСинтаксис
ip route addДо перезавантаженняБудь-який Linux з iproute2Команда CLI
Netplan (YAML)ПостійноUbuntu 18.04+YAML-декларація
/etc/network/interfacesПостійноDebian, старий UbuntuКлюч-значення
NetworkManager (nmcli)ПостійноDesktop-дистрибутиви, RHEL/CentOSCLI або GUI

Коли статичних маршрутів недостатньо

  • Топологія мережі часто змінюється (кілька провайдерів, резервні канали) — потрібна динамічна маршрутизація (BGP, OSPF) через FRRouting або Bird, а не список статичних записів.
  • Потрібен автоматичний failover між провайдерами — статичний маршрут не перемкнеться сам під час падіння лінку, для цього потрібні спеціальні механізми моніторингу і скрипти або протоколи маршрутизації.
  • Сервер обслуговує десятки VLAN з незалежною маршрутизацією — ручне керування через ip route або Netplan стає важким у підтримці, варто дивитися в бік виділеного роутера або FRRouting.

Перевірка результату

  1. Перевірте застосовані маршрути: ip route show має містити потрібний запис з правильним шлюзом і метрикою.
  2. Перевірте зв'язність через конкретний маршрут: ip route get 10.0.0.5 має показати, через який інтерфейс і шлюз піде пакет.
  3. Переконайтеся, що налаштування переживуть перезавантаження: sudo netplan generate && sudo reboot, потім повторіть ip route show.
  4. Перевірте обидва інтерфейси під час мультигомінгу: ping -I eth0 8.8.8.8 і ping -I eth1 10.0.0.1 мають проходити незалежно один від одного.

Перед налаштуванням маршрутів корисно розібратися з масками підмереж — див. статтю про CIDR, а загальний механізм трансляції адрес описано в статті про NAT.

Чи була стаття корисною?
← Назад до бази знань Поставити питання підтримці