|

[ACSA 교육#31] Static & Dynamic LAG

⏱️ 예상 읽기 시간: 약 10분 (10 min read)

지난 포스팅에서 LAG(Link Aggregation Group)에 대해 간단히 알아보았습니다.
LAG는 두 가지 운영 모드를 갖고 있습니다. Static LAG와 Dynamic LAG가 그것입니다.

그럼 차례대로 한 번 알아보겠습니다.

Static LAG

Static Link Aggregation 모드에서는 장치 간에 서로 어떠한 제어 정보(Control Information)을 교환하지 않습니다. 즉, 스위치 피어 간 LAG 관련 신호를 주고 받지 않습니다. 각각의 피어에서 독립적으로 링크 애그리게이션(LAG)을 구성하기만 하면 됩니다. 정상적으로 구성이 완료되면, LAG가 작동하게 됩니다.

[ACSA 교육#31] Static & Dynamic LAG - image 4

하지만, 각 스위치는 자신이 누구에게 연결되어 있는지, 또는 동일한 피어에 연결되어 있는지 등 정보를 알지 못합니다.
한 쪽에서 잘못 구성하더라도 피어에서 감지되지 않기 때문에 이 모드는 권장되진 않습니다.
이로 인해 예기치 않은 동작이 발생할 수도 있고, 탐지나 트러블슈팅이 어려울 수도 있습니다.

아래 그림을 살펴보면, Core-1 스위치가 LAG 멤버 포트를 서로 다른 피어 스위치에 연결된 것을 탐지하지 못하고 있음을 알 수 있습니다.

[ACSA 교육#31] Static & Dynamic LAG - image 3
Static LAG 구성

AOS-CX 스위치에서 Layer 2 Static LAG 구성하는 방법은 아래와 같습니다.

1. 먼저 LAG 인터페이스를 생성합니다. 인터페이스를 식별할 수 있는 ID 숫자와 함께 생성합니다. ID는 1부터 256까지 설정할 수 있습니다.

Switch(config)# interface lag <id>

2. 새로운 LAG 인터페이스에 대해 라우팅 기능을 비활성화(disable)합니다.

Switch(config-lag-if)# no routing

3. 물리 인터페이스 포트를 LAG의 멤버 포트로 매핑합니다.

Switch(config)# interface {member/slot/port}
Switch(config-if)# lag <id>

이렇게 각각의 스위치에 동일한 작업을 수행하면 두 스위치간에 LAG 구성이 완료됩니다.
다음 두 스위치 간 LAG 구성 예제를 한 번 살펴보겠습니다.

[ACSA 교육#31] Static & Dynamic LAG - image 5
Core-1(config)# interface lag 20
Core-1(config-lag-if)# no routing
Core-1(config)# interface 1/1/43
Core-1(config-if)# lag 20
Core-1(config)# interface 1/1/44
Core-1(config-if)# lag 20
Core-2(config)# interface lag 20
Core-2(config-lag-if)# no routing
Core-2(config)# interface 1/1/43
Core-2(config-if)# lag 20
Core-2(config)# interface 1/1/44
Core-2(config-if)# lag 20

802.3ad – Dynamic LAG

802.3ad 표준에서, Dynamic LAG를 사용하는 피어 장치들은 LAG를 맺고 유지하기 위해 제어 메시지(control message)를 교환합니다. 이러한 메커니즘은 링크의 장애를 감지하고 LAG 멤버 포트가 동일한 장치에서 구성되도록 합니다.

이 표준은 일반적으로 LACP(Link Aggregation Control Protocol)이라고 합니다. LACP는 LACP Data Unit이라는 메시지를 주기적으로 교환합니다. 이 메시지에는 다음이 포함되어 있습니다.

  • System ID: 스위치 식별자
  • Operational Key: LAG(Link Aggregation Group) 식별자

또한, LACP-DU(LACP Data Unit)에는 아래와 같이 몇 가지 Flag를 포함하고 있습니다.

  • LACP_Activity
  • LACP_Timeout
  • Aggregate
  • Synchronization
  • Collecting
  • Distributing

예상치 못한 네트워크 문제를 방지하기 위해서는 Dynamic LAG 또는 LACP로 링크 애그리게이션을 적용하는 것을 권장합니다.

802.3ad 표준에서 최대 16개의 포트까지 묶을 수 있지만, 동시에 사용 가능한 포트는 8개입니다.

802.3ad 운영 모드

LACP는 두 가지 모드 중 하나를 선택하여 구성할 수 있습니다.

Passive 모드에서, 장치는 LAG(Link Aggregation Group)을 자동으로 생성하기 위해서 다른 피어로부터 LACP-DU(LACP Data Unit) 메시지를 받을 때까지 기다립니다. 이 모드는 LAG를 수신 상태(Listening State)로 놔두게 됩니다. 마치, “여기 앉아서 내 피어로부터 연락을 받을 때까지 기다려야지.”라고 하는 것처럼 말입니다. 따라서, 만약 다른 피어 스위치 역시 Passive 모드로 구성이 된다면 두 스위치 모두 같은 생각을 하게 됩니다. 서로 누군가 메시지를 보낼 때까지 앉아서 기다리고 있기 때문에 LAG 연결과 구성이 이뤄지지 않게 됩니다.
즉, 적어도 피어 하나는 Active 모드가 되어야만 합니다.

Active모드에서는 장치가 스스로 LACP Data Unit 메시지를 멤버 포트를 통해서 보내게 됩니다. “LAG 구성합시다!!”라고 말입니다. 피어가 Passive 모드이든 Active모드이든 관계없이 메시지에 대해 응답하고 Negotiation을 이어갑니다. 결국에는 LAG가 성공적으로 구성됩니다.

[ACSA 교육#31] Static & Dynamic LAG - image 6

자, 그럼 AOS-CX 스위치에서는 어떻게 구성하는지 알아보겠습니다.

Dynamic LAG 구성 방법

Dynamic LAG 구성 방법은 Static LAG 구성 방법과 비슷합니다. 단지 LACP 모드를 선택하는 명령어가 추가됩니다.

Switch(config-lag-if)# lacp mode {active | passive}

아래와 같이 스위치에 Dynamic LAG 구성하는 예시를 한 번 살펴보겠습니다.

이 이미지에 대체 속성이 비어있습니다
Core-1(config)# interface lag 20
Core-1(config-lag-if)# no routing
Core-1(config-lag-if)# lacp mode active
Core-1(config)# interface 1/1/43
Core-1(config-if)# lag 20
Core-1(config)# interface 1/1/44
Core-1(config-if)# lag 20
Core-2(config)# interface lag 20
Core-2(config-lag-if)# no routing
Core-2(config-lag-if)# lacp mode active
Core-2(config)# interface 1/1/43
Core-2(config-if)# lag 20
Core-2(config)# interface 1/1/44
Core-2(config-if)# lag 20
LAG 인터페이스 확인

“show interface lag” 명령어를 통해 구성한 내용을 확인할 수 있습니다.

Switch# show interface lag
 Aggregate lag1 is up
 Admin state is up
 Description :
 MAC Address                 : 88:3a:30:97:59:c0
 Aggregated-interfaces       : 1/1/25 1/1/26 2/1/25 2/1/26
 Aggregation-key             : 1
 Aggregation-mode            : active
 Speed                       : 40000 Mb/s
 L3 Counters: Rx Disabled, Tx Disabled
 <<<<Omitted output>>>>

또한, “show interface lag brief”를 통해 LAG의 전체 사용 가능한 대역폭을 확인할 수도 있습니다.

Switch# show interface lag brief
------------------------------------------------------------------------------
Port      Native   Mode    Type         Enabled Status  Reason          Speed
          VLAN                                                          (Mb/s)
------------------------------------------------------------------------------
lag1      1        trunk   --           yes     up      --              40000

Load Sharing (로드 쉐어링)

LAG 구성을 하게 되면 각 피어 장치는 멤버 포트인 물리적 인터페이스에 대해 트래픽 부하 분산을 조정해야 합니다. 스위치는 해시 알고리즘(Hash Algorithm)을 사용하여 주어진 패킷에 대해서 사용할 멤버 포트를 결정합니다.

해시 알고리즘은 입력 값(x)에 따라 적용되는 수학점 함수입니다. 출력 값(y)만 보고서는 입력 값(x)을 예상하거나 추론할 수 없습니다. 단방향 함수라고도 합니다. 해시의 또 다른 특징은 동일한 입력 값(x)인 경우에는 출력 값(y)이 항상 동일하다는 특징을 갖고 있습니다.

스위치는 패킷 헤더 정보를 해시 알고리즘의 입력 값(x)으로 사용하며 결과(y)는 해당 특정 패킷에 사용할 멤버 포트입니다. 사용된 스위치 알고리즘에 따라 해시 입력값은 다음이 해당될 수 있습니다.

  • Layer 4 TCP/UDP 포트
  • Layer 3 출발지 및 목적지 IP주소
  • Layer 2 출발지 및 목적지 MAC주소

다음 그림은 Layer 2 출발지 및 목적지 MAC주소가 알고리즘의 입력 값으로 사용되는 방법을 보여줍니다.

[ACSA 교육#31] Static & Dynamic LAG - image 7

항상 해당 출발지 및 목적지 MAC주소 조합에 대한 모든 패킷에 대해 출력 값으로 물리적 포트 1을 사용하는 것입니다. 링크에 문제가 생기면 이 패킷은 물리적 포트 2를 사용합니다.

AOS-CX 스위치는 기본적으로 해시 알고리즘의 입력 값으로 출발지와 목적지 IP주소를 사용합니다.
“show lacp aggregates” 명령어를 통해 확인 가능합니다.

Switch# show lacp aggregates
Aggregate Time   : lag1
Interfaces       : 2/1/26 1/1/25 2/1/25 1/1/26
Heartbeat rate   : Fast
Hash             : l3-src-dst
Aggregate mode   : Active

Hash 정보에서 “l3-src-dst”가 기본값이고 이는 Layer 3, 즉 IP주소를 의미합니다.

하지만, 출발지와 목적지 IP주소로 해시 알고리즘을 사용하는 것은 적절치 못하는 경우도 있습니다. 멤버 포트간 부하를 동일하고 적절하게 배분하지 못할 수 있습니다. 그럴 경우 트래픽이 혼잡해지고 전반적으로 성능이 저하될 수 있습니다.
이럴 때는, 입력 값을 수정하면 됩니다. 아래와 같이 Layer 2 출발지 및 목적지 MAC주소를 해시 함수의 입력 값으로 사용할 수 있습니다. 이럴 경우 멤버 포트의 Oversubscription을 예방할 수 있습니다.

Switch(config)# interface lag <ID>
Switch(config-lag-if)# hash l2-src-dst

이렇게 링크 애그리게이션에 대해 알아보았습니다.
링크 애그리게이션은 스위치와 스위치간에만 사용하는 것이 아니라 서버나 스토리지, 라우터간 연결에도 사용하는 기술이기 때문에 구성하고 확인하는 명령어를 정확히 알아두는 것이 중요합니다.

유사 게시물

  • 데이터센터 트래픽 패턴 변화에 따른 새로운 보안

    최근 데이터센터 내에서는 East-West 트래픽의 중요성이 증가하고 있으며, 이는 가상화와 클라우드 컴퓨팅의 확산에 기인합니다. 이러한 변화는 보안 취약점과 운영 비효율성을 초래하고, 데이터센터의 안전을 위해 마이크로 세그먼테이션과 내부 트래픽 제어가 필요합니다.

  • [ACMA 교육#5] AOS 8 특징

    ⏱️ 예상 읽기 시간: 약 10분 (10 min read) 지난 포스팅에서 AOS 8 운영체제의 아키텍처에 대해 알아보았습니다. 무선 네트워크 인프라가 점점 활성화되고 보편화되면서 무선 인프라의 안정성과 성능이 점차 중요해지고 있습니다. 특히나 기업들이 업무 용도로 기존 유선 LAN이 아닌 Wi-Fi로 사용하는 Digital Workspace, Mobile Office 등의…

  • AOS-CX 보안 설정 가이드 (1)

    ⏱️ 예상 읽기 시간: 약 11분 (11 min read) 네트워크에 대한 보안 인식이 점점 커지고 있습니다. 기존의 네트워크 보안이라고 한다면, IP주소 기반의 방화벽을 구성하는 것이 대부분이었습니다. 하지만 이제 많은 애플리케이션과 시스템들이 네트워크에 연결되고 있는 만큼 네트워크 스위치의 보안도 중요해지고 있습니다. 점점 네트워크가 복잡해지고 서로 연결되고…

  • [ACP-DC 교육#11] 루프 방지 및 LAG 구현

    ⏱️ 예상 읽기 시간: 약 6분 (6 min read) 데이터센터 설계는 서버의 NIC 카드부터 시작해 업링크와 스위치까지 여러 겹의 중복성(Redundancy)을 포함합니다. 이러한 Redundancy는 필수적이지만, 동시에 네트워크 루프(Loop), 브로드캐스트 스톰, 네트워크 중단의 위험을 높입니다. 오늘은 이러한 위험을 막고 고성능의 중복 L2 데이터센터를 구축하기 위한 핵심 기술들을…

  • [ACSA 교육#17] 기본 설정 명령어

    ⏱️ 예상 읽기 시간: 약 5분 (5 min read) 스위치를 구매한 후에 네트워크에 연결하기 전 몇 가지 작업을 해야만 합니다. 스위치의 이름을 설정하거나 인터페이스를 설정하는 작업 같은 것 말입니다. 그래서 오늘은 AOS-CX 스위치의 아주 기본적인 설정 명령어들을 살펴보겠습니다. Hostname 설정 스위치가 하나만 있는 경우가 아니라면…

  • [ACSA 교육#15] AOS-CX CLI 접속

    ⏱️ 예상 읽기 시간: 약 5분 (5 min read) Aruba CX 스위치에 접속하기 위해서는 여러 가지 방법이 있습니다.그 중에 하나가 Console 포트를 통해 연결하는 방법일 것입니다. 처음 스위치를 구성할 때 일반적으로 콘솔 포트에서 OOBM(Out-of-Band Management)을 사용합니다.이 특별한 콘솔 포트는 구성과 트러블슈팅, 관리를 용이하기 위해 모든…