- Энтропия hash в зависимости от адресной информации – важный вопрос при распределении трафика. Подробнее в RSS.
- У Juniper есть mixed rates aggregated ethernet, который позволяет объединить в LAG порты с разной сокрости, причем используя по максимуму пропускную способность каждого порта, пересчитывая соответственно hash.
Load balancing of the egress traffic across the member links of a mixed-rate aggregated Ethernet link is proportional to the rates of the member links. Traffic distribution is based on the hash calculated on the egress packet header. Hash range is fairly distributed according to member links’ speed. set aex aggregated-ether-options link-speed mixed
- Если на Cisco с настроенным XOR src * dst IP придет трафик с одинаковыми последними октетами SRC/DST – он будет укладываться в один линк т.к. пары одинаковые. Такое часто происходит в тестовых стендах (напр. Ixia/Spirent/TRex). Помогает в таком случае указание src-ip/dst-ip only.
172.16.3.29 - 172.17.3.29 172.16.3.29 - 172.17.3.29
- Static LAG (static portchannel) должен использоваться только при наличии серьезных аргументов использовать именно его – напр. мы его использовали
- на стыках D-Link и Cisco (LACP не работал)
- когда транспорт LAG проходил через MEN сеть
3750X channel-misconfig error detected I cannot stress this enough: never, never, NEVER use the "on" mode for EtherChannels until absolutely certain you understand all the implications. The EtherChannel negotiation protocols PAgP and LACP are designed precisely to detect whether the opposite switch is configured for EtherChannel and bundle the ports only if the opposite switch has agreed to do the same.
- LACP timers/keepalive. Timeout LACP настраиваются только в виде fast/slow.
Keep-alive mechanism for link member: (default: slow = 30s, fast=1s) rate fast Sets LACP PDUs on the port to be in fast (1 second) or slow rate (30 seconds).
Linux LAG (TEAMING, BONDING)
- Подробно о bonding в документации kernel.org, в том числе есть информация от каких полей и как рассчитывается hash для распределения трафика по slave bond интерфейсам (напр. для L3-L4)
L3-L4 hash hash = source port, destination port (as in the header) hash = hash XOR source IP XOR destination IP hash = hash XOR (hash RSHIFT 16) hash = hash XOR (hash RSHIFT 8) And then hash is reduced modulo slave count. http://xgu.ru/wiki/Linux_Bonding (source port XOR dest port) XOR ((source IP XOR dest IP)) modulo slave count
В Linux есть поддержка большого количества методов объединения/балансировки трафика по нескольким каналам, включая такие, которые обычно обычно не встречаются на сетевом оборудовании:
- балансировка пакетов одной сессии по разным линкам balance-rr – на стороне сетевого оборудования требуется настройка Static LAG (portchannel mode on) – опасный режим из-за out-of-ordering
- балансировка входящего трафика balance-alb
mode=0 (balance-rr) mode=1 (active-backup) mode=2 (balance-xor) mode=3 (broadcast) mode=4 (802.3ad) mode=5 (balance-tlb) mode=6 (balance-alb)
VPC/MLAG
- Реализация MLAG вендороспецифична.
- Это подтверждается Cisco: vPC – MLAG Cisco.
- Простое описание технологии с примером настройки от fs.com
Тупой копипаст header хорошей статьи блога. Подробнее там.
Из заслуживающего внимания – защита от split brain в случае обрыва sync link на уровне отключения всего на secondary.
Роли primary и secondary влияют так же на поведение коммутаторов в случае разрыва vPC Peer-Link. Secondary коммутатор выключает все vPC Member интерфейсы и VLAN интерфейсы (SVI), участвующие в vPC. После чего весь трафик течет через vPC primary. vPC Peer Keepalive - используется для трекинга vPC пира и обнаружения сценария dual active, в случае, если vPC Peer Link вышел из строя. Для создания этого линка может быть использован любой L3 интерфейс коммутатора.
vPC (Virtual Port-Channel) - технология виртуализиции, доступная на коммутаторах Cisco Nexus (кроме Nexus 2K). Позволяет два Nexus коммутатора объединять в единое логическое L2 устройство с точки зрения нижестоящих коммутаторов или устройств (серверов). Технология относится к семейству протоколов под названием MCEC - Multichassis EtherChannel (MLAG; vPC это вариант реализации MLAG от Cisco), в чем-то даже похожа на технологии объединения коммутаторов Catalyst - VSS и StackWise. Основное отличие от VSS состоит в том, что в vPC каждый коммутатор имеет независимый Control Plane и Management Plane, это дает гарантию того, что при отказе какого-либо компонента в ПО (OSPF процесс, например), сеть продолжит функционировать, в отличие от VSS, где сбой OSPF на Active коммутаторе не вызовет переключения Control Plane на Standby.![]()
![]()
Rtag7 – enchanced hash key
Rtag7 – Балансировка (ECMP/LAG) как на базе внешнего заголовка, так и внутри туннеля (в документации MPLS, по инфе от работающих – так же и умеет внутри VXLAN).
https://docs.ipinfusion.com/ron-6.3.2-configuration-guide/index.html#page/OcNOS-RON/SystemMgnt-CR/Common_Config%20Commands.253.10.html https://www.juniper.net/documentation/us/en/software/nce/load-balancing-in-data-center/load-balancing-in-data-center.pdf Output2: RTAG7 Hashing Input Parameters for IPV4 Traffic leaf1: pfe> show forwarding-options enhanced-hash-key Current RTAG7 Settings Hash-Mode Hash-Seed : layer2-payload : 232516805 inet KlAd/ settings: inet packet fields protocol Destination IPV4 Addr Source 1PV4 Addr destination L4 Port Source L4 Port Vlan id •-snip-- In the output above, one can notice the term "RTAG7." RTAG (0-7) are static hash generation mechanisms that are used by Broadcom ASICs which are applicable to ECMP as well as LAGs. RTAG7 in this case uses a 5-tuple (fields) input meeranied, a housin the un is aboman as desates a bulaue hash for every micro-Dow. Once the hash is In default (static) hash-based load balancing flows are assigned to members using mathematical mod (%) operation: Member ID = Hash (key) mod (number of members in the group) Any increase or decrease in the number of group members results in a complete remapping of flows to member IDs. For example, hash key 10 10 mod 5 = 2: The member with id is solected for the same flow when the number of members is decreased by 1. This way, a static mapping is formed for every flow, and this remains the same as long as the number of paths (members) remains the same.
Lacp prenegotiation (PT ngfw example)
- Смысл – Предварительное согласование LAG/Lacp пассивной нодой кластера, чтобы в случае падения активной ноды не тратилось время на согласование LAG
- Ограничение – никаких объединений LAG между разными нодами









