LAG - link Aggregation¶
Определение/Назначение¶
Технология предназначенная, для агрегации каналов, т.е другими словами объединение нескольких физических портов в один логический.
Существует своя реализация LAG на оборудовании Nexus - VPC (Virtual Port Channel), про ее работу постараюсь написать отдельную статью, т.к. это достаточно большая и отдельная тема...
Descrambler:
LAG
Общий принцип работы:¶
Технология LAG может работать в 2-х режимах:
- Static - статический режим работы, это когда между двумя сторонами линка, объедененного а LAG нет никакой сигнализации о доступности второй стороны. Статический режим, п.э. имеет большой неостаток в этой связи, т.е. он не видит ошибки или какую либо проблему на канале, а включает линк в LAG и отключает линк из LAG на основании его физической доступности, т.е. если линк в "Up-е", то он всегда будет в LAG-e, если линк в "Down-е", то только это будет причиной исключения его из LAG-а. Соответственно, если с одной стороны порт является участником LAG-a, а с другой нет не будет служить основанием для исключения его с другой стороны LAG-a, если там он прописан как участник LAG-а. Соответственно такое поведение ведет к блекхолингу трафика, т.е. одна сторона думает, что все "ок"" и отправляет кадры в порт, который по сути может быть не настроен с другой стороны. Чтобы избежать подобных проблем внутри LAG-a используется протоколы сигнализации состояния канала LACP/PAgP.
PAgP - проприетарный протокол cisco, по сути на данный момент практически нигде не используется, п.э. про него говорить не буду...
- LACP - Link Aggregation Control Protocol. А во LACP "король" LAG-a...
Попробую рассказать про него на основе моей очень простой лабы:

Интерфейсы, участвующие в LAG, ну и соответственно в LACP тоже:
Sw1:
- G0/1 - mac-address 5000.0003.0001
- G0/2 - mac address 5000.0003.0002
Sw2:
- G0/1 - mac-address 5000.0005.0001
- G0/2 - mac-address 5000.0005.0002
Во-первых структура самого протокола весьма "ветвистая"

Для понимания работы достаточно понять общий принцип:
-
При установлении соединения протокол LACP использует в качестве DST mac-address 01:80:c2:00:00:02, а в качестве SRC mac-address указывает ("виртуальный") наименьший из mac адресов своих интерфейсов, в моем случае это со стороны Sw1 5000.0003.0001 и соответственно со стороны Sw2 5000.0005.0001.
-
Наиболее значащими полями являтся "Actor State" - "собственное" состояние LACP и "Partner State" - состояние LACP партнера (что собственно следует из название поля).
-
Соединенные между собой порты работающие по LACP обмениваются информационными сообщениями LACP. В нормальном состоянии поля "Actor State" и "Partner State" имеют значение 0x3d

При этом можно посмотреть состояние портчана на обоих соседях


- При потери связности с партнером LACP проходит стадии





После этого такой линк исключается из LAG-a:


При необходимости можно подобрать более оптимальную балансировку из вариантов:
Sw1(config)#port-channel load-balance ?
dst-ip Dst IP Addr
dst-mac Dst Mac Addr
src-dst-ip Src XOR Dst IP Addr
src-dst-mac Src XOR Dst Mac Addr
src-ip Src IP Addr
src-mac Src Mac Addr
Посмотреть текущий тип балансировки:
Sw1#sh etherchannel load-balance
EtherChannel Load-Balancing Configuration:
"src-dst-ip"
EtherChannel Load-Balancing Addresses Used Per-Protocol:
Non-IP: Source XOR Destination MAC address
IPv4: Source XOR Destination IP address
IPv6: Source XOR Destination IP address
Литература¶
Пример дампа lacp в wireshark можно посмотреть здесь