Shanraq.org Shanraq.org
Сеть без магии: IP, порт, DNS, HTTP и TLS
IT

Cloud & DevOps: от локального приложения до надёжного сервиса Урок 5 из 24

Сеть без магии: IP, порт, DNS, HTTP и TLS

Прослеживаем запрос от имени домена до сокета процесса и учимся локализовать сетевой отказ по слоям.

Текст переведён с помощью ИИ.

Этот урок начинается с нуля. Незнакомое слово здесь не считается вашим пробелом: мы сначала создадим образ, затем дадим точное значение и только потом применим его.

Где мы находимся

Полётное повторение. В прошлом уроке была опора программа + запуск = процесс(PID); TERM → завершиться; журнал → что было. Не подглядывая, назовите её четыре звена и только затем сравните с записью.

Результат урока

Прослеживаем запрос от имени домена до сокета процесса и учимся локализовать сетевой отказ по слоям. Не переходите дальше, пока не можете объяснить, что проверяет каждая команда и какой отказ она обнаруживает.

Сначала знакомый образ

Представьте большой деловой центр. Доменное имя — знакомое название организации. DNS — справочная, которая находит адрес здания. IP — адрес здания в сети. Порт — номер нужной приёмной внутри здания. TCP проверяет, можно ли установить разговор с этой приёмной. TLS сверяет удостоверение собеседника и создаёт закрытый коридор. HTTP — язык, на котором вы просите конкретный документ.

Аналогия помогает начать рассуждение, но не заменяет устройство технологии. Ниже мы уточним каждое слово.

Опорный сигнал урока

имя → DNS → IP → TCP:порт → TLS → HTTP → ответ

Прочитайте цепочку слева направо. Она отвечает не на вопрос «какую команду запомнить», а на вопрос «почему следующий шаг следует из предыдущего».

Новые слова простыми словами

  • DNS — Система, которая переводит доменное имя в IP-адрес.
  • IP-адрес — Числовой сетевой адрес устройства или интерфейса.
  • Порт — Число от 0 до 65535, направляющее соединение к нужной программе на адресе.
  • TCP / HTTP / TLS — TCP переносит упорядоченный поток; HTTP задаёт смысл запроса; TLS шифрует и проверяет сторону по сертификату.

Разбираем без спешки

DNS отвечает «какой адрес», TCP — «удаётся ли соединиться с портом», HTTP — «понял ли приложение запрос», TLS — «с кем установлено защищённое соединение». Проверяйте слои по порядку: иначе ошибка сертификата может маскироваться как «сервер не работает».

Сейчас не нужно запоминать формулировку дословно. Найдите в ней причинную связь и привяжите её к опорному сигналу выше.

Сначала предскажите результат

До запуска ответьте на бумаге: что должно измениться, что должно остаться прежним и какой вывод команды подтвердит ваш прогноз? Даже неверный прогноз полезен, если после опыта вы можете объяснить расхождение.

Опыт маленькими шагами

Выполните команды из корня course/cloud-devops-lab. Команды рассчитаны на учебную среду. Перед командой, меняющей сервер или данные, прочитайте её целиком и проверьте текущий каталог. Запускайте блок по одной смысловой группе. После каждой остановитесь и сопоставьте результат со своим прогнозом.

getent hosts example.com 2>/dev/null || nslookup example.com
curl -sS -o /dev/null -w 'status=%{http_code} ip=%{remote_ip} tls=%{ssl_verify_result}\n' https://example.com
printf 'GET /healthz HTTP/1.1\r\nHost: localhost\r\nConnection: close\r\n\r\n' | nc 127.0.0.1 8080 || true

Эталонные файлы проекта.

Что именно делает этот опыт

Сначала getent спрашивает DNS. Затем curl отдельно печатает HTTP-код, удалённый IP и результат проверки TLS. Последняя команда обращается прямо к локальному IP и порту. CloudLab мы запустим в следующем уроке, поэтому сейчас отказ соединения допустим и полезен: он показывает, что адрес существует, но на порту никто не принимает запрос.

Что должно получиться

  • DNS возвращает адрес отдельно от HTTP.
  • curl показывает статус, удалённый IP и результат TLS.
  • Вы знаете, почему порт 443 не является самим HTTPS.

Соберите целое по опорной схеме

Опорная схема 5

Проведите пальцем или карандашом по четырём блокам и расскажите весь урок одним связным объяснением.

Воспроизведите без подсказки

  1. Закройте схему и нарисуйте четыре блока по памяти.
  2. Объясните каждый переход словами «потому что».
  3. Дайте определение одному новому термину, не повторяя текст дословно.
  4. Назовите один сигнал, который доказывает результат.

Найдите и исправьте ошибку

Ошибка: «DNS открывает сайт». Исправление: DNS только сообщает IP; после него ещё нужны соединение, при необходимости TLS, HTTP-запрос и работа приложения.

Задание

Теперь соберите тот же смысл самостоятельно. Можно смотреть на опорную схему; цель — не экзамен на память, а воспроизводимый результат.

Обязательное. Напишите POSIX sh-скрипт диагностики: принять URL аргументом, вывести HTTP-код и удалённый IP через curl, завершиться ошибкой при коде 400 и выше. Отправьте только команды или скрипт POSIX sh без реальных ключей и токенов.

Критерии готовности

  • Вы понимаете каждую запускаемую строку.
  • Повторный запуск даёт ожидаемый результат или безопасно объяснённое отличие.
  • В выводе нет настоящих ключей, токенов и паролей.
  • Вы можете показать факт, который подтверждает успех.

Если проверка не прошла, зафиксируйте ожидаемое и фактическое, вернитесь к одному разорванному звену опоры и повторите. Ошибка не отнимает у вас право продолжать обучение.

По желанию. Запишите один возможный отказ и сигнал, по которому вы его заметите.

Открытая перспектива

Следующий урок добавит новую опору: CloudLab: сервис, среда и критерии готовности.

Оглавление курса

Если вы нашли ошибку или опечатку в тексте статьи, то сообщите нам об этом

Проверить задание

Сначала решите и запустите в VS Code — редактор покажет ошибку на месте. Готовое решение вставьте сюда. Проверяет модель: она укажет на ошибку, но не даст готовый ответ.

Чтобы проверить, нужно войти. Войти

Комментарии (0)

Пока нет комментариев. Будьте первым.