# Лаборатория курса «Сети: найти причину недоступности»

Версия материалов: 70df327-c1 (Codex: изоляция curlrc), главы 1–6. Архив распаковывайте в новую отдельную папку.
Среда: Ubuntu 24.04/Linux, Python 3.12, curl, ss (iproute2), nc (netcat), OpenSSL 3.
Интернет, ключи API, Docker и права администратора для запуска не нужны.

В обоих терминалах перейдите в распакованную папку network-diagnostics.
Первый терминал: python3 lab/netlab.py start ch1
Второй терминал: python3 lab/netlab.py fetch http://notes.lab.test:18080/api/notes
Сценарий останавливается через Ctrl+C. Перед другой главой остановите прежний.

Сценарии: ch1/ch1b, ch2/ch2b, ch3/ch3b, ch4/ch4b, ch5/ch5b, ch6/ch6b.
case1/case1b — локальное воспроизведение кейса про посредника.
start — новая попытка с исходными заметками; set меняет работающий сценарий.
Файл lab/hosts.boris — учебная копия, не системный /etc/hosts.

Порты только loopback: UDP 127.0.0.1:15353; TCP 18080–18082, 18090, 18099,
18443, 19000, 19001, 19010; используются 127.0.0.1, 127.0.0.2, 127.0.0.3.
Если занят порт, лаборатория отказывает; чужие процессы не завершайте.
Не запускайте два сценария одновременно. DNS, hosts, маршруты, файрвол и часы ОС не меняются.

Глава 5 создаёт учебную CA и ключи во временной папке, которая удаляется при остановке.
Путь CA печатается при старте. Доверяйте ей только в отдельном вызове --cacert.
Не устанавливайте CA в систему/браузер. -k — разовая диагностика, не ремонт.
Вызовы fetch обходят внешние прокси. Прямому curl добавляйте --noproxy '*'.

lab-proxy и настройка strip_prefix — учебная модель, не синтаксис nginx.
В модели префикс срезается до переписывания пути. У nginx rewrite ... break вместе
с proxy_pass с URI работает иначе; не переносите комбинацию настроек автоматически.
Условия проверок и разборы — на страницах курса:
https://rootpoligon.ru/courses/network-diagnostics

Проверено на Linux/Python 3.12.3/curl 8.5.0/OpenSSL 3.0.13.
Формулировки сообщений зависят от версии. macOS/Windows без Linux не проверены.

Глава 6: start ch6 или start ch6b печатает пути anna.conf и boris.conf.
Это учебные профили curl в своей временной папке; после Ctrl+C они удаляются.
client --profile ФАЙЛ URL использует настоящий curl; --verbose добавляет диагностику.
Личный curlrc и proxy-переменные для client отключены в обоих режимах.
lab-egress — учебный HTTP-прокси, только с таблицей имён лаборатории, без HTTPS/CONNECT.
