L4 (транспортный уровень). Балансировщик выбирает бэкенд при установке TCP-соединения (или для UDP-потока) по адресам и портам и дальше пересылает пакеты, не заглядывая внутрь. Варианты: NAT (меняет адрес назначения), DSR — direct server return (ответ идёт от сервера напрямую клиенту, минуя балансировщик), ECMP на маршрутизаторах и консистентное хеширование для одинакового выбора на всех узлах (Maglev). Плюсы — производительность, работа с любым протоколом, мало состояния. Минусы — не видит HTTP: не может маршрутизировать по пути, повторить запрос, учесть статус ответа.
L7 (прикладной уровень). Это обратный прокси: принимает соединение от клиента, разбирает HTTP и открывает (или берёт из пула) соединение к бэкенду. Возможности:
- маршрутизация по хосту, пути, заголовкам, cookie (
/api → один сервис, /static → другой; канареечный релиз по заголовку); - терминация TLS — сертификаты в одном месте, бэкенды разгружены;
- балансировка каждого запроса, а не соединения — важно для HTTP/2 и gRPC, где одно соединение несёт тысячи запросов;
- повторы, таймауты, circuit breaker, ограничение частоты, кэш, сжатие, аутентификация на входе;
- наблюдаемость: метрики и логи по каждому запросу.
Цена — больше CPU и памяти на запрос, дополнительная задержка, прокси сам становится сложной точкой отказа.
Ловушка долгих соединений. gRPC через L4: клиент открыл одно соединение, и все запросы идут на один бэкенд, а новые экземпляры не получают трафика. Решения — L7-прокси (Envoy), клиентская балансировка или периодическое переподключение.
Где TLS. Терминация на L7 даёт видимость и маршрутизацию; внутри сети — либо открытый HTTP в доверенном сегменте, либо повторное шифрование (mTLS в service mesh). L4 с TLS passthrough — когда ключи не должны покидать бэкенд.
Многоуровневая схема крупного сервиса: GeoDNS или Anycast выбирают ближайший дата-центр → L4-балансировщики на границе держат объём соединений → парк L7-прокси терминирует TLS и маршрутизирует → внутри — сервисная балансировка (service mesh или клиентская).
Сам балансировщик тоже резервируют: пара в active-passive с общим виртуальным IP (keepalived, VRRP) или active-active за ECMP/Anycast.