[MLAG] LAG/LACP

크크몽·4일 전

MLAG

목록 보기
1/5

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

회선을 다중화하면 두 가지 효과가 있습니다.

  1. 링크 하나에 Fail이 나도 나머지 링크로 서비스를 계속할 수 있습니다.
  2. Load-Balance로 여러 링크를 함께 쓸 수 있습니다.

설정

EOS에서는 멤버 인터페이스에 channel-group을 설정합니다.

interface Ethernet1
   channel-group 1 mode active
interface Ethernet2
   channel-group 1 mode active

mode는 세 가지입니다.

  • active: LACPDU를 먼저 보내면서 협상을 시작합니다.
  • passive: 상대가 보낸 LACPDU에 응답만 합니다.
  • on: LACP 없이 고정으로 묶습니다(static).

active끼리, 또는 active와 passive는 묶이지만 passive끼리는 서로 기다리기만 해서 묶이지 않습니다. 가능하면 양쪽 모두 active로 두는 게 좋아요.

실습: Eth1을 shutdown / no shutdown 해보기

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가 같은 링크에서 함께 오가는 것도 보이네요.

알아두면 좋은 점

  • 링크를 묶는다고 한 세션의 속도가 빨라지지는 않습니다. 트래픽은 헤더 값(MAC, IP, 포트 등)을 해시해서 flow 단위로 링크에 나뉘어서, 같은 flow는 한 링크만 탑니다. 세션이 여러 개일 때 분산 효과가 커요.
  • 확인 명령어는 show port-channel summary, show lacp neighbor입니다. 정상적으로 묶인 포트는 상태 표기에 ALGs+CD(Active, Long timeout, Aggregable, InSync, Collecting, Distributing)가 켜져 있습니다.

정리

LAG는 여러 물리 포트를 하나의 논리 포트로 묶어 이중화와 부하 분산을 얻는 기술이고, LACP는 LACPDU로 이를 동적으로 협상하고 관리합니다. 다만 일반적인 LAG는 한 장비 안의 포트끼리만 묶을 수 있어서, 장비 자체가 죽으면 소용이 없어요. 이걸 서로 다른 두 장비로 확장한 게 MLAG입니다.

profile
주니어 엔지니어

0개의 댓글