Ответ
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.