Doctor Pepper

[물리 계층과 데이터 링크 계층] LACP(Link Aggregation Control Protocol) 본문

네트워크/물리계층과 데이터 링크계층

[물리 계층과 데이터 링크 계층] LACP(Link Aggregation Control Protocol)

Doctor Pepper 2024. 12. 2. 20:48
728x90

 

1. LACP와 PAgP : 이더넷 네트워크 대역폭 확장 및 회선 이중화 기술

 LACP(Link Aggregation Control Protocol) PAgP(Port Aggregation Protocol)는 이더넷 네트워크에서 장비 업그레이드나 추가 구매 없이도 물리적 대역폭을 확장하고 회선의 이중화를 구성할 수 있는 기술이다. 이러한 기술은 네트워크 장비 간뿐만 아니라 네트워크 장비와 서버 간에도 적용할 수 있다. 서버에서는 다중 인터페이스를 지원하는 쿼드(Quad) 또는 옥탈(Octal) 랜카드를 사용하여 네트워크 장비와 병렬 링크를 구성한다.

 

- 스패닝 트리 관점에서의 LACP와 PAgP

 최대 8개의 물리적 회선을 하나의 논리적 회선으로 묶는 LACP나 PAgP 구성은 스패닝 트리 동작에서도 루핑 구조를 형성하지 않으며, 네트워크 안정성과 효율성을 보장한다.

 

- 기술적 차이 및 용어

LACP IEEE 802.3ad 표준에 기반한 기술로, 벤더에 관계없이 다양한 장비에서 사용할 수 있음
PAgP Cisco에서 독자적으로 개발한 기술로, 주로 Cisco 장비 간에 사용됨
  • LACP로 구성된 다중 회선은 일반적으로 **트렁크(Trunk)**라 부르며, Cisco에서는 이를 **이더채널(EtherChannel)**이라고 명명합니다.

- 링크 어그리게이션 관련 용어

벤더별로 동일한 기술을 지칭하는 다양한 용어가 존재합니다. 대표적으로 다음과 같은 용어들이 사용된다.

  • Ethernet bonding, NIC Teaming, Trunking, Prot Channel, Link Bonding, Multi-Link Trunking(MLT), NIC Bonding, Network bonding, Network Fault Tolerance(NFT) 등으로 불린다.

 

2. LACP(IEEE 802.3 ad) 개요 및 동작 원리

LACP(Link Aggregation Control Protocol)는 네트워크 장비 간의 대역폭 확장과 링크 이중화를 위해 IEEE 802.3ad 표준에 기반을 둔 기술이다.

 

- 개발 배경

 1990년대 중반, 대부분의 네트워크 장비 제조사는 장비 간 대역폭 확장을 위해 독자적인 링크 어그리게이션 기술을 사용했다. 이로 인해 제조사 간 호환성 문제가 발생했고, 이를 해결하기 위해 IEEE 802.3 그룹은 1997년 연구 그룹을 구성하여 상호 호환성을 제공하는 링크 계층 표준을 개발했다.

 

 표준화 과정에서 Cisco의 PAgP(Port Aggregation Protocol) 기술을 기반으로 많은 수정과 보완이 이루어졌고, 최종적으로 802.3ad로 표준화되었다. 이후, 2000년에 이 표준은 기가비트 이더넷을 지원하도록 확장되었으며, 현재는 대부분의 네트워크 장비에서 LACP를 사용하고 있다.

 

- LACP 동작 모드

 LACP는 아래 세 가지 동작 모드 중 하나로 작동한다.

능동 모드 (Active Mode) - LACP 설정을 협상하기 위해 LACPDU(LACP Data Unit) 패킷을 주기적으로 전송함.
- 빠른 주기: 매 1초
- 느린 주기: 매 30초
수동 모드 (Passive Mode) - LACPDU를 수신하여 협상 요청에만 응답하며, 자체적으로 패킷을 전송하지 않음.
- 협상이 성공하면 링크를 채널로 묶음
활성 모드 (ON Mode) - LACP 협상 기능을 사용하지 않으며, 강제로 링크를 묶어 채널링함
※ 참고
 LACP 설정 시 최소한 한쪽 장비는 능동 모드로 동작해야 채널 설정이 가능하다. 양쪽이 모두 수동 모드일 경우 채널 설정이 실패한다.

 

- LACP 설정 시 주요 조건

