Назад | Перейти на главную страницу

IPVS передает пакеты на неправильные серверы

Мы используем ipvs для балансировки нагрузки L4, при которой пакеты передаются на серверы L7 в туннельном режиме IPIP.

Есть три системы ipvs, настроенные с хешированием исходного кода для сохранения. Иногда ipvs передает пакеты на неправильные серверы.

Например, ipvs 1 получает пакет от клиента 1.1.1.1 и отправляет его на внутренний реальный сервер 1, следующий пакет того же клиента получает ipvs 2, который отправляет его на внутренний реальный сервер 2. Теперь сервер 2 не знает об этом. пакет, потому что соединение было фактически инициировано с реальным сервером 1, поэтому реальный сервер 2 завершает соединение пакетом RST.

Это происходит не только с конкретным клиентом, все клиенты ведут себя одинаково.

насколько я понимаю, все IPV уровня L4 должны выбирать один и тот же реальный сервер из-за алгоритма хеширования источника.

Я построил такую ​​же установку в лаборатории, но не смог ее воспроизвести. Установка, в которой возникла проблема, является производственной, поэтому я не могу вносить в нее какие-либо серьезные изменения в целях отладки.

Keepalived используется для управления ipvs.

Любые указания о том, как отладить эту проблему с минимальным воздействием, будут действительно полезны.

PS - Я знаю, что хеширование источника не очень согласовано, но количество пакетов, отправленных на неправильные реальные серверы, слишком велико. У нас есть другие кластеры, где мы никогда не сталкивались с этой проблемой.

IPVS 1

Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  x.x.x.26:443              401541  3620595        0  458422K        0
  -> x.x.x.1:443                401234  3618511        0  458239K        0
  -> x.x.x.2:443                    15      126        0    12341        0
  -> x.x.x.3:443                    35      213        0    20832        0
  -> x.x.x.4:443                    16      113        0    10980        0
  -> x.x.x.5:443                    19      132        0    12113        0
  -> x.x.x.6:443                    18      140        0    13616        0
  -> x.x.x.7:443                    12       97        0     9262        0
  -> x.x.x.8:443                    19      120        0    10448        0
  -> x.x.x.9:443                   164     1083        0    88618        0
  -> x.x.x.15:443                    9       60        0     5498        0


IPVS 2

  Prot LocalAddress:Port               Conns   InPkts  OutPkts  InBytes OutBytes
  -> RemoteAddress:Port
TCP  x.x.x.26:443              402903  3626029        0  459621K        0
  -> x.x.x.1:443                    12       56        0     4150        0
  -> x.x.x.2:443                    21      132        0    12967        0
  -> x.x.x.3:443                   168     1084        0    89908        0
  -> x.x.x.4:443                    14      122        0    11005        0
  -> x.x.x.5:443                    12       79        0     7045        0
  -> x.x.x.6:443                402584  3623968        0  459444K        0
  -> x.x.x.7:443                    29      146        0    12899        0
  -> x.x.x.8:443                    22      190        0    17336        0
  -> x.x.x.9:443                    10       66        0     6049        0
  -> x.x.x.15:443                   31      186        0    15724        0

Спасибо !