LACP가 무엇인지, 그리고 어떻게 사용하는지

2024. 12. 16. 19:01[서버네트워크]

LACP는 논리적 회선인 LAG , 즉 물리적 회선들을 그룹핑하여 논리적으로 하나의 회선으로 사용하는 기술에서 사용되는 프로토콜이다. 

 

그렇다면, LAG (Link Aggregation Group)를 사용하는 근본적인 원인은 무엇인가? 대역폭 확장과 이중화(Redundancy) 이다. 

 

1) 대역폭 확장 : 하나의 물리적 링크는 특정 대역폭만 지원하지만(ex.1Gbps) 여러 개의 링크들을 논리적으로 묶어서 병렬로 사용할 수 있다면 총 대역폭을 늘릴 수 있다.

(ex. 1Gbps링크의 개수가 4개일 경우, 패킷을 여러 링크 통해 동시에 전송 가능) 이러한 기능을 가능하게 하는 기술이 LAG(Link Aggregation)이다. 

2) 이중화 : 단일 링크에 장애가 발생할 경우 통신이 끊길 수 있다. 하지만 여러 링크를 논리적으로 묶어서 사용할 경우 나머지 링크를 통해서 통신이 가능하다. 

 

그러나, 네트워크 링크를 여러 개 연결한다고 해서 자동으로 대역폭이 늘어나는 것은 아니다.

바로 STP 때문에 루핑을 방지하기 위해 하나의 링크만 활성화되기 때문이다. 

 

따라서 물리적 링크 중 비활성화 되는 링크 없이 모든 링크를 활성화 상태로 유지하여, 여러 개의 링크를 동시에 사용할 수 있도록 해주는 기술이 LAG 이다.

 

 

 

이와 같이 LAG 를 사용하기 위해서는 물리적 링크 여러개를 하나의 논리적 링크로 묶는 과정이 필요하다. 이때 LACP는 여러 링크를 묶어서 논리적 단일 링크로 동작하게 하는 표준 프로토콜이다.

 

1단계: LACP 활성화

물리적 링크들(인터페이스) 가운데 묶을 포트들을 포트채널로 묶고, LACP 활성화 한다. 

그럼 LACP가 장치 간에 자동으로 협상을 진행하여 묶을 링크를 결정한다.

호환되지 않거나 문제가 있는 포트는 LAG에서 제외한다는 뜻이다. 

(장비가 지원 여부를 확인하고, 적절한 포트들을 LAG로 구성)

interface Ethernet1  
   channel-group 1 mode active

cf) LACP는 사용자가 미리 정의한 조건에 따라 특정 포트들만 묶어서 논리적 링크(LAG)를 생성한다.

즉, 어떤 링크를 묶을지 사용자가 설정해야 하며, LACP는 설정된 포트들 간에 협상을 통해 링크를 활성화하거나 비활성화하는 역할을 한다.

 

2단계: LACP PDU (Protocol Data Unit) 교환

LACP PDU라는 제어 메시지를 주고받으며 상대 장비와 협상을 시작한다.

이때 LACP는 다음과 같은 정보를 전달한다.

  • System ID (시스템 고유 식별자, MAC 주소 기반)
  • Port ID (포트 우선순위 및 번호)
  • Link 상태 (활성화 여부)

3단계: 링크 선택 및 활성화

LACP는 협상된 링크 중에서 정상적으로 동작하는 최대 링크 수(예: 4개)를 논리적 그룹으로 묶는다. 비정상적인 링크는 제외된다.

 

4단계: 부하 분산 설정

활성화된 링크에 대해 트래픽을 부하 분산한다. 트래픽 분산은 해시(Hash) 알고리즘을 기반으로 이루어지며, 다음 요소를 기준으로 분산된다. 

  • 소스 MAC 주소 / IP 주소
  • 목적지 MAC 주소 / IP 주소
  • 포트 번호 (L4 Layer)

예: A → B로 가는 트래픽은 링크1, C → D는 링크2로 보내집니다.

 

 

 

5단계: 모니터링 및 유지

지속적으로 링크 상태를 모니터링한다. 링크 장애 발생 시 해당 링크를 비활성화하고 나머지 링크로 트래픽을 전달한다.

 

 

 

 

 

여러 물리적 회선들이 하나의 회선으로 동작하기 위해서는 속도 등 통일시켜야 하므로, Aggregation 협상이 필요하다.

 

