Перейти до змісту

Лабораторна робота 5: Основи роботи в мережі

Цілі

Після виконання цієї лабораторної роботи ви зможете:

  • Створювати віртуальні мережеві пристрої
  • Керувати мережевими пристроями та налаштуваннями в системі Linux за допомогою набору інструментів iproute2 (ip)
  • Керувати мережевими пристроями та налаштуваннями в системі Linux за допомогою набору інструментів NetworkManager (nmcli)
  • Усувати типові проблеми з мережею

Приблизний час виконання цієї лабораторної роботи: 60 хвилин

Огляд

У цьому лабораторному занятті «Основи роботи в мережі» розглядаються різноманітні вправи з налаштування мережі та усунення несправностей на сервері Linux. Ви будете краще підготовлені для керування мережевими налаштуваннями та усунення несправностей за допомогою звичайних мережевих утиліт, доступних у системах на базі Linux.

Завдання 1

Змінити ім'я хоста

Існує багато методів ідентифікації або посилання на комп’ютери. Деякі методи гарантують унікальність [особливо в мережі], а інші ні. Ім’я комп’ютера можна вважати зручним для людини. В ідеалі імена хостів комп’ютерів мають бути унікальними залежно від того, як ними керують або призначають. Але оскільки будь-хто з правами адміністратора в системі може в односторонньому порядку призначити системі будь-яке ім’я хоста, унікальність не завжди гарантована.

У цій першій вправі розглядаються деякі загальні інструменти для керування іменем хоста комп’ютера.

Щоб змінити ім'я хоста системи

  1. Увійшовши у свою систему, перегляньте поточне ім'я хоста за допомогою популярної утиліти hostname. Впишіть:

    hostname
    
  2. Знову запустіть утиліту hostname з іншою опцією, щоб переглянути FQDN сервера:

    hostname --fqdn
    

!!! Question "Питання"

    ```
     Що означає абревіатура FQDN? І чому результат простого імені хоста сервера вашого сервера відрізняється від його FQDN?
    ```
  1. Використайте утиліту hostnamectl для перегляду поточних імен хостів. Впишіть:

    hostnamectl
    

Це багато додаткової інформації!

  1. Додайте опцію --static до команди hostnamectl, щоб переглянути статичне ім'я хоста вашого сервера. Впишіть:

    hostnamectl --static
    
  2. Додайте параметр --transient до команди hostnamectl, щоб переглянути тимчасове ім’я хоста для вашого сервера.

  3. Тепер спробуйте опцію --pretty для команди hostnamectl, щоб переглянути красиве ім’я хоста для вашого сервера.

  4. Встановіть нове тимчасове ім’я хоста для вашого сервера. Впишіть:

    hostnamectl --transient set-hostname my-temp-server1 
    
  5. Перевірте тимчасову зміну імені хоста. Впишіть:

    hostnamectl --transient
    
  6. Встановіть нове статичне ім’я хоста для вашого сервера. Впишіть:

    hostnamectl set-hostname my-static-hostname1
    
  7. Перевірте зміну статичного імені хоста.

    Питання

     Зверніться до сторінки довідки щодо `hostnamectl`. Які відмінності між гарними, тимчасовими та статичними іменами хостів?
    

Завдання 2

Першим важливим кроком, який вам потрібно виконати перед тим, як переходити до інших вправ у цій мережевій лабораторній роботі, буде створення спеціального віртуального мережевого інтерфейсу, відомого як пристрій MACVTAP.

Пристрої MACVTAP — це віртуальні пристрої, які поєднують властивості лише програмного інтерфейсу, відомого як пристрій TAP, а також властивості драйвера MACVLAN.

Створення та робота з цими пристроями MACVTAP дозволить вам безпечно тестувати, змінювати та налаштовувати різні пов’язані з мережею завдання. Ці віртуальні мережеві інтерфейси будуть використовуватися в різних вправах без порушення існуючої конфігурації мережі.

Tip

