Вычисление хэш-функции

Балансировка трафика осуществляется по потокам. Распределение кадров по каналам агрегированного порта происходит на основании данных в заголовках кадра. На основании этой информации маршрутизатор принимает решение об использовании одного из физических каналов агрегированного порта. Для этого используется алгоритм хэширования.

Таблица — Поля, используемые для вычисления хэш-функции по умолчанию

Router ID

4 Байта
S\C-Src Mac

Послед. 4 байта
S\C-Dst Mac

Послед. 4 байта
S\C-Src IP

4 Байта
S\C-Dst IP

4 Байта
Hash seed

1 Байт
Protocol Type

1 Байт
Port.no

1 Байт
Где:
  • Router ID — неизменяемый идентификатор маршрутизатора.
  • S\C-Src Mac (Service\Client-Source Mac address) — MAC-адрес отправителя.
  • S\C-Dst Mac (Service\Client-Destination Mac address) — MAC-адрес получателя.
  • S\C-Src IP (Service\Client-Source IP) — IP-адрес отправителя.
  • S\C-Dst IP (Service\Client-Destination) — IP-адрес получателя.
  • Hash seed — изменяемое значение, уникальное в пределах маршрутизатора. Может принимать значения от 0 до 255.
  • Protocol Type — протокол транспортного уровня.
  • Port.no — номер порта, принявшего пакет.

Для пакетов с одинаковыми исходными данными результат вычисления хэш-функции всегда будет одинаков. Таким образом пакеты одного потока будут попадать в один порт (в один физический канал). Результатом вычисления хэш-функции является 32-битное число. Первые его 16 бит используются для балансировки в Link Aggregation Control Protocol (LACP), остальные — для балансировки в Equal-cost multi-path routing (ECMP).