Почему конфигурация балансировщиков нагрузки уровня 7 не требует изменений конфигурации клиента?

Например, для haproxy (уровень 7) балансировки нагрузки, вам нужно только настроить "реальные серверы" или "бэкэнды" за VIP (то есть, IP-адрес кластера). Например:

listen smtp 192.168.3.10:25
        mode tcp
        balance roundrobin
        server smtp1 192.168.3.1:25 check
        server smtp1 192.168.3.2:25 check

Однако с lvs (слой 4), мне нужно либо:

  1. Установить lvs машина как роутер для реализации "NAT Routing"
  2. lvs у машины и бэкэндов есть VIP, настроенный с некоторыми модами ARP на бэкэндах

Как балансировке нагрузки уровня 7 удается это сделать без более сложной конфигурации? Я неправильно понимаю или упускаю что-то фундаментальное здесь?

1 ответ

Решение

С LVS ваш сетевой трафик по существу идет от клиента непосредственно к вашему внутреннему серверу. Вовлечение третьего хоста (полупрозрачно) здесь не является нормальной сетевой конфигурацией, поэтому его довольно сложно реализовать.

С помощью haproxy ваш сетевой трафик передается от клиента к haproxy, а затем через haproxy на сервер. Что касается сервера, то haproxy - это просто еще один клиент. Это нормальная сетевая настройка, поэтому нет необходимости в настройке сетевого уровня (хотя есть сложность 7-го уровня, например, заголовки X-Forwarded-For). Это также означает, что ваш haproxy-компьютер является SPOF и должен иметь возможность обрабатывать весь трафик на ваш сайт.

Другие вопросы по тегам