Пристрої TAP забезпечують лише програмний інтерфейс, до якого програми з простору користувача можуть легко отримати доступ. Пристрої TAP надсилають і отримують необроблені кадри Ethernet. MACVLAN використовується для створення віртуальних мережевих інтерфейсів, які приєднуються до фізичних мережевих інтерфейсів. Пристрої MACVTAP мають власну унікальну MAC-адресу, відмінну від MAC-адреси основної фізичної мережевої карти, з якою вони пов’язані.

Створення інтерфейсів MACVTAP

Ця вправа починається зі створення необхідних інтерфейсів віртуальної мережі MACVTAP. Це дозволить вам безпечно тестувати, змінювати та налаштовувати різні завдання, пов’язані з конфігурацією мережі. Ці віртуальні мережеві інтерфейси будуть використовуватися в різних вправах без порушення існуючої конфігурації мережі.

Щоб отримати список усіх мережевих інтерфейсів у системі

  1. Переконайтеся, що ви ввійшли на сервер.

  2. Використайте програму ip для перегляду існуючих мережевих інтерфейсів у вашій системі. Впишіть:

    ip link show
    
  3. Спробуйте скористатися командою nmcli, щоб переглянути список усіх мережевих пристроїв. Впишіть:

     nmcli -f DEVICE device
    
  4. Запитуйте віртуальну файлову систему низького рівня /sys, щоб вручну перерахувати ВСІ мережеві інтерфейси, доступні на вашому сервері. Впишіть:

     ls -l /sys/class/net/ | grep -v 'total' | awk '{print $9}'
    

Для створення інтерфейсів macvtap

  1. Переконайтеся, що ви ввійшли в систему як користувач із правами адміністратора.

  2. Вам потрібно запитати та визначити відповідні типи мережевих пристроїв, доступних на вашому сервері, щоб мати змогу пов’язати їх із пристроєм macvtap. Впишіть:

     ls -l /sys/class/net/ | grep -v 'virtual\|total' | tail -n 1 | awk '{print $9}'
    
     eno2
    

Результат демонстраційної системи демонструє один відповідний інтерфейс під назвою eno2.

  1. Виконайте команду, щоб знову ідентифікувати пристрій, але збережіть повернуте значення в змінній з іменем $DEVICE1. Ще раз перевірте значення $DEVICE1 за допомогою echo. Введіть наступні 2 окремі команди, щоб виконати це:

    # DEVICE1=$(ls -l /sys/class/net/ | grep -v 'virtual\|total' | tail -n 1 | awk '{print $9}')
    
    # echo $DEVICE1
    
  2. Тепер створіть інтерфейс MACVTAP з назвою macvtap1. Новий інтерфейс буде пов'язаний з $DEVICE1. Впишіть:

    ip link add link $DEVICE1 name macvtap1 type macvtap mode bridge
    
  3. Перевірте створення інтерфейсу macvtap1. Впишіть:

    ip --brief link show macvtap1
    

Зверніть увагу на стан DOWN інтерфейсу macvtap у вихідних даних.

  1. Перегляньте детальну інформацію про всі мережеві пристрої типу MACVTAP у системі. Впишіть:

    ip --detail link show type macvtap
    
  2. Виконайте команду, щоб переглянути всі мережеві інтерфейси на сервері та порівняйте вихідні дані з результатами аналогічної команди в попередньому розділі «Щоб перелічити всі мережеві інтерфейси в системі».

Увімкнення/вимкнення мережевого інтерфейсу

Щоб увімкнути або вимкнути мережевий інтерфейс

  1. Перевірте стан мережевого інтерфейсу macvtap1. Впишіть:

    ip link show macvtap1
    
  2. Увімкнути мережевий інтерфейс macvtap1 (якщо він наразі вимкнено). Запустіть:

    ip link set macvtap1 up
    
  3. Перевірте зміни статусу, виконавши:

    ip -br  link show macvtap1
    

!!! TIP "Підказка"

    ```
     Iякщо вам коли-небудь знадобиться вимкнути мережевий інтерфейс, синтаксис команди `ip` для цього такий: `ip link set <IFNAME> down`. Наприклад, щоб вимкнути мережевий інтерфейс з назвою `macvtap7`, потрібно виконати: 

     ```bash
     ip link set macvtap7 down
     ```
    ```