LACP를 활용한 링크 채널링을 구성할 때는 다음 조건을 충족해야 한다.

  • 동일한 물리적 링크 속도
  • 동일한 VLAN ID와 스패닝 트리 설정
  • 전이중 (Full-Duplex) 모드
  • 점대점 (Point-to-Point) 링크
  • 동일한 채널 그룹에 속하는 인터페이스는 동일한 스위치에 연결

- 제약 사항 및 확장 기술

스위치 제약  - LACP는 기본적으로 동일한 스위치 내의 인터페이스를 묶는 것을 전제로 하지만, Nortel(현재 Avaya)에서 개발한 SMLT(Split Multi-Link Trunking) 기술을 활용하면 이러한 제약을 극복할 수 있음
가상화 지원 - 새시 가상화(Chassis Virtualization)를 지원하는 장비에서는 가상화를 통해 동일 스위치 제약을 우회할 수 있음.
- 그러나 SMLT와 가상화 기술은 
벤더 종속적 기술로, 표준화되지 않았다는 점을 유의해야 함.

 

 LACP는 표준화된 프로토콜로 높은 호환성을 제공하며, 네트워크 대역폭 확장 및 장애 복구 기능을 효율적으로 구현할 수 있는 필수적인 기술로 자리 잡았다.

 

3. 링크 어그리게이션 아키텍처 모델

 링크 어그리게이션(Link Aggregation)은 여러 개의 물리적 링크를 하나의 논리적 링크로 묶어 데이터 전송의 효율성을 극대화하는 기술이다. 이를 통해 여러 MAC 프레임을 통합하고, 해당 데이터를 분배한 후 상위 계층에 전달하는 역할을 한다. 링크 어그리게이션 서브레이어(Link Aggregation Sublayer)LLC 계층과 MAC 계층 사이에 삽입되어, 프레임의 분배와 수집을 관리하는 중요한 기능을 수행한다.

 

- 링크 어그리게이션 서브레이어 구성 요소

 링크 어그리게이션 서브레이어는 분배기(Distributor), 수집기(Collector), 그리고 추가적인 기능을 담당하는 프레임 파서/다중화기 어그리게이션 제어 모듈로 구성된다.

 

(1) 분배기(Distributor)

 분배기는 MAC 클라이언트로부터 받은 프레임을 여러 개의 물리적 인터페이스에 분배하는 역할을 한다. 이를 위해 분배기는 멀티플렉서와 분배 알고리즘을 사용하여 수신된 프레임을 여러 링크로 전송한다. 다수의 링크로 프레임을 분산 전송할 때는 마커 생성기 마커 응답기를 사용해 각 링크를 구분하고, 상대방의 수집기에게 링크 변경 정보를 알린다. 마커 메시지의 교환을 통해, 프레임을 변형하지 않고도 다중 링크에서의 전송을 가능하게 한다.

 

 마커 응답이 정상적으로 수신되면 분배기는 다음 프레임을 전송하기 위해 큐에서 꺼내 전송을 지속한다. 이를 위해 간단한 시간 초과(timeout) 메커니즘을 사용하여 전송 에러를 방지한다.

 

(2) 수집기(Collector)

 수집기는 분배기에서 전송된 마커 메시지와 일반적인 프레임을 처리한다. 마커 메시지는 수집기에 의해 처리되며, 동일한 물리적 링크에서 마커 응답을 전송한다. 마커 프로토콜에 속하지 않는 일반적인 프레임은 MAC 클라이언트로 전달된다. 수집기는 분배기의 분배 알고리즘을 신경 쓸 필요 없이 프레임을 적절한 인터페이스로 자유롭게 수집한다.

 

(3) 프레임 파서/다중화기

 프레임 다중화기는 여러 모듈(분배기, 수집기, 어그리게이션 제어)로부터 받은 프레임을 처리하는 기능을 한다. 수신된 프레임은 세 가지 그룹으로 분류되어 적절한 모듈로 전달된다.

제어 프로토콜 메시지 링크 어그리게이션 제어 프로토콜로 전달
마커 메시지 마커 응답기로 전달
마커 응답 메시지 마커 수신기로 전달
일반적인 프레임 프레임 수집기를 통해 MAC 클라이언트로 전달

(4) 물리적 포트의 어그리게이터 바인딩

 링크 어그리게이션에서는 물리적 포트를 논리적 링크(채널)로 묶는 과정이 필요하다. 이는 어그리게이션 제어(Aggregation Control)에 의해 자동으로 또는 수동 설정에 의해 이루어진다. 어그리게이션 제어는 링크 분배기와 수집기 간의 협업을 통해 링크를 묶고, 이후 프레임의 분배 및 수집 처리를 시작한다. 예를 들어, Cisco에서는 이를 Port-Channel 인터페이스를 사용하여 구현한다.

 

