Лабораторна робота 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
Перевірте призначення адрес 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