Что такое L3 балансировщик нагрузки и каковы его особенности?

Ответ

L3-балансировщик (или балансировщик сетевого уровня) — это устройство или программа, которая распределяет сетевой трафик на основе информации 3-го уровня модели OSI. Основным идентификатором на этом уровне является IP-адрес.

Принцип работы:

Балансировщик принимает входящие пакеты и, основываясь на IP-адресе источника и назначения (а иногда и портах, что уже ближе к L4), принимает решение, на какой из бэкенд-серверов перенаправить этот пакет. Обычно это делается путем изменения IP-адреса назначения в заголовке пакета (техника NAT - Network Address Translation).

В отличие от L7-балансировщиков, L3-балансировщик не анализирует содержимое пакета (например, HTTP-заголовки, URL или cookies). Он работает исключительно с IP-пакетами.

Преимущества:

  • Высокая производительность: Так как не требуется анализировать данные прикладного уровня, L3-балансировщики работают очень быстро.
  • Универсальность: Могут балансировать любой трафик на базе протокола IP (TCP, UDP и т.д.).

Недостатки:

  • Ограниченная логика: Не может принимать решения на основе содержимого запроса. Например, нельзя направить все запросы к /api/v1 на одну группу серверов, а к /api/v2 — на другую.
  • Отсутствие "умных" функций: Не поддерживает sticky sessions на основе cookie, терминирование SSL, изменение HTTP-заголовков и т.д.

Примеры технологий:

  • IPVS (IP Virtual Server): Компонент ядра Linux, который является высокопроизводительным L4/L3 балансировщиком. Часто используется в Kubernetes (kube-proxy в режиме ipvs).
  • Аппаратные балансировщики от компаний вроде F5, Citrix.