Лабораторна робота 5: Основи роботи в мережі¶
Цілі¶
Після виконання цієї лабораторної роботи ви зможете:
- Створювати віртуальні мережеві пристрої
- Керувати мережевими пристроями та налаштуваннями в системі Linux за допомогою набору інструментів
iproute2(ip) - Керувати мережевими пристроями та налаштуваннями в системі Linux за допомогою набору інструментів NetworkManager (
nmcli) - Усувати типові проблеми з мережею
Приблизний час виконання цієї лабораторної роботи: 60 хвилин
Огляд¶
У цьому лабораторному занятті «Основи роботи в мережі» розглядаються різноманітні вправи з налаштування мережі та усунення несправностей на сервері Linux. Ви будете краще підготовлені для керування мережевими налаштуваннями та усунення несправностей за допомогою звичайних мережевих утиліт, доступних у системах на базі Linux.
Завдання 1¶
Змінити ім'я хоста¶
Існує багато методів ідентифікації або посилання на комп’ютери. Деякі методи гарантують унікальність [особливо в мережі], а інші ні. Ім’я комп’ютера можна вважати зручним для людини. В ідеалі імена хостів комп’ютерів мають бути унікальними залежно від того, як ними керують або призначають. Але оскільки будь-хто з правами адміністратора в системі може в односторонньому порядку призначити системі будь-яке ім’я хоста, унікальність не завжди гарантована.
У цій першій вправі розглядаються деякі загальні інструменти для керування іменем хоста комп’ютера.
Щоб змінити ім'я хоста системи¶
-
Увійшовши у свою систему, перегляньте поточне ім'я хоста за допомогою популярної утиліти
hostname. Впишіть:hostname -
Знову запустіть утиліту
hostnameз іншою опцією, щоб переглянути FQDN сервера:hostname --fqdn
!!! Question "Питання"
```
Що означає абревіатура FQDN? І чому результат простого імені хоста сервера вашого сервера відрізняється від його FQDN?
```
-
Використайте утиліту
hostnamectlдля перегляду поточних імен хостів. Впишіть:hostnamectl
Це багато додаткової інформації!
-
Додайте опцію
--staticдо командиhostnamectl, щоб переглянути статичне ім'я хоста вашого сервера. Впишіть:hostnamectl --static -
Додайте параметр
--transientдо командиhostnamectl, щоб переглянути тимчасове ім’я хоста для вашого сервера. -
Тепер спробуйте опцію
--prettyдля командиhostnamectl, щоб переглянути красиве ім’я хоста для вашого сервера. -
Встановіть нове тимчасове ім’я хоста для вашого сервера. Впишіть:
hostnamectl --transient set-hostname my-temp-server1 -
Перевірте тимчасову зміну імені хоста. Впишіть:
hostnamectl --transient -
Встановіть нове статичне ім’я хоста для вашого сервера. Впишіть:
hostnamectl set-hostname my-static-hostname1 -
Перевірте зміну статичного імені хоста.
Питання
Зверніться до сторінки довідки щодо `hostnamectl`. Які відмінності між гарними, тимчасовими та статичними іменами хостів?
Завдання 2¶
Першим важливим кроком, який вам потрібно виконати перед тим, як переходити до інших вправ у цій мережевій лабораторній роботі, буде створення спеціального віртуального мережевого інтерфейсу, відомого як пристрій MACVTAP.
Пристрої MACVTAP — це віртуальні пристрої, які поєднують властивості лише програмного інтерфейсу, відомого як пристрій TAP, а також властивості драйвера MACVLAN.
Створення та робота з цими пристроями MACVTAP дозволить вам безпечно тестувати, змінювати та налаштовувати різні пов’язані з мережею завдання. Ці віртуальні мережеві інтерфейси будуть використовуватися в різних вправах без порушення існуючої конфігурації мережі.
Tip
Пристрої TAP забезпечують лише програмний інтерфейс, до якого програми з простору користувача можуть легко отримати доступ. Пристрої TAP надсилають і отримують необроблені кадри Ethernet. MACVLAN використовується для створення віртуальних мережевих інтерфейсів, які приєднуються до фізичних мережевих інтерфейсів. Пристрої MACVTAP мають власну унікальну MAC-адресу, відмінну від MAC-адреси основної фізичної мережевої карти, з якою вони пов’язані.
Створення інтерфейсів MACVTAP¶
Ця вправа починається зі створення необхідних інтерфейсів віртуальної мережі MACVTAP. Це дозволить вам безпечно тестувати, змінювати та налаштовувати різні завдання, пов’язані з конфігурацією мережі. Ці віртуальні мережеві інтерфейси будуть використовуватися в різних вправах без порушення існуючої конфігурації мережі.
Щоб отримати список усіх мережевих інтерфейсів у системі¶
-
Переконайтеся, що ви ввійшли на сервер.
-
Використайте програму
ipдля перегляду існуючих мережевих інтерфейсів у вашій системі. Впишіть:ip link show -
Спробуйте скористатися командою
nmcli, щоб переглянути список усіх мережевих пристроїв. Впишіть:nmcli -f DEVICE device -
Запитуйте віртуальну файлову систему низького рівня /sys, щоб вручну перерахувати ВСІ мережеві інтерфейси, доступні на вашому сервері. Впишіть:
ls -l /sys/class/net/ | grep -v 'total' | awk '{print $9}'
Для створення інтерфейсів macvtap¶
-
Переконайтеся, що ви ввійшли в систему як користувач із правами адміністратора.
-
Вам потрібно запитати та визначити відповідні типи мережевих пристроїв, доступних на вашому сервері, щоб мати змогу пов’язати їх із пристроєм
macvtap. Впишіть:ls -l /sys/class/net/ | grep -v 'virtual\|total' | tail -n 1 | awk '{print $9}' eno2
Результат демонстраційної системи демонструє один відповідний інтерфейс під назвою eno2.
-
Виконайте команду, щоб знову ідентифікувати пристрій, але збережіть повернуте значення в змінній з іменем $DEVICE1. Ще раз перевірте значення $DEVICE1 за допомогою echo. Введіть наступні 2 окремі команди, щоб виконати це:
# DEVICE1=$(ls -l /sys/class/net/ | grep -v 'virtual\|total' | tail -n 1 | awk '{print $9}') # echo $DEVICE1 -
Тепер створіть інтерфейс MACVTAP з назвою
macvtap1. Новий інтерфейс буде пов'язаний з $DEVICE1. Впишіть:ip link add link $DEVICE1 name macvtap1 type macvtap mode bridge -
Перевірте створення інтерфейсу
macvtap1. Впишіть:ip --brief link show macvtap1
Зверніть увагу на стан DOWN інтерфейсу macvtap у вихідних даних.
-
Перегляньте детальну інформацію про всі мережеві пристрої типу MACVTAP у системі. Впишіть:
ip --detail link show type macvtap -
Виконайте команду, щоб переглянути всі мережеві інтерфейси на сервері та порівняйте вихідні дані з результатами аналогічної команди в попередньому розділі «Щоб перелічити всі мережеві інтерфейси в системі».
Увімкнення/вимкнення мережевого інтерфейсу¶
Щоб увімкнути або вимкнути мережевий інтерфейс¶
-
Перевірте стан мережевого інтерфейсу
macvtap1. Впишіть:ip link show macvtap1 -
Увімкнути мережевий інтерфейс
macvtap1(якщо він наразі вимкнено). Запустіть:ip link set macvtap1 up -
Перевірте зміни статусу, виконавши:
ip -br link show macvtap1
!!! TIP "Підказка"
```
Iякщо вам коли-небудь знадобиться вимкнути мережевий інтерфейс, синтаксис команди `ip` для цього такий: `ip link set <IFNAME> down`. Наприклад, щоб вимкнути мережевий інтерфейс з назвою `macvtap7`, потрібно виконати:
```bash
ip link set macvtap7 down
```
```
Тепер, коли ви налаштували інтерфейси macvtap, ви можете безпечно виконувати різноманітні завдання налаштування мережі та усунення несправностей у вправах, що залишилися.
Завдання 3¶
Призначити IP-адреси¶
Щоб встановити IP-адреси на мережевому інтерфейсі¶
-
Перегляньте IP-адреси всіх мережевих інтерфейсів на вашому сервері. Впишіть:
ip address show -
Призначте IP-адресу — 172.16.99.100 — для
macvtap1. Впишітьip address add 172.16.99.100/24 dev macvtap1 -
Перевірте призначення IP-адреси для
macvtap1ip address show macvtap1 -
Використовуйте команду
nmcli, щоб переглянути IPv4-адреси всіх інтерфейсів у вашій системі. Впишіть:nmcli --get-values IP4.ADDRESS,GENERAL.DEVICE device show
Завдання 4¶
Налаштувати IPv6-адреси¶
Щоб призначити адреси IPv6 інтерфейсам macvtap¶
-
Починаючи з
macvtap1, призначте адресу 2001:db8::1/64 IPv6macvtap1, виконавши:ip -6 address add 2001:db8::1/64 dev macvtap1 -
Перевірте призначення адрес IPv6, введіть:
ip --brief -6 address show macvtap1 && ip -br -6 address show macvtap1 -
Використовуйте
nmcliдля перегляду IPv6-адрес усіх інтерфейсів у вашій системі. Впишіть:nmcli --get-values IP6.ADDRESS,GENERAL.DEVICE device show
Завдання 5¶
Управління маршрутизацією¶
Щоб переглянути таблицю маршрутизації системи.¶
-
Перегляньте поточну таблицю маршрутизації для системи. Впишіть:
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 -
Використовуючи одну з мереж, відображену в крайньому лівому стовпці вихідних даних попередньої команди, як аргумент, відобразіть запис таблиці маршрутів для цієї мережі. Наприклад, щоб показати запис таблиці маршрутів ядра для мережі 10.99.99.0/24, введіть:
ip route show 10.99.99.0/24 -
Зробіть запит до системи, щоб побачити маршрут, який буде використано для досягнення довільного прикладу пункту призначення. Наприклад, щоб переглянути деталі маршрутизації для досягнення 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>
Встановити шлюз за замовчуванням¶
Щоб налаштувати шлюз за замовчуванням для системи¶
-
Використовуйте
ipдля запиту та отримання списку поточного шлюзу за замовчуванням у вашій системі. Впишіть:ip route show default -
Встановіть шлюз за замовчуванням через інтерфейс
macvtap1. Впишіть:ip route add default via 192.168.1.1 -
Перевірте нову конфігурацію шлюзу за замовчуванням
ip route show default
Додати статичний маршрут¶
Щоб додати статичний маршрут до таблиці маршрутизації¶
-
Додайте демонстраційний статичний маршрут для фіктивної мережі 172.16.0.0/16 через 192.168.1.2. Впишіть:
ip route add 172.16.0.0/16 via 192.168.1.2 -
Перевірте додавання статичного маршруту, виконавши:
ip route show 172.16.0.0/16
Видалити статичний маршрут¶
Щоб видалити статичний маршрут із таблиці маршрутизації¶
-
Видалити статичний маршрут для 10.0.0.0/24
ip route del 10.0.0.0/24 via 192.168.1.2 -
Перевірте видалення статичного маршруту
ip route show
Завдання 6¶
Видалення IP-адрес¶
У цій вправі описано, як видалити налаштовані IP-адреси (IPv4 та IPv6) на мережевих інтерфейсах.
Видалити адресу IPv4¶
Щоб видалити призначену IP-адресу з мережевого інтерфейсу¶
-
Видалити IP-адресу на
macvtap1. Впишіть:ip address del 172.16.99.100/24 dev macvtap1 -
Перевірте видалення IP-адреси, виконавши:
ip address show macvtap1
Видалити адресу IPv6¶
Щоб видалити призначену IPv6-адресу з мережевого інтерфейсу¶
-
Видаліть адресу IPv6 на
macvtap1за допомогою цієї команди:ip -6 address del 2001:db8::1/64 dev macvtap1 -
Перевірте видалення адреси IPv6 за допомогою:
ip -6 address show macvtap1
Завдання 7¶
Налаштуйте мережеві інтерфейси за допомогою nmcli¶
У цій вправі показано, як налаштувати мережеві інтерфейси за допомогою інструментів NetworkManager.
Примітка
За замовчуванням будь-які зміни конфігурації мережі, внесені за допомогою `nmcli` (NetworkManager), зберігатимуться між перезавантаженнями системи.
Це відрізняється від змін конфігурації, які виконуються за допомогою утиліти `ip`.
Щоб створити інтерфейс macvtap за допомогою nmcli¶
-
Почніть зі списку всіх доступних мережевих пристроїв, виконавши:
nmcli device -
Далі визначте базовий мережевий пристрій, з яким потрібно зв’язати новий інтерфейс MACVTAP. Збережіть значення ідентифікованого пристрою в змінній $DEVICE2. Впишіть:
DEVICE2=$(ls -l /sys/class/net/ | grep -v 'virtual\|total' | tail -n 1 | awk '{print $9}') -
Тепер створіть нове підключення NetworkManager під назвою
macvtap2та пов'язаний з ним інтерфейс MACVTAP під назвоюmacvtap2. Новий інтерфейс буде пов’язано з $DEVICE2. Впишіть:nmcli con add con-name macvtap2 type macvlan mode bridge tap yes dev $DEVICE2 ifname macvtap2 -
Використайте
nmcliдля перевірки створення інтерфейсуmacvtap2. Впишіть:nmcli device show macvtap2 -
Використайте
nmcliдля перевірки створення з'єднанняmacvtap2. Впишіть:nmcli connection show macvtap2 -
Аналогічно, використовуйте
ipдля перевірки створення інтерфейсуmacvtap2. Впишіть:ip --brief link show macvtap2
Зверніть увагу на вихідний стан інтерфейсу macvtap.
!!! Question "Питання"
```
Яка різниця між поняттям з’єднання та поняттям пристрою в NetworkManager?
```
Щоб змінити конфігурацію мережі інтерфейсу за допомогою nmcli¶
-
Почніть із запиту адреси IPv4 для нового інтерфейсу
macvtap2, виконавши:nmcli -f ipv4.addresses con show macvtap2
Значення властивості ipv4.addresses має бути порожнім.
-
Налаштуйте з’єднання
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
Впишіть:
```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
```
-
Перевірте налаштування нової адреси IPv4, виконавши:
nmcli -f ipv4.addresses con show macvtap2 -
Запустіть дещо інший варіант попередньої команди, щоб включити конфігурацію часу виконання наведених параметрів. Впишіть:
nmcli -f ipv4.addresses,IP4.ADDRESS con show macvtap2
!!! Question "Питання"
```
Яка різниця між цими властивостями NetworkManager — ipv4.addresss та IP4.ADDRESS?
```
-
Перевірте зміни в мережевому з'єднанні за допомогою команди
ip. Впишіть:ip -br address show dev macvtap2 -
Щоб правильно застосувати нові налаштування та зробити їх новими значеннями середовища виконання, скористайтеся
nmcli, щоб спочатку вимкнути з'єднання (тобто деактивувати його). Впишіть:nmcli connection down macvtap2 Connection macvtap2 successfully deactivated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/5) -
Тепер активуйте нове підключення, щоб застосувати нові налаштування. Впишіть:
nmcli connection up macvtap2 Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/6) -
Перегляньте остаточні налаштування за допомогою утиліти ip. Впишіть:
ip -br address show dev macvtap2
Завдання 8¶
Налаштувати DNS-сервери¶
Щоб встановити адреси DNS-серверів для системи¶
-
Налаштуйте DNS-сервери для
macvtap1nmcli con mod macvtap1 ipv4.dns 8.8.8.8, 8.8.4.4 -
Перевірте конфігурацію DNS-сервера
nmcli con show macvtap1 | grep DNS
Завдання 9¶
Усунення проблем з мережею¶
Для виявлення та усунення типових проблем з мережею¶
-
Перевірте стан мережевих інтерфейсів
ip link show -
Перевірте мережеве підключення до віддаленого хосту (наприклад, google.com)
ping google.com -
Спробуйте пінгувати локальний шлюз. Впишіть:
ping _gateway
!!! Question "Питання"
```
За допомогою якого механізму ваша система здатна правильно розпізнати ім'я `_gateway` у правильну IP-адресу вашого локально налаштованого шлюзу за замовчуванням?
```
Перегляд активних підключень¶
Щоб отримати список усіх активних мережевих підключень¶
-
Список усіх активних мережевих підключень
ss -tuln
Відстежуйте мережевий трафік¶
Для моніторингу мережевого трафіку в режимі реального часу¶
-
Перехоплення мережевого трафіку на певному інтерфейсі (наприклад,
macvtap1)tcpdump -i macvtap1
Аналізуйте захоплені пакети та спостерігайте за мережевою активністю. Ви можете зупинити перехоплення пакетів, натиснувши Ctrl+C
Перегляд мережевих журналів¶
Щоб переглянути журнали, пов’язані з демоном NetworkManager, для усунення несправностей¶
-
Переглядайте мережеві журнали
journalctl -u NetworkManager
Author: Wale Soyinka
Contributors: Steven Spencer, Ganna Zhyrnova