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

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

Завдання

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

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

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

Огляд

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

Завдання 1

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

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

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

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

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

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

    hostname --fqdn
    

    Питання

    Що означає FQDN? І чому результат звичайного імені хоста сервера відрізняється від його FQDN?

  3. Використовуйте утиліту 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 дозволить вам безпечно тестувати, змінювати та налаштовувати різні пов’язані з мережею завдання. Ці віртуальні мережеві інтерфейси будуть використовуватися в різних вправах без порушення існуючої конфігурації мережі.

Підказка

Пристрої 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.

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

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

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

    ip --brief link show macvtap1
    

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

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

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

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

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

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

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

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

    ip -br  link show macvtap1
    

    Підказка

    Якщо вам колись знадобиться вимкнути мережевий інтерфейс, синтаксис команди 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. Далі для macvtap1 призначте адресу 2001:db8::2/64 IPv6, виконавши:

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

    ip --brief -6 address show macvtap1 && ip -br -6 address show macvtap1
    
  4. Використовуйте 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, введіть:

    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: це поле вказує, чи цей маршрут кешується в таблиці маршрутизації ядра
  4. Тепер подивіться, як система направлятиме пакет з однієї 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.

    Питання

    Яка різниця між поняттям підключення та поняттям пристрою в NetworkManager?

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

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

    nmcli -f ipv4.addresses con show macvtap2
    

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

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

    • IPv4 Method = manual
    • IPv4 Addresses = 172.16.99.200/24
    • Gateway = 172.16.99.1
    • DNS Servers = 8.8.8.8 and 8.8.4.4
    • DNS Search domain = example.com

    Впишіть:

    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
    
  3. Перевірте налаштування нової адреси IPv4, виконавши:

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

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

    Питання

    Яка різниця між цими властивостями NetworkManager - ipv4.addresses і IP4.ADDRESS?

  5. Перевірте зміни в мережевому підключенні за допомогою команди ip. Впишіть:

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

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

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

    Питання

    За допомогою якого механізму ваша система може правильно розпізнати назву _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