JavaRush /Курси /Docker SELF /Налаштування маршрутів: команди `ip route`, `netstat`, `s...

Налаштування маршрутів: команди `ip route`, `netstat`, `ss`

Docker SELF
Рівень 4 , Лекція 1
Відкрита

1. Поняття маршрутизації

Сьогодні ми занурюємося ще глибше: будемо налаштовувати маршрути, аналізувати мережеві з'єднання та розбиратися з портами. Тут починається справжня магія мережевого адміністрування – розберемося, куди і як бігають пакети, і чому в цьому питанні важливо бути "головним по маршрутах".

Маршрутизація – це не просто складна на вигляд штука, це основа основ сучасної мережі. Уявіть собі: ваш комп'ютер – це турист, який хоче потрапити в інший комп'ютер (готель), а маршрути – це дороги та покажчики. Якщо маршрутів немає, турист буде блукати, питати дорогу у перехожих (а перехожі можуть бути DNS-серверами, але не про це зараз) або взагалі залишиться вдома.

Навіщо потрібні маршрути

Кожному пристрою в мережі потрібно знати, як досягти інших пристроїв. Наприклад, якщо ваш комп'ютер хоче відправити запит на сайт example.com, він має знати:

  1. Куди відправляти пакети.
  2. Через який шлюз чи інтерфейс це зробити.

Маршрути бувають двох типів:

  • Локальні маршрути: вказівки для пристроїв у вашій підмережі (наприклад, ваш комп'ютер і принтер).
  • Зовнішні маршрути: вказівки для пристроїв за межами вашої підмережі (наприклад, для ресурсу в інтернеті).

2. Таблиця маршрутизації

Таблиця маршрутизації – це таблиця з правилами, які визначають, куди відправляти пакети на основі IP-адрес. Це ніби Google Maps для твого комп'ютера: "Якщо хочеш потрапити туди, йди через цей шлюз".

Спробуй вивести свою таблицю маршрутів:

ip route show

Приклад виводу:

default via 192.168.1.1 dev eth0 proto dhcp metric 100
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.100 metric 100

Що це означає:

  • default via 192.168.1.1: якщо пакету не зазначено, куди конкретно йти, відправляй його через шлюз з адресою 192.168.1.1.
  • dev eth0: використовуємо інтерфейс eth0.
  • 192.168.1.0/24: це маршрут для всієї підмережі 192.168.1.0/24. Пакети залишаються "вдома" в локальній мережі.
  • proto та metric – додаткові параметри, про них трохи пізніше.

3. Команда ip route

Перегляд маршрутів

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

ip route show match 192.168.1.0/24

Додавання маршрутів

Ти можеш додати статичний маршрут – це як якщо сам поставиш дорожній знак. Наприклад, щоб перенаправити всі запити до підмережі 10.0.0.0/24 через певний шлюз:

sudo ip route add 10.0.0.0/24 via 192.168.1.1 dev eth0

Розберемо:

  • 10.0.0.0/24 – підмережа призначення.
  • via 192.168.1.1 – шлюз, через який відправляються пакети.
  • dev eth0 – інтерфейс, через який пакети йдуть.

Видалення маршрутів

Якщо ти більше не хочеш, щоб маршрут існував, видаляємо його командою:

sudo ip route del 10.0.0.0/24

4. Практика: Налаштування статичного маршруту

  1. Переконайтесь, що у вас є доступ до іншої підмережі.
  2. Додайте маршрут:
sudo ip route add 192.168.2.0/24 via 192.168.1.1 dev eth0
  1. Перевірте таблицю маршрутизації:
ip route show
  1. Видаліть маршрут, якщо він більше не потрібен.

5. Команда netstat

Коли справа доходить до аналізу поточних з'єднань, netstat – це старий добрий друг системного адміністратора (хоча вже є сучасніша альтернатива – ss, про яку поговоримо пізніше).

Перевірка активних з'єднань

netstat -tun

Що це означає:

  • -t – показуємо TCP-з'єднання.
  • -u – показуємо UDP-з'єднання.
  • -n – використовувати числові адреси (замість імен хостів).

Приклад виводу:

Proto Recv-Q Send-Q Local Address           Foreign Address         State
tcp        0      0 192.168.1.100:22        192.168.1.50:50240      ESTABLISHED

Що це означає:

  • Локальна адреса 192.168.1.100:22 – це ваш комп'ютер слухає порт 22 (SSH).
  • Віддалена адреса 192.168.1.50:50240 – це віддалений хост, який підключений до вашого порту.
  • ESTABLISHED – це активне з'єднання, дані передаються.

Слухання портів

Щоб побачити, які порти "слухають" на вашому комп'ютері:

netstat -ltn

Флаг -l показує лише порти, які слухають, а -t і -n ми вже обговорили.


6. Команда ss

Якщо netstat – динозавр, то ss – це машина ДеЛоріан з майбутнього: працює швидше і дає більше інформації.

Перевірка активних з’єднань

ss -tun

Приклад виводу аналогічний netstat, але з більшою швидкістю і деталізацією.

Прослуховування портів

ss -tln

Все те ж, що і з netstat, але працювати з ss зручніше і сучасніше.


7. Моніторинг з'єднань

  1. Використовуйте netstat або ss, щоб подивитися, які порти слухає ваш комп'ютер.
  2. Відкрийте SSH-з'єднання на іншому пристрої і перевірте, чи з'являється воно у списку з'єднань.
  3. Спробуйте інтерпретувати вивід команд.

Ми занурилися у світ маршрутизації та моніторингу з'єднань: тепер ви можете використовувати ip route, щоб управляти таблицею маршрутів, і netstat/ss для аналізу мережевих з'єднань. Ці інструменти – ваш швейцарський ніж для вирішення найзаплутаніших мережевих проблем. Хочете допомогти другу, який скаржиться, що "інтернет не працює"? Витягуйте свої нові навички та показуйте клас!

На наступній лекції буде ще цікавіше: будемо розбиратися з DNS і його магією. А поки – потренуйтеся з ip route і зацінить, як пакети знаходять свій шлях додому.

Коментарі
ЩОБ ПОДИВИТИСЯ ВСІ КОМЕНТАРІ АБО ЗАЛИШИТИ КОМЕНТАР,
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