Вычисление хэш-функции
Балансировка трафика осуществляется по потокам. Распределение кадров по каналам агрегированного порта происходит на основании данных в заголовках кадра. На основании этой информации маршрутизатор принимает решение об использовании одного из физических каналов агрегированного порта. Для этого используется алгоритм хэширования.
Таблица — Поля, используемые для вычисления хэш-функции по умолчанию
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).