Тепер, коли ви налаштували інтерфейси macvtap, ви можете безпечно виконувати різноманітні завдання налаштування мережі та усунення несправностей у вправах, що залишилися.

Завдання 3

Призначити IP-адреси

Щоб встановити IP-адреси на мережевому інтерфейсі

  1. Перегляньте IP-адреси всіх мережевих інтерфейсів на вашому сервері. Впишіть:

    ip address show   
    
  2. Призначте IP-адресу — 172.16.99.100 — для macvtap1. Впишіть

    ip address add 172.16.99.100/24 dev macvtap1    
    
  3. Перевірте призначення IP-адреси для macvtap1

    ip address show macvtap1
    
  4. Використовуйте команду nmcli, щоб переглянути IPv4-адреси всіх інтерфейсів у вашій системі. Впишіть:

    nmcli --get-values IP4.ADDRESS,GENERAL.DEVICE  device show  
    

Завдання 4

Налаштувати IPv6-адреси

Щоб призначити адреси IPv6 інтерфейсам macvtap

  1. Починаючи з macvtap1, призначте адресу 2001:db8::1/64 IPv6 macvtap1, виконавши:

     ip -6 address add 2001:db8::1/64 dev macvtap1
    
  2. Перевірте призначення адрес IPv6, введіть:

    ip --brief -6 address show macvtap1 && ip -br -6 address show macvtap1
    
  3. Використовуйте nmcli для перегляду IPv6-адрес усіх інтерфейсів у вашій системі. Впишіть:

    nmcli --get-values  IP6.ADDRESS,GENERAL.DEVICE  device show  
    

Завдання 5

Управління маршрутизацією

Щоб переглянути таблицю маршрутизації системи.

  1. Перегляньте поточну таблицю маршрутизації для системи. Впишіть:

    ip route show
    default via 192.168.2.1 dev enp1s0 proto dhcp src 192.168.2.121 metric 100
    10.99.99.0/24 dev tunA proto kernel scope link src 10.99.99.1 metric 450 linkdown
    192.168.2.0/24 dev enp1s0 proto kernel scope link src 192.168.2.121 metric 100
    
  2. Використовуючи одну з мереж, відображену в крайньому лівому стовпці вихідних даних попередньої команди, як аргумент, відобразіть запис таблиці маршрутів для цієї мережі. Наприклад, щоб показати запис таблиці маршрутів ядра для мережі 10.99.99.0/24, введіть:

    ip route show 10.99.99.0/24
    
  3. Зробіть запит до системи, щоб побачити маршрут, який буде використано для досягнення довільного прикладу пункту призначення. Наприклад, щоб переглянути деталі маршрутизації для досягнення IP-адреси призначення 8.8.8.8, type:

    ip route get 8.8.8.8
    
    8.8.8.8 via 192.168.2.1 dev enp1s0 src 192.168.2.121 uid 0
    cache
    

Ось розбивка вихідних даних у простому вигляді:

  • IP-адреса призначення: 8.8.8.8 – це IP-адреса, яку ми намагаємося отримати
  • Via: 192.168.2.1 – IP-адреса наступного стрибка, на яку буде надіслано пакет для досягнення пункту призначення
  • Device: enp1s0 – мережевий інтерфейс, який використовуватиметься для надсилання пакету
  • Source IP Address: 192.168.2.121 – це IP-адреса мережевого інтерфейсу, яка використовуватиметься як адреса джерела для пакета
  • UID: 0 — це ідентифікатор користувача процесу, який ініціював цю команду
  • Cache: це поле вказує, чи цей маршрут кешується в таблиці маршрутизації ядра

  • Тепер подивіться, як система направлятиме пакет з однієї IP-адреси на іншу IP-адресу призначення. Впишіть:

    ip route get from 192.168.1.1 to 192.168.1.2
    
    local 192.168.1.2 from 192.168.1.1 dev lo uid 0
    cache <local>
    

