Це машинний переклад, який може містити помилки!
Метод усунення несправностей
Тут вам потрібно ізолювати одну помилку за допомогою тесту, порівняти очікуваний та фактичний результат і обрати наступну дію. Цей метод можна застосовувати до програми, контейнера або мережевої служби. Вам потрібна відома дія користувача, яка мала спрацювати, а також доступ для дослідження відповідного рішення.
Почніть із семи кроків та пункту «Перевірка очікуваного проти фактичного» і використовуйте їх у Завданні 1. Порядок в обробці мережі є підтримкою, коли проблема стосується мережі. Таблица Linux/Proxmox — це один приклад, а не команди, які ви повинні виконувати для всіх помилок. Самоперевірка є необов’язковим вправленням.
Якщо ви хочете побачити, як цей метод застосований до конкретної помилки, дотримуйтесь моделювання усунення несправностей додатка. Там вам потрібно буде обґрунтувати наступний тест перед тим, як відкриватися пропозицію з відповідями.
Сім кроків
- Оцініть обставини. Що сталося і коли це почалося?
- Відтворіть помилку, якщо безпечно зробити це знову.
- З’ясуйте та визначте межі можливих джерел помилок — який шар або яка компонента може бути причиною?
- Отримайте інформацію — журнали, повідомлення про помилки, результати команд.
- Розгляньте можливі рішення на основі того, що вам відомо зараз.
- Тестуйте по одному рішенню чи гіпотезі за раз. Якщо ви змінюєте кілька речей одночасно, ви не знаєте, що саме фактично вирішило проблему.
- Задокументуйте помилку та її розв’язання, щоб ви (або хтось інший) впізнали його наступного разу.
Метод поділу навпіл
Тест посередині ланцюга може обмежити подальшу роботу. Якщо додаток відповідає напряму, але не через проксі, ви досліджуєте шлях крізь проксі. Ви все одно лише підтвердили саме цей прямий тест. Цей метод передбачає, що вам відомо, які елементи використовує тест; кілька помилок або різні маршрути трафіку можуть зробити просте ділення наполовину оманливим.
Порядок діагностики мережі та служб
Якщо ви не знаєте, де саме виникла помилка мережі, цей порядок дає точку відправлення. Якщо у вас уже є відповідний результат тестування, використовуйте його для визначення того, куди продовжувати дослідження. Вам не потрібно виконувати всі тести мережі через програмну помилку.
flowchart TD
A[Фізичне з'єднання] --> B[Мережевий інтерфейс]
B --> C[Налаштування IP]
C --> D[Локальна мережа]
D --> E[Шлюз і маршрутизація]
E --> F[DNS]
F --> G[Сервіс] Відео: Як перевірити з’єднання мережі за допомогою команди ping
У відео показано, як можна використовувати команду ping для перевірки доступності пристрою в межах мережі.
Для кожного пункту ви повинні бути здатними:
- пояснити, що саме фактично перевіряється контрольною точкою
- знаходити відповідні значення за допомогою правильної команди (див. 🌐 Мережеві протоколи щодо команд
ping,nslookupтощо) - розрізняти спостереження та припущення
- обирати наступну перевірку на основі результату попередньої, а не інтуїції
Команди по шарах у Linux-VM у Proxmox
Це застосування методу, коли Linux-VM не може отримати доступ до служби. Виконуйте відповідні команди в Консолі (Console) самої VM, а не в оболонці (Shell) хоста Proxmox. За потреби зверніться до 🧭 Навігація у Proxmox VE. Оберіть тест для того, що ви досліджуєте; таблиця не є обов’язковою вимогою для Завдання 1.
| Шар | Питання | Контроль | Що показує результат |
|---|---|---|---|
| Підключення VM | Чи налаштовано мережеву карту VM на міст? | У Proxmox: VM → Апаратне забезпечення (Hardware) → Мережеве пристрій (Network Device) | Міст, наприклад bridge=vmbr0, і відсутність link_down=1 свідчать про налаштування підключення; це не доказує працездатності фізичної мережі хоста |
| Мережний інтерфейс | Чи активований інтерфейс усередині VM? | ip -brief link | Інтерфейс, наприклад ens18, має статус UP |
| Налаштування IP | Чи отримала VM IP-адресу? | ip -brief address | Інтерфейс має IPv4-адресу з префіксом, наприклад 10.0.0.50/24 |
| Локальна мережа | Чи доступна шлюзова адреса для VM? | ip route вказує шлюзову адресу після default via. Виконайте ping -c 3 <gateway> | Ви отримуєте відповідь від шлюзу |
| Шлюз та маршрутизація | Чи може VM дістати адресу поза власною мережею? | ping -c 3 1.1.1.1 | Ви отримуєте відповідь |
| DNS | Чи може VM виконувати пошук імен? | getent hosts deb.debian.org | Команда виводить IP-адресу |
| Служба | Чи працює конкретна функція? | Для репозиторіїв пакетів: sudo apt update. Для локального web-контейнера Docker 1: curl --fail --show-error http://127.0.0.1:8080 | Порівнюється з очікуваним результатом саме цієї функції; перевірка локального HTTP не тестує підключення з іншого клієнта |
Якщо стандартного маршруту немає, досліджуйте, як VM має отримувати доступ до цілей поза своєю мережею; окремі цілі можуть мати власні маршрути. Деякі мережі блокують ping, тому відсутність відповіді сама по собі не є доказом розриву зв’язку. Якщо пошук імен та репозитории пакетів працюють, у вас є конкретні результати для подальшої роботи. 🌐 IP, підресурси та стандартний шлюз пояснює адреси, префікси та маршрути.
Тест очікуваного проти фактичного
Тест для діагностики помилок корисний лише тоді, коли ви знаєте, чого чекаєте до його запуску. Запишіть:
Потрібно: Що повинен міг робити користувач?
Мета: Яку адресу/сервіс ви тестуєте?
Очікуване: Що має статися, якщо все працює?
Фактичне: Що сталося?
Доводить: Який результат це доводить?
Не доводить окремо: Чого НЕ доводить цей результат?
Один тест рідко доводить все
Те, що ping відповідає, свідчить про те, що працює ICMP — а не те, що функціонує DNS або сама служба. Те, що веб-сторінка відкривається, показує лише те, що HTTP(S) відповів на саме це запитання — а не те, що всі інші служби на сервері активні. Тестуйте ту функцію, яка реально потрібна користувачеві, а не просто чи щось взагалі «відповідає».
Завдання 1 - Застосуйте метод до реальної проблеми
Візьміть проблему, з якою ви стикнулися в іншому курсі або темі з підтримки експлуатації (Driftsstøtte) чи розробки (Utvikling): контейнер, який не запускається, служба, яку не вдається досягти, скрипт із помилкою:
- Проходьте сім кроків, описаних вище, по одному за разом.
- Запишіть «очікуване проти фактичного» для кожного тесту, який ви виконуєте.
- Зробіть нотатки про те, який компонент або шар визначає цей тест. Використовуйте мережеву послідовність лише тоді, коли вона відповідає проблемі.
- Спробуйте одну обґрунтовану виправлення у тестовому середовищі, де вам дозволено вносити зміни. Повторіть початкову дію користувача та перевірте, що виправлення дійсно працює. Збережіть можливість повернення до попереднього налаштування.
Якщо у вас немає доступних помилок, ви можете проаналізувати цей приклад: додаток відображає очікуючу сторінку на /, але HTTP 404 на /status. Що показують ці два відповіді і що б ви досліджували першим? Обидва запиту отримали HTTP-відповідь; перша перевірка полягає в тому, чи /status дійсно існує в додатку та чи клієнт використовує правильний маршрут. Цей приклад є вправою для аналізу, а не підтвердженням того, що ви вирішили власну проблему.
Контрольна точка: Помилка визначена та контрольована
Покажіть журнал тестування та поясніть, яке спостереження підтримало наступний тест або виправлення. Після виправлення початкова дія має давати очікуваний результат. Ви можете пояснити усно або письмово за допомогою команд і результатів перед вами. Якщо помилка все ще відкрита, вкажіть, що було протестовано, що залишається невизnaczеним і один точний наступний тест. Не описуйте припущену причину як підтверджену.
Перевірте себе
Необов’язкова самоперевірка зі зворотним зв’язком. Відповіді не надсилаються вчителеві. Використовуйте власний журнал тестування для демонстрації фактичної діагностики помилок; самоперевірка не замінює практичного контролю.
Підсумок
- Відладка — це метод, а не вгадування – сім фіксованих кроків від ідентифікації до документування
- Метод подвоєння може обмежити ланцюг, якщо ви знаєте елементи, які використовує тест
- Для мереж: використовуйте шари, щоб обрати відповідний наступний тест на основі того, що ви спостерігаєте
- Завжди записуйте очікувані та фактичні значення перед тестом і пам’ятайте, що один тест рідко доводить все