Що таке маршрутизація: побудова таблиць маршрутизації в Linux
У мережі Інтернет передача всієї інформації здійснюється у вигляді невеликих блоків даних – так званих пакетів. Сам пакет складається з стартових бітів, заголовка, причепа і корисного навантаження – кожен такий блок з даними передається по певному маршруту, який, в свою чергу, визначається маршрутизатором. Мережевий маршрут “прокладається” на підставі інформації, одержуваної від таблиць маршрутизації згідно з протоколами маршрутизації та інструкціями мережевого адміністратора.
Таблиці маршрутизації містять параметри, необхідні для коректної ідентифікації і читання мережевого маршруту. У них містяться наступні розділи:
- 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-атаках з хоста.
Команди для дій з маршрутами
Як ми зазначили вище, команда 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.