Встановити шлюз за замовчуванням

Щоб налаштувати шлюз за замовчуванням для системи

  1. Використовуйте ip для запиту та отримання списку поточного шлюзу за замовчуванням у вашій системі. Впишіть:

     ip route show default
    
  2. Встановіть шлюз за замовчуванням через інтерфейс macvtap1. Впишіть:

    ip route add default via 192.168.1.1
    
  3. Перевірте нову конфігурацію шлюзу за замовчуванням

    ip route show default
    

Додати статичний маршрут

Щоб додати статичний маршрут до таблиці маршрутизації

  1. Додайте демонстраційний статичний маршрут для фіктивної мережі 172.16.0.0/16 через 192.168.1.2. Впишіть:

    ip route add 172.16.0.0/16 via 192.168.1.2
    
  2. Перевірте додавання статичного маршруту, виконавши:

    ip route show 172.16.0.0/16
    

Видалити статичний маршрут

Щоб видалити статичний маршрут із таблиці маршрутизації

  1. Видалити статичний маршрут для 10.0.0.0/24

    ip route del 10.0.0.0/24 via 192.168.1.2
    
  2. Перевірте видалення статичного маршруту

    ip route show
    

Завдання 6

Видалення IP-адрес

У цій вправі описано, як видалити налаштовані IP-адреси (IPv4 та IPv6) на мережевих інтерфейсах.

Видалити адресу IPv4

Щоб видалити призначену IP-адресу з мережевого інтерфейсу

  1. Видалити IP-адресу на macvtap1. Впишіть:

    ip address del 172.16.99.100/24 dev macvtap1
    
  2. Перевірте видалення IP-адреси, виконавши:

    ip address show macvtap1
    

Видалити адресу IPv6

Щоб видалити призначену IPv6-адресу з мережевого інтерфейсу

  1. Видаліть адресу IPv6 на macvtap1 за допомогою цієї команди:

    ip -6 address del 2001:db8::1/64 dev macvtap1
    
  2. Перевірте видалення адреси IPv6 за допомогою:

    ip -6 address show macvtap1
    

Завдання 7

Налаштуйте мережеві інтерфейси за допомогою nmcli

У цій вправі показано, як налаштувати мережеві інтерфейси за допомогою інструментів NetworkManager.

Примітка

За замовчуванням будь-які зміни конфігурації мережі, внесені за допомогою `nmcli` (NetworkManager), зберігатимуться між перезавантаженнями системи.
Це відрізняється від змін конфігурації, які виконуються за допомогою утиліти `ip`.

Щоб створити інтерфейс macvtap за допомогою nmcli

  1. Почніть зі списку всіх доступних мережевих пристроїв, виконавши:

    nmcli device
    
  2. Далі визначте базовий мережевий пристрій, з яким потрібно зв’язати новий інтерфейс MACVTAP. Збережіть значення ідентифікованого пристрою в змінній $DEVICE2. Впишіть:

    DEVICE2=$(ls -l /sys/class/net/ | grep -v 'virtual\|total' | tail -n 1 | awk '{print $9}')
    
  3. Тепер створіть нове підключення NetworkManager під назвою macvtap2 та пов'язаний з ним інтерфейс MACVTAP під назвою macvtap2. Новий інтерфейс буде пов’язано з $DEVICE2. Впишіть:

    nmcli con add con-name macvtap2 type macvlan mode bridge  tap yes dev $DEVICE2 ifname macvtap2
    
  4. Використайте nmcli для перевірки створення інтерфейсу macvtap2. Впишіть:

    nmcli device show macvtap2
    
  5. Використайте nmcli для перевірки створення з'єднання macvtap2. Впишіть:

    nmcli connection show macvtap2
    
  6. Аналогічно, використовуйте ip для перевірки створення інтерфейсу macvtap2. Впишіть:

    ip --brief link show macvtap2
    

Зверніть увагу на вихідний стан інтерфейсу macvtap.

!!! Question "Питання"

    ```
     Яка різниця між поняттям з’єднання та поняттям пристрою в NetworkManager?
    ```

