서버나 스위치 사이를 링크 하나로만 연결하면 그 링크가 끊기는 순간 통신도 끊기고, 대역폭도 링크 하나만큼밖에 못 씁니다. 이럴 때 쓰는 게 LAG(Link Aggregation Group)입니다. 여러 개의 물리 포트를 하나의 논리 포트로 묶어서 쓰는 기술이에요. LACP는 이 LAG를 동적으로 관리해주는 프로토콜입니다.

회선을 다중화하면 두 가지 효과가 있습니다.
EOS에서는 멤버 인터페이스에 channel-group을 설정합니다.
interface Ethernet1
channel-group 1 mode active
interface Ethernet2
channel-group 1 mode active
mode는 세 가지입니다.
active끼리, 또는 active와 passive는 묶이지만 passive끼리는 서로 기다리기만 해서 묶이지 않습니다. 가능하면 양쪽 모두 active로 두는 게 좋아요.
Eth1, Eth2로 묶은 Port-channel에서 Eth1을 shutdown했다가 no shutdown하고, 로그와 Wireshark를 확인했습니다. LACPDU를 주고받으며 재협상하는 과정과, Eth1이 LAG 멤버에서 빠졌다가 다시 추가되는 것을 볼 수 있어요.
localhost(config-if-Et1)#shutdown
Aug 6 00:13:02 localhost Ebra: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet1, changed state to down
Aug 6 00:13:02 localhost Lag: %LAG-5-MEMBER_REMOVED: Interface Ethernet1 has left Port-Channel1
localhost(config-if-Et1)#no shutdown
Aug 6 00:14:10 localhost Ebra: %LINEPROTO-5-UPDOWN: Line protocol on Interface Ethernet1, changed state to up
Aug 6 00:14:10 localhost Lag: %LAG-5-MEMBER_ADDED: Interface Ethernet1 has joined Port-Channel1
shutdown 직후 MEMBER_REMOVED로 Eth1이 Port-Channel1에서 빠지고, no shutdown 후에는 MEMBER_ADDED로 다시 합류합니다.
위 슬라이드 아래쪽의 Wireshark 캡처를 보면, Slow-Protocols로 분류된 LACP 프레임이 계속 오갑니다. LACPDU에는 보내는 쪽(Actor)과 상대 쪽(Partner)의 System ID(MAC), Key(K), 상태 플래그가 들어 있어요. 시간 순서로 보면 플래그 끝부분이 SG*A → CSG*A → DCSG*A로 채워집니다. 동기화(S) 다음에 수신(C, Collecting)이 열리고 마지막으로 송신(D, Distributing)이 열리면서 포트가 번들에 합류하는 과정이에요.
중간의 17번 프레임은 STP(MST) BPDU입니다. 앞 글에서 본 BPDU가 같은 링크에서 함께 오가는 것도 보이네요.
show port-channel summary, show lacp neighbor입니다. 정상적으로 묶인 포트는 상태 표기에 ALGs+CD(Active, Long timeout, Aggregable, InSync, Collecting, Distributing)가 켜져 있습니다.LAG는 여러 물리 포트를 하나의 논리 포트로 묶어 이중화와 부하 분산을 얻는 기술이고, LACP는 LACPDU로 이를 동적으로 협상하고 관리합니다. 다만 일반적인 LAG는 한 장비 안의 포트끼리만 묶을 수 있어서, 장비 자체가 죽으면 소용이 없어요. 이걸 서로 다른 두 장비로 확장한 게 MLAG입니다.