← Назад к списку
ТехническаяDevOps и SREJunior

Расскажите про модель OSI. На каких уровнях работают балансировщики L4 и L7?

Короткий ответ

  • OSI — семиуровневая эталонная модель от физики до приложения
  • На практике используется стек TCP/IP из четырёх уровней
  • L4-балансировщик смотрит на IP и порты, не видит содержимое
  • L7-балансировщик разбирает HTTP: пути, заголовки, cookie
  • Каждому уровню соответствуют свои протоколы и инструменты отладки
  • Модель нужна как общий язык при локализации проблем

OSI — это карта для локализации сетевых проблем, а L4/L7 — два практических уровня балансировки.

Как сказать вслух

пример ответа

OSI — это модель из семи уровней, от физического кабеля до приложения. На практике мы чаще мыслим стеком TCP/IP, но OSI удобна как общий язык. Балансировщик четвёртого уровня распределяет трафик по IP-адресам и портам, а седьмого — уже понимает HTTP и может маршрутизировать по URL или заголовкам. Я использую модель, чтобы при отладке идти по слоям снизу вверх.

Подробный ответ

Основной ответ

Уровни OSI: физический, канальный (Ethernet, MAC), сетевой (IP, маршрутизация), транспортный (TCP/UDP, порты), сеансовый, представления и прикладной (HTTP, DNS, TLS условно относят к 5–6). В реальности применяется модель TCP/IP: канальный, сетевой, транспортный и прикладной. L4-балансировщик (например, режим TCP в haproxy, NLB в AWS) принимает решение по пятёрке «протокол, IP и порты источника и назначения» — он быстрый, но не видит запросов. L7-балансировщик (nginx, Ingress-контроллер, ALB) терминирует HTTP и маршрутизирует по пути, хосту, заголовкам, умеет retry, sticky sessions и переписывание запросов.

Ключевые моменты

  • OSI vs TCP/IP. OSI — теоретическая модель для рассуждений, TCP/IP — то, что реально реализовано в сети.
  • L4-балансировка. Работает с TCP/UDP-соединениями, дешёвая по ресурсам, подходит для не-HTTP трафика и высокой пропускной способности.
  • L7-балансировка. Разбирает прикладной протокол: маршрутизация по URL, канареечные веса, аутентификация, кэширование.
  • Отладка по уровням. ping/traceroute — сетевой, ss и tcpdump — транспортный, curl — прикладной; идти по слоям, а не наугад.

Практический контекст

Вопрос звучит почти на каждом собеседовании уровня junior и middle. На практике понимание уровней нужно при выборе балансировщика (gRPC и WebSocket требуют внимания к L7), при настройке Ingress в Kubernetes и при разборе проблем вида «соединение устанавливается, но ответа нет». Интервьюер проверяет не зубрёжку семи уровней, а способность привязать их к реальным протоколам и инструментам.

Частые ошибки

  • Перечисляют уровни по зубрёжке, но не могут привести протоколы-примеры
  • Говорят, что L4-балансировщик может маршрутизировать по URL
  • Не могут объяснить, зачем модель вообще нужна на практике

ИП Кочкин Алексей Сергеевич · ИНН 390509026279 · ОГРНИП 325390000030973 · jiniys2005@yandex.ru