Щоб змінити конфігурацію мережі інтерфейсу за допомогою nmcli

  1. Почніть із запиту адреси IPv4 для нового інтерфейсу macvtap2, виконавши:

    nmcli -f ipv4.addresses con show macvtap2
    

Значення властивості ipv4.addresses має бути порожнім.

  1. Налаштуйте з’єднання macvtap2 із такими параметрами:

  2. IPv4 Method = manual

  3. IPv4 Addresses = 172.16.99.200/24
  4. Gateway = 172.16.99.1
  5. DNS Servers = 8.8.8.8 and 8.8.4.4
  6. DNS Search domain = example.com

Впишіть:

```bash
nmcli connection modify macvtap2  ipv4.method manual \
ipv4.addresses 172.16.99.200/24 ipv4.gateway 172.16.99.1 \
ipv4.dns 8.8.8.8,8.8.4.4 ipv4.dns-search example.com
```
  1. Перевірте налаштування нової адреси IPv4, виконавши:

    nmcli -f ipv4.addresses con show macvtap2
    
  2. Запустіть дещо інший варіант попередньої команди, щоб включити конфігурацію часу виконання наведених параметрів. Впишіть:

    nmcli -f ipv4.addresses,IP4.ADDRESS con show macvtap2
    

!!! Question "Питання"

    ```
     Яка різниця між цими властивостями NetworkManager — ipv4.addresss та IP4.ADDRESS? 
    ```
  1. Перевірте зміни в мережевому з'єднанні за допомогою команди ip. Впишіть:

    ip -br address show  dev macvtap2
    
  2. Щоб правильно застосувати нові налаштування та зробити їх новими значеннями середовища виконання, скористайтеся nmcli, щоб спочатку вимкнути з'єднання (тобто деактивувати його). Впишіть:

    nmcli connection down macvtap2
    
    Connection macvtap2 successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5)
    
  3. Тепер активуйте нове підключення, щоб застосувати нові налаштування. Впишіть:

    nmcli connection up macvtap2
    
    Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6)
    
  4. Перегляньте остаточні налаштування за допомогою утиліти ip. Впишіть:

    ip -br address show  dev macvtap2
    

Завдання 8

Налаштувати DNS-сервери

Щоб встановити адреси DNS-серверів для системи

  1. Налаштуйте DNS-сервери для macvtap1

    nmcli con mod macvtap1 ipv4.dns 8.8.8.8, 8.8.4.4
    
  2. Перевірте конфігурацію DNS-сервера

    nmcli con show macvtap1 | grep DNS
    

Завдання 9

Усунення проблем з мережею

Для виявлення та усунення типових проблем з мережею

  1. Перевірте стан мережевих інтерфейсів

    ip link show
    
  2. Перевірте мережеве підключення до віддаленого хосту (наприклад, google.com)

    ping google.com
    
  3. Спробуйте пінгувати локальний шлюз. Впишіть:

    ping _gateway
    

!!! Question "Питання"

    ```
     За допомогою якого механізму ваша система здатна правильно розпізнати ім'я `_gateway` у правильну IP-адресу вашого локально налаштованого шлюзу за замовчуванням?
    ```

Перегляд активних підключень

Щоб отримати список усіх активних мережевих підключень

  1. Список усіх активних мережевих підключень

    ss -tuln
    

Відстежуйте мережевий трафік

Для моніторингу мережевого трафіку в режимі реального часу

  1. Перехоплення мережевого трафіку на певному інтерфейсі (наприклад, macvtap1)

    tcpdump -i macvtap1
    

Аналізуйте захоплені пакети та спостерігайте за мережевою активністю. Ви можете зупинити перехоплення пакетів, натиснувши Ctrl+C

Перегляд мережевих журналів

Щоб переглянути журнали, пов’язані з демоном NetworkManager, для усунення несправностей

  1. Переглядайте мережеві журнали

    journalctl -u NetworkManager
    

Author: Wale Soyinka

Contributors: Steven Spencer, Ganna Zhyrnova