LACP 처리 과정 요약

  1. LACP 활성화 → LACP PDU 교환 → 정상 링크 선택 및 활성화
  2. 부하 분산 설정 → 지속적으로 링크 상태 모니터링

 

 

그럼 이제 실제로 어떻게 동작하는지 가상환경에서 테스트를 해보자.

 

LACP 테스트 위한 토폴로지

eth1,2는 port-channel 5 로 묶여있다. 

SW1 - port-channel 5 : eth1, eth2

 

SW2
Actor(SW2) System ID

 

Partner(SW1) System ID

현재 LACP 비활성화로 인해 협상 실패하여 partener 시스템 ID(+partner port, priority 등)가 0이다.

 

LACP를 전송하고 있는  로컬 포트 의 번호

 

0x45 = AGF

0x45 = 0 1 0 0     0 1 0 1

            E F D C    S G T A

LACP 상태 필드

 

 

eth1,2 no shutdown

 

ping을 보냈을 때, port-channel 5인 eth1-eth2 가 icmp request, reply를 분담해서 전송하고 있다.

 

그런데 여기서 eth1을 셧다운 시킬 경우, 이론상 eth2로만 전송될 것이다. 

port-channel 5 : eth2
eth1 shutdown 후

 

 

Ethernet3가 통신에 참여하지 않는 이유는, 포트채널(Port Channel)과 독립 포트의 동작 방식 및 네트워크 설정 때문일 가능성이 높습니다.

*포트채널에 묶이지 않은 포트(Ethernet3)가 통신에 끼지 않는 이유: 네트워크 구성이 달라서?

 

 

 

 

여기서, 포트채널을 없애보려고 한다. 

 

channel-group 5 삭제

 

포트채널(Port-Channel 인터페이스)은 삭제되었지만, 개별 물리 포트에서 LACP 설정이 그대로 남아있을 가능성이 높다. (ex. lacp port-priority, channel-group 등) 이러한 설정이 남아 있으면 포트는 계속 LACPDU를 주고받는다.

 

LACPDU 패킷은 여전히 전송되지만 상대방은 파트너 정보를 협상할 수 없으므로 Partner System과 같은 필드에 00:00:00:00:00:00 상태로 나타난다. LACP State는 Defaulted 또는 Timeout 상태가 된다.

 

(실질적으로 트래픽에는 영향이 없으나, 다만 LACP 설정이 남아 있으면 불필요한 제어 트래픽이 발생할 수 있음)

 

 

lacpdu 패킷 계속 전송

 

 

 

 

포트가 LAG(Link Aggregation Group)에 포함될 준비가 되어 있다는 뜻

port-channel 설정 전/후 확인
LACP 활성화 시 LACPDU (Actor)

 

흐름 : LACP PDU 교환 → 협상 성공 → Synchronization (S) → Collecting (C) → Distributing (D)

(이후, 정상적으로 데이터 트래픽 송수신 가능)

 

  • EFGA → GA: 협상 시작 및 파트너 정보 수집.
  • GA → SGA: 협상 완료 및 링크 동기화.
  • SGA → CSGA: 데이터 수신(Collecting) 활성화.
  • CSGA → DCSGA: 데이터 송신(Distributing) 활성화 → 완전한 포트채널 기능 수행.

 

파트너와 LACP 설정이 일치하기 시작하면서 Defaulted(F) 상태가 해제

 

 

LACP 타이머

LACP 타이머 두 가지 모드

  1. 빠른 타이머 (Short Timeout)
    • LACP PDU를 1초마다 전송합니다.
    • LACP 협상 실패(타임아웃) 감지 시간: 3초 (3초 이내에 협상이 완료되고 동기화(SGA) 상태에 도달하고, 이후 Collecting (C)Distributing (D) 상태로 빠르게 전환)
  2. 느린 타이머 (Long Timeout)
    • LACP PDU를 30초마다 전송합니다.
    • LACP 협상 실패(타임아웃) 감지 시간: 90초

Arista 장비의 기본 LACP 타이머는 느린 타이머(Long Timeout)

 

 

'[서버네트워크]' 카테고리의 다른 글

CVP 생성 및 배포하기  (0) 2024.12.27
MLAG과 VRRP  (0) 2024.12.18
ACL(Access-list)  (0) 2024.12.06
네트워크 상태 모니터링  (0) 2024.12.06
BPDU 메시지는 전기적 신호(L1)로 전송된다?  (0) 2024.10.22