(5) 어그리게이터의 주소 할당

 어그리게이션된 논리적 인터페이스인 채널 포트는 물리적 포트 중에서 가장 낮은 물리적 주소를 채널의 논리적 주소로 사용한다. 이 방식은 스패닝 트리 연산에서 루트 브리지를 선출하는 방식과 유사하며, 물리적 주소를 사용할 때 발생할 수 있는 부담을 줄여준다. Cisco의 PAgP(Port Aggregation Protocol)에서는 채널 그룹의 첫 번째 물리적 포트 주소를 채널의 논리적 주소로 사용한다.

 

4. LACPUD의 마커 프로토콜과 제어 프로토콜

 LACPDU(Link Aggregation Control Protocol Data Unit)는 링크 어그리게이션 시스템에서 두 가지 주요 프로토콜로 나뉜다. 링크 어그리게이션 마커 프로토콜(Marker Protocol, 서브타입 0x02)링크 어그리게이션 제어 프로토콜(LACP, 서브타입 0x01)이다.

 

- 마커 프로토콜(Marker Protocol)

 마커 프로토콜은 분배기가 프레임을 전송할 때, 전송 채널을 변경하기 위해 사용된다. 이를 통해 분배기는 물리적 포트 간 링크 전환을 상대방에게 알릴 수 있다. 마커 프로토콜은 프레임의 마지막에 마커 메시지를 전송하고, 수집기는 마커 응답 메시지를 전송하여 링크 변경을 알린다.

슬로우 프로토콜 - 마커 프로토콜은 슬로우 프로토콜로 분류됨.
- 슬로우 프로토콜은 초당 5개 이상의 프레임을 전송할 수 없으며, 표준에서는 슬로우 프로토콜이 동일한 이더타입 필드를 최대 10개까지 사용할 수 있다고 정의함.
전송 제한 - 수신부는 초당 105개 이상의 슬로우 프로토콜을 처리할 수 없으며, 따라서 수신 제한이 존재함.

 

- 링크 어그리게이션 제어 프로토콜(Link Aggregation Control Protocol, LACP)

 LACP(Link Aggregation Control Protocol)는 시스템 간 링크 어그리게이션을 자동으로 설정하고 유지하는 데 사용된다. LACP는 두 장비가 상호 협상하여 어그리게이션 링크를 설정하는 프로토콜로, LACPDU 프레임을 통해 어그리게이션 정보를 교환한다.

LACPDU 서브타입 0x01 - LACP는 이 프레임을 사용하여 연결된 장비 간에 어그리게이션 설정을 협상함.
- 이 협상은 1초 미만의 빠른 시간 내에 수렴함.

 

- Actor와 Partner

 LACP 프레임을 교환하는 두 장비는 각각 ActorPartner라는 관계를 가진다. 각 스위치는 자기 자신을 Actor로, 상대방을 Partner로 간주하여 정보를 비교하고 이를 통해 어떤 작업을 수행할지를 결정한다.

 

- LACP 파라미터

 LACPDU에서 교환되는 중요한 LACP 파라미터는 다음과 같다.

시스템 ID와
우선순위
- 시스템 ID는 "2바이트 우선순위 + 6바이트 시스템 MAC 주소"로 구성됨. 기본 우선순위 값은 32768로, 이는 스패닝 트리의 브리지 ID와 동일함.
- LACP에서 우선순위가 낮은 시스템이 Active 상태로 설정됨. 시스템 ID가 낮은 쪽이 링크의 Active 상태를 정의하며, 이 값은 lacp system-priority [0-65535] 명령으로 설정할 수 있음.
포트 번호와
우선순위
- 포트 ID는 "2바이트 우선순위 + 2바이트 포트 번호"로 구성됨. 포트 ID는 Standby 상태로 설정할 포트를 결정하는 데 사용되며, 포트 ID 값이 낮은 포트가 Active 상태로 설정됨.
- 기본적으로 최대 16개의 포트가 어그리게이션에 할당되며, 8개는 Active 상태로, 나머지 8개는 Standby 상태로 설정됨. 이 값은 lacp port-priority [0-65535] 명령을 통해 조정할 수 있음.
LACP 관리 키 - LACP는 각 어그리게이션 그룹에 대해 고유한 관리 키를 자동으로 생성하여, 동일한 LACP 채널 그룹이나 어그리게이터 그룹을 식별하는 데 사용함. 이 관리 키는 그룹 간의 일관성을 유지하는 데 중요함.

 

