Що таке маршрутизація: побудова таблиць маршрутизації в Linux

Що таке маршрутизація: побудова таблиць маршрутизації в Linux

06.10.2022
Автор: HostZealot Team
2 мін.
453

У мережі Інтернет передача всієї інформації здійснюється у вигляді невеликих блоків даних – так званих пакетів. Сам пакет складається з стартових бітів, заголовка, причепа і корисного навантаження – кожен такий блок з даними передається по певному маршруту, який, в свою чергу, визначається маршрутизатором. Мережевий маршрут “прокладається” на підставі інформації, одержуваної від таблиць маршрутизації згідно з протоколами маршрутизації та інструкціями мережевого адміністратора.

Таблиці маршрутизації містять параметри, необхідні для коректної ідентифікації і читання мережевого маршруту. У них містяться наступні розділи:

  • Destination (Target). IP - адреса мережі призначення – це кінцевий пункт призначення для пакетів даних.
  • Netmask (Genmask). Маска мережі.
  • Gateway. IP-адрес шлюза.
  • Interface. Адреса мережевого інтерфейсу.
  • Metric. Цей параметр визначає пріоритет маршруту.

Також опціонально в таблиці маршрутизації можуть вказуватися адреса відправника, розмір TCP-вікна і максимальна величина пакета. Все це дозволяє оптимізувати передачу даних в рамках мережі. Далі в статті ми розповімо, як управляти маршрутизацією Linux і поділимося корисними рекомендаціями по налаштуванню.

Команди перегляду таблиці маршрутизації

Управління маршрутизацією для ОС Linux здійснюється трьома командами:

  • route – дозволяє подивитися таблицю маршрутизації, що функціонує на даний момент;
  • netstat – виводить більш докладні відомості, включаючи IP-адресу мети, шлюзу, відправника, а також показує використовуваний протокол передачі даних і мережевий інтерфейс;
  • ip – цей інструмент використовується для глибокого налаштування мережевих інтерфейсів.

Розглянемо кілька базових прикладів використання цих команд в Linux.

route-n 
netstat -rn
ip route show

cat /proc/net/route

Ці команди дозволяють подивитися таблицю маршрутизації або якісь окремі її елементи.

При цьому команду route можна використовувати лише для отримання відомостей в повній числовій формі, але з її допомогою не вийде налаштувати політики маршрутизації. Для цієї мети слід використовувати команду ip. Наприклад так:

ip route add 172.16.10.0/24 via 192.168.1.1 - додати маршрут через шлюз;
ip route add 172.16.10.0/24 dev eth0 - додати маршрут через інтерфейс;
ip route add 172.16.10.0/24 dev eth0 metric 100 - маршрут з метрикою.

Також існує можливість створення "зануленого" маршруту, і пакети, що проходять по ньому, будуть автоматично видалятися через «No route to host». Для цього використовується команда:

ip route add blackhole 10.56.50.0/27

 Використовувати її рекомендується при DoS-атаках з хоста.

Що таке маршрутизація: побудова таблиць маршрутизації в linux

Команди для дій з маршрутами

Як ми зазначили вище, команда add дозволяє додавати маршрути. Але це не єдина можлива операція, є і три інших:

  • del – для видалення маршруту.
  • replace – дозволяє один маршрут замінити іншим.
  • change – для зміни параметрів маршруту.

Приклади статичної маршрутизації

Уявімо, що у вас є два офіси, з'єднаних один з одним по IP-тунелю. Один офіс має IP-адресу 192.168.1.4, а другий – 192.168.1.6. Для підключення локальної мережі між ними необхідно прописати на другий маршрутизаторі команду:

route add -net 172.16.10.0/24 gw 192.168.1.4

В результаті ви підключите шлюз “192.168.1.4” для мережі "172.16.10.0/24". Після цього на першому маршрутизаторі прописуємо наступне:

route add -net 172.20.0.0/24 gw 192.168.1.6

Як бачимо, все досить просто і прозоро.

Для зміни локальної мережі другого маршрутизатора ми просто видаляємо старий запис:

route add -net 172.16.10.0/24 gw 192.168.1.4

І потім додаємо новий маршрут на першому маршрутизаторі:

route add -net 172.20.0.0/24 gw 192.168.1.6

Де знаходяться конфігураційні файли

Конфіги статичної маршрутизації будуть розташовані в різних директоріях, в залежності від використовуваного дистрибутива:

  • Debian GNU/Linux: /etc/network/interfaces
  • RHEL/CentOS/Scientifix: etc/sysconfig/network-scripts/route-<interface name>
  • Gentoo: /etc/conf.d/net

У них ви також можете задати певні налаштування і параметри для маршрутизації. Якщо залишилися питання, зв'яжіться з нашими фахівцями через Livechat.

# Як зробити Поділитися:
Статті за темою