Чему вы научитесь
- Прослеживать путь HTTP-запроса от клиента через обратный прокси и приложение до зависимого сервиса, определяя границы каждого соединения
- Находить IPv4- и IPv6-адреса сетевых интерфейсов хоста и контейнера и понимать область их доступности
- Определять подсеть, шлюз, выбранный маршрут и следующий узел для заданного адреса назначения
- Находить процесс, который слушает TCP-порт, и отличать ошибку адреса или порта от остановленного сервиса
- Проверять влияние привязки к 127.0.0.1 и сетевому интерфейсу на доступность приложения с хоста и из контейнера
- Наблюдать установление TCP-соединения по SYN, SYN-ACK и ACK в сетевом захвате
- Различать отказ соединения, сброс, таймаут, повторную передачу и штатное завершение TCP по выводу клиента и пакетам
- Сравнивать обмен по TCP и UDP и объяснять наблюдаемое поведение при отсутствии ответа
- Читать DNS-записи A, AAAA и CNAME и проверять, какой адрес получает клиент при разрешении имени
- Исследовать различия между ответами резолверов и влияние кэширования на выбор адреса
- Диагностировать разрешение имён сервисов в Docker Compose и исправлять ошибки обращения к контейнерам
- Читать HTTP-запросы и ответы: метод, путь, Host, статус, заголовки и тело
- Отличать HTTP-ответы 404 и 503 от отказа соединения, а ответы прокси 502 и 504 — от ошибок самого приложения
- Проверять цепочки перенаправлений, заголовок Location и конечный адрес запроса
- Различать время установления соединения и ожидания HTTP-ответа, локализовать источник задержки
- Определять по заголовкам и журналам, какой компонент сформировал неожиданный HTTP-ответ
- Исследовать TLS-рукопожатие и влияние SNI на выбор сертификата сервером
- Проверять имя, срок действия и цепочку доверия TLS-сертификата и объяснять конкретную причину отказа
- Отличать ошибку проверки TLS от HTTP-ошибки, полученной после защищённого соединения
- Исследовать bridge-сеть Docker, адреса хоста и контейнеров и публикацию портов
- Проверять сопоставление адресов и портов через NAT и восстанавливать доступность сервиса из другой сети
- Прослеживать маршрут запроса через обратный прокси и проверять выбор upstream-сервиса
- Сопоставлять журналы прокси и приложения по идентификатору запроса и находить границу возникновения ошибки
- Диагностировать неправильный адрес или порт upstream и подтверждать исправление исходным запросом
- Проверять влияние прямого HTTP-прокси и переменных http_proxy и no_proxy на фактический маршрут клиента
- Исследовать готовый gRPC-сервис с помощью grpcurl, находить метод и выполнять контрольный вызов
- Различать gRPC-статус, ошибку соединения, TLS и превышение срока ожидания, проверять прохождение вызова через прокси с HTTP/2
- Определять по ответам и журналам, какой экземпляр приложения обслужил запрос через балансировщик
- Проверять распределение запросов и поведение балансировщика при остановке и восстановлении одного экземпляра
- Исследовать локальные правила сетевой фильтрации и различать запрет доступа, ошибку маршрута и отказ приложения
- Проверять связь приложения с учебным сервисом данных, отделяя сетевой сбой от ответа зависимого сервиса и ошибки обработки
- Выбирать следующую диагностическую команду по наблюдаемому симптому и проверять конкурирующие гипотезы
- Последовательно находить и исправлять три независимые неисправности сквозного запроса, повторяя один контроль после каждого изменения
- Оформлять технический отчёт с симптомами, сетевыми наблюдениями, подтверждёнными причинами, исправлениями и результатами повторных проверок
О курсе
Для кого этот курс
Начальные требования
📚 Что нужно знать
- HTTP и работа сервисов: понимать, как клиент отправляет запрос и получает ответ. Сетевые протоколы подробно разбираются в курсе.
- Терминал и Git: выполнять команды, читать вывод, работать с репозиторием и сохранять изменения.
- Python: уметь запускать небольшие скрипты. Язык нужен прежде всего для работы с учебным стендом.
🧰 Что понадобится
- Python 3.12, curl и Git для первых лабораторных работ.
- Аккаунт GitHub для доступа к закрытому учебному проекту и работы в собственной копии.
- Docker Engine или Docker Desktop с Compose для практики с сетями контейнеров, прокси и несколькими сервисами.
Все эксперименты проходят на локальном стенде. Подготовка окружения для Windows, macOS и Linux, установка зависимостей и диагностика проблем запуска разобраны в уроках. Платные облачные сервисы и доступ к рабочей инфраструктуре не требуются.
Преподаватели курса
Как проходит обучение
🧭 Идёте по цепочке запроса, пока причина сбоя не станет проверяемой. Объяснения и вопросы сопровождаются лабораторными заданиями в локальном сетевом стенде.
- 🔎 Собираете наблюдения: проверяете клиент, proxy, backend и базу данных по одному участку за раз.
- 🛠️ Проверяете гипотезы: сопоставляете симптомы DNS, соединения, TLS и HTTP с результатами запросов.
- ✅ Доказываете исправление: повторяете исходный сценарий и сравниваете ответ с ожидаемым.
Что вы получите
- Рабочая копия локального учебного стенда с клиентом, обратным прокси, HTTP-приложением и зависимым сервисом данных
- Схемы сетевого пути, адресов, подсетей, маршрутов, портов и соединений между компонентами стенда
- Результаты исследований TCP и UDP с сетевыми захватами, признаками отказов, повторных передач и завершения соединений
- Протоколы диагностики DNS, HTTP и TLS с фактическими запросами, ответами и выводами о причинах ошибок
- Проверенные конфигурации Docker-сетей, публикации портов и исправления недоступных соединений между контейнерами
- Результаты диагностики обратного прокси и журналы связанных запросов с подтверждёнными исправлениями upstream
- Примеры проверки gRPC через прямое соединение и прокси, а также измерения распределения запросов и поведения балансировщика при отказе
- Результаты проверки сетевых правил доступа, прокси-переменных и соединения приложения с учебным сервисом данных
- Три отдельных исправления итогового стенда с четырьмя проверенными состояниями одного сквозного запроса и сохранёнными изменениями в Git
- Итоговый технический отчёт с идентификаторами запросов, доказательствами каждой причины, результатами повторных проверок и рассмотренными альтернативами