Network, Linux: link aggregation, LAG, portchannel, lacp, aggregated ethernet, MLAG, VPC, teaming, bonding

  • Энтропия 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

Тупой копипаст 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.




Leave a Reply