Лабораторна робота 5: Основи роботи в мережі¶
Завдання¶
Після виконання цієї лабораторної роботи ви зможете:
- Створювати віртуальні мережеві пристрої
- Керувати мережевими пристроями та налаштуваннями в системі Linux за допомогою набору інструментів
iproute2
(ip
) - Керувати мережевими пристроями та налаштуваннями в системі Linux за допомогою набору інструментів NetworkManager (
nmcli
) - Усувати типові проблеми з мережею
Приблизний час виконання цієї лабораторної роботи: 60 хвилин
Огляд¶
У цьому лабораторному занятті «Основи роботи в мережі» розглядаються різноманітні вправи з налаштування мережі та усунення несправностей на сервері Linux. Ви будете краще підготовлені для керування мережевими налаштуваннями та усунення несправностей за допомогою звичайних мережевих утиліт, доступних у системах на базі Linux.
Завдання 1¶
Змінити ім'я хоста¶
Існує багато методів ідентифікації або посилання на комп’ютери. Деякі методи гарантують унікальність [особливо в мережі], а інші ні. Ім’я комп’ютера можна вважати зручним для людини. В ідеалі імена хостів комп’ютерів мають бути унікальними залежно від того, як ними керують або призначають. Але оскільки будь-хто з правами адміністратора в системі може в односторонньому порядку призначити системі будь-яке ім’я хоста, унікальність не завжди гарантована.
У цій першій вправі розглядаються деякі загальні інструменти для керування іменем хоста комп’ютера.
Щоб змінити ім'я хоста системи¶
-
Увійшовши у систему, перегляньте поточне ім’я хосту за допомогою популярної утиліти
hostname
. Впишіть:hostname
-
Знову запустіть утиліту
hostname
з іншою опцією, щоб переглянути FQDN сервера:hostname --fqdn
Питання
Що означає 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 дозволить вам безпечно тестувати, змінювати та налаштовувати різні пов’язані з мережею завдання. Ці віртуальні мережеві інтерфейси будуть використовуватися в різних вправах без порушення існуючої конфігурації мережі.
Підказка
Пристрої 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
Підказка
Якщо вам колись знадобиться вимкнути мережевий інтерфейс, синтаксис команди
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-адреси для
macvtap1
ip 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
-
Далі для
macvtap1
призначте адресу 2001:db8::2/64 IPv6, виконавши:# ip -6 address add 2001:db8::2/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, введіть:
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
.Питання
Яка різниця між поняттям підключення та поняттям пристрою в 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
Впишіть:
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
Питання
Яка різниця між цими властивостями NetworkManager - ipv4.addresses і 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-сервери для
macvtap1
nmcli 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
Питання
За допомогою якого механізму ваша система може правильно розпізнати назву
_gateway
у правильну IP-адресу для вашого локально налаштованого шлюзу за замовчуванням?
Перегляд активних підключень¶
Щоб отримати список усіх активних мережевих підключень¶
-
Список усіх активних мережевих підключень
ss -tuln
Відстежуйте мережевий трафік¶
Для моніторингу мережевого трафіку в режимі реального часу¶
-
Перехоплення мережевого трафіку на певному інтерфейсі (наприклад,
macvtap1
)tcpdump -i macvtap1
Аналізуйте захоплені пакети та спостерігайте за мережевою активністю. Ви можете зупинити перехоплення пакетів, натиснувши Ctrl+C
Перегляд мережевих журналів¶
Щоб переглянути журнали, пов’язані з демоном NetworkManager, для усунення несправностей¶
-
Переглядайте мережеві журнали
journalctl -u NetworkManager
Author: Wale Soyinka
Contributors: Steven Spencer, Ganna Zhyrnova