5. LACP 로드 밸런싱

 LACP(Link Aggregation Control Protocol)를 사용하여 설정된 채널 그룹에서 트래픽을 로드 밸런싱하는 과정에서는 여러 링크를 통해 트래픽이 분산되지만, 때때로 프레임의 도착 순서가 바뀌는 현상이 발생할 수 있다. 이로 인해 목적지 서버는 도착한 패킷의 순서를 재배열하는 작업을 해야 한다.

 

 예를 들어, 두 개의 링크가 하나의 채널로 설정되어 트래픽을 분산하는 경우, 첫 번째 큰 크기의 프레임은 첫 번째 링크를 통해 전송되고, 두 번째 작은 크기의 프레임은 두 번째 링크를 통해 전송된다. 결과적으로 두 번째 프레임이 먼저 도착하는 현상이 발생할 수 있다.

 

 이러한 재배열 문제를 방지하고, 트래픽을 적절하게 분산하기 위해 로드 밸런싱 알고리즘이 필요하다. 로드 밸런싱은 분배기가 다중 링크에 프레임을 전송할 때, 어떤 물리적 링크를 사용할지 결정하는 과정에서 이루어진다. 기본적으로 사용되는 로드 밸런싱 알고리즘은 목적지 MAC 주소를 기준으로 하는 해시(Hash) 알고리즘이다.

 

- LACP 표준과 로드 밸런싱

 IEEE 802.3ad 표준에서는 로드 밸런싱을 위한 알고리즘에 대해 명확히 정의하지 않지만, 링크에 가중치를 부여하는 방식은 설명하고 있다. 즉, 물리적 링크 간의 완벽한 로드 밸런싱을 보장하지 않으며, 장비 제조사마다 고유한 로드 밸런싱 알고리즘을 적용하고 있다. 이로 인해 로드 밸런싱의 비율이나 효율성은 장비에 따라 달라질 수 있다.

 

 대부분의 경우 목적지 MAC 주소 기반으로 로드 밸런싱이 수행된다. 그러나 이러한 방식은 특정 목적지로 전송되는 트래픽이 여러 링크 중 하나만을 사용하기 때문에, 링크가 과부하 상태에 이를 경우 추가적인 트래픽은 다른 링크로 전환되지 않고 폐기된다. 이로 인해 프레임 손실이 발생할 수 있다. 이런 문제를 해결하려면 MAC 주소 외에도 다른 파라미터(예: IP 주소, 포트 번호 등)를 로드 밸런싱 알고리즘에 추가해야 한다.

 

- 고급 로드 밸런싱 기법

 더 정교한 로드 밸런싱을 위해 Cisco는 L3 (IP 주소)  L4 (포트 번호) 계층의 정보를 사용하여 로드 밸런싱을 수행하기도 한다. 이는 프레임을 더 균등하게 분산시키고, 오버플로우를 방지하는데 도움을 준다.

  • ex) Dell 스위이의 로드 밸런싱 방식 : Dell 스위치에서는 XOR 연산과 나머지(Modulus) 연산을 조합하여 로드 밸런싱을 구현한다. 예를 들어, 세 개의 링크가 채널 그룹으로 설정되고, 프레임의 소스 MAC 주소와 목적지 MAC 주소가 주어졌을 때, XOR 연산과 나머지 연산을 통해 해당 프레임을 어떤 포트에서 전송할지 결정한다.

 

  • 소스 MAC 주소 : 00 0b db d7 9a d2 (마지막 6비트: 01 0010)
  • 목적지 MAC 주소 : 00 02 2d ba f0 2c (마지막 6비트: 10 1100)
  • 포트 : g11, g12, g13
  • XOR 연산 : (01 0010) XOR (10 1100) = 11 1110 = 62 (10진수)
  • 나머지 연산 : 62 MOD 3 = 62 % 3 = 1
  • 포트 g13에서 전송됨.

 이 방식은 로드 밸런싱을 프레임 전송 시점에 적용하며, 양방향으로 동작하지 않는다. 따라서 장비 간의 로드 밸런싱 방식 차이로 인해 패킷 재배열 및 부하 쏠림 현상이 발생할 수 있다. 로드 밸런싱 성능은 관리자 설정에 크게 의존하므로, 최적의 로드 밸런싱을 위해 적절한 파라미터 설정이 필요하다.

728x90