네트워크핵심 · 18분 읽기

EtherChannel·LACP 협상과 분산 방식

물리 포트가 하나의 Port-channel로 묶이는 조건, LACP·PAgP·정적 모드의 차이와 해시 분산을 설명한다. 원문의 Po1(RD)·멤버(s) 출력과 정상 RU/SU·P 상태를 비교한다.

개념부터 찾아보기

정의·역할·동작 원리를 독립 페이지에서 확인하세요. 본문의 밑줄 용어에도 설명이 있습니다.

이 노트에서 설명할 수 있게 되는 것

  1. 물리 멤버와 논리 Port-channel의 관계를 설명한다.
  2. LACP의 참여·선택·전달 상태를 구분한다.
  3. 총용량과 단일 흐름 성능을 나누어 검증한다.

01물리 포트를 하나의 논리 링크로 묶기

  • 은 복수의 물리 링크를 논리 로 묶는다. 정상 구성에서는 가 개별 멤버 링크가 아닌 을 하나의 링크로 다루므로 같은 두 스위치 사이의 모든 멤버를 사용할 수 있다.
    • 한 멤버에 장애가 생겨도 나머지 링크가 조건을 만족하면 논리 연결이 유지된다.
    • trunk와 이름이 비슷해도 모든 이 trunk인 것은 아니다.
    • Access 채널과 L3 routed 채널도 가능하다.
  • 2개의 1Gbps 링크를 묶으면 여러 흐름에 걸친 총 용량을 늘릴 수 있지만 하나의 흐름이 반드시 2Gbps로 전송되는 것은 아니다. 흐름을 순서대로 유지하기 위해 일반적인 해시 기반 구현은 같은 흐름을 같은 멤버에 배정한다.
    • 상대방도 실제로 같은 논리 묶음을 구성해야 하며, 서로 독립적인 두 스위치에 연결한 선을 아무 조건 없이 한 채널로 만들 수 없다.
    • 스택·가상 섀시·MLAG 등 지원 구조는 별도 전제다.

02협상 방식과 모드 조합

  • 는 현재 IEEE802.1AX에서 다루는 링크 집성 제어 프로토콜이다. active는 협상을 능동 시작하고 passive는 상대 에 반응한다.
    • active-active와 active-passive는 가능하지만 passive-passive는 양쪽 모두 시작하지 않아 형성되지 않는 대표 조합이다.
    • 는 Cisco 계열 협상으로 desirable이 시작하고 auto가 반응한다.
  • on은 의 세 번째 모드가 아니라 협상 없는 정적 묶음이다. active-on 조합은 정상적인 협상 조합이 아니다.
    • on은 양 끝의 정확한 정적 구성에 의존하며 틀린 배선·설정을 협상으로 검출하는 기능이 약하다.
    • 의 활성/대기 포트 최대 개수는 플랫폼마다 다르므로 ‘16개 중 8개’는 특정 장비의 지원 조건이다.

03LACP의 Aggregator 선정과 전달 상태

  • 속도·duplex·L2/L3 역할과 access 또는 trunk native/allowed 설정이 일관되어야 한다. 실제 멤버가 같은 상대 논리 시스템으로 연결되어야 한다.
  • 양끝의 channel-group 번호가 같을 필요는 없다. 번호 일치보다 · 정보와 구성의 호환성이 중요하다.
  • 물리 up만으로 분산에 참여하지 않는다. 협상·구성이 맞지 않으면 standalone·suspended·hot-standby 등의 상태로 남을 수 있다.
  1. 가 system·port 정보, key와 상태를 주고받는다. 각 링크가 어떤 로컬·원격 논리 시스템에 속하는지 파악한다.
  2. 교환한 정보와 포트 구성에 따라 같은 에 넣을 멤버를 선택한다.
  3. 은 수신을 받아들이는 상태, 은 송신에 쓰는 상태다. 선정과 실제 데이터 사용을 구분한다.
  4. 사용 가능한 멤버를 통해 트래픽을 전달한다. 장애 분석은 물리 링크→ 이웃→→논리 링크 순으로 연결한다.

설명과 함께 보는 보조 도식

처리 과정

LACP와 데이터 전달의 구분

물리 연결이 논리 묶음의 전달 멤버가 되는 과정.

전체 단계를 한 번에 읽기
  1. 01

    물리 확인

    케이블 연결과 속도를 확인한다.

  2. 02

    협상

    적어도 한쪽 active가 교환을 시작한다.

  3. 03

    참여 결정

    포트별 일관성과 상태를 확인한다.

  4. 04

    전달 준비

    논리 인터페이스와 선택 멤버가 준비된다.

  5. 05

    데이터 분산

    단일 흐름과 여러 흐름의 분산은 다르다.

  6. 06

    장애 해석

    논리 up과 서비스 용량을 각각 확인한다.

학습용 동작 모식도. 실제 구현의 동시 처리와 예외 흐름은 축약했다.
원리 심화

04LACP 상태 비트가 전송 허용을 결정하는 과정

  • 각 는 송신 측 정보와 상대에 대해 알고 있는 정보를 담는다. System ID·Key·Port ID가 같은 논리 묶음에 속하는지 판단할 자료가 된다.
  • 는 active/passive, 은 상대에게 요청하는 짧은/긴 타임아웃 조건을 나타낸다. 타임아웃 비트가 바뀌었다고 링크 대역폭이나 해시 방식이 바뀌는 것은 아니다.
  • Aggregation은 집계 가능한 링크인지, 은 집계 선택과 상대 정보가 동기화됐는지를 나타낸다. 물리 링크 up과 논리 묶음에 실제 사용 가능한 상태를 구분한다.
  • 은 그 링크에서 받은 사용자 프레임을 논리 채널로 수용하는 상태, 은 논리 채널의 프레임을 그 링크로 송신하는 상태다. 두 비트는 수신과 송신의 별도 허용을 표현한다.
  • 수신 정보가 제시간에 갱신되지 않으면 처리가 진행되고, 더 이상 유효한 정보가 없으면 기본값으로 돌아갈 수 있다. 장비별 출력의 상태 비트를 양쪽에서 비교해야 한다.

05L2 Trunk LACP 정상 구성 예

  • 아래 예에서는 두 스위치의 Gi0/1·Gi0/2를 서로 연결하고 양쪽 모두 같은 방식으로 설정한다. VLAN10·20을 운반하는 정책은 논리 에도 일치하게 둔다.
    • 실제 플랫폼은 멤버 설정의 상속·검사 방식이 다르므로 기존 포트 설정이 충돌하는지 함께 읽는다.
    • 생성한 이 L2인지 L3인지부터 일관되어야 한다.
  • 예제의 no switchport는 L3 routed 실습을 의미한다. 그 설정을 그대로 두고 L2 trunk를 기대하면 역할이 맞지 않는다.
    • L3 채널은 물리 멤버 각각에 같은 IP를 주지 않고 논리 에 IP를 주어 라우팅한다.
    • 아래 예는 L2이므로 no switchport를 사용하지 않는다.
text
vlan 10
vlan 20
interface range GigabitEthernet0/1 - 2
 switchport mode trunk
 switchport trunk allowed vlan 10,20
 channel-group 1 mode active
 no shutdown
interface Port-channel1
 switchport mode trunk
 switchport trunk allowed vlan 10,20
!
show etherchannel summary
show lacp neighbor
show interfaces port-channel 1

양 끝에서 호환되게 구성하는 IOS L2 예. 인터페이스 범위 문법은 플랫폼에 맞춘다.

06L3 Port-channel은 논리 인터페이스에 주소를 둔다

  • 라우터 또는 L3 스위치 간 전용 전송망을 집성할 때 멤버를 routed port로 바꾸고 에 주소를 설정한다. 두 멤버가 한 링크를 구성하므로 ·이웃 해석과 관점에서는 하나의 논리 L3 인터페이스로 보인다.
    • L2 trunk 설정과 동시에 섞지 않는다.
  • 수업의 L3 채널 출력은 물리 인터페이스가 up/up인데 Po1(RD), 각 멤버(s)로 표시되어 정상 집성이 아니었다. 이 출력만으로 최종 원인은 확정되지 않으므로 L2/L3 역할·멤버 설정·협상 결과를 추가로 대조해야 한다.
    • 정상 기대 상태와 비교해 수신, 멤버 호환성, 실제 상대 포트, 플랫폼 지원을 좁혀 가는 과정으로 남긴다.
text
interface range GigabitEthernet0/1 - 2
 no switchport
 channel-group 1 mode active
 no shutdown
interface Port-channel1
 no switchport
 ip address 192.0.2.1 255.255.255.252
!
! 상대 논리 Port-channel의 문서용 주소: 192.0.2.2/30

L3 채널을 지원하는 플랫폼의 별도 예. 앞 절 L2 구성과 대안 관계다.

07해시 기반 부하 분산과 단일 흐름의 한계

  • 스위치는 설정·플랫폼에 따라 출발지/목적지 MAC, IP, · 포트 등의 일부 값을 해시에 넣어 멤버를 고른다. 호스트 하나를 물리선 하나와 영구적으로 1:1 연결하는 방식도, 매 패킷을 무조건 번갈아 보내는 방식도 아니다.
    • 양쪽 스위치의 해시 기준이 다르면 A→B와 B→A가 서로 다른 물리 링크를 사용할 수 있다.
  • 하나의 대용량 흐름만 생성한 실험은 멤버 한 개만 바쁘게 만들 수 있다. 여러 출발지·목적지·포트 조합을 써야 집계 대역폭을 관찰하기 쉽다.
    • 해시 입력이 다양하지 않으면 여러 흐름도 한쪽으로 치우칠 수 있고, 멤버 장애 후 재분배 과정에서 순간적인 순서 변화가 생길 수 있다.
    • 멤버 합계 속도, 단일 흐름 속도, 장애 후 잔여 용량을 각각 측정해야 한다.
예제로 추적

08상태값 0x3d와 해시 분포를 읽기

  1. State=0x3d는 00111101₂이다. 하위 비트부터 =1, =0, Aggregation=1, Sync=1, =1, =1이며 상위 ·는 0이다.
  2. active이며 long 을 요청하고, 동기화·수신·송신이 활성화된 상태로 해석한다. 이 값만으로 상대편의 allowed 이나 모든 상위 서비스까지 정상이라고 판단하지 않는다.
  3. 1 Gbit/s 링크 4개와 각 400 Mbit/s인 흐름 4개가 있다고 하자. 해시 결과가 링크별 {2,1,1,0}개 흐름이면 부하는 {800,400,400,0} Mbit/s다.
  4. 남는 링크가 있어도 해시가 같은 흐름 두 개는 같은 링크를 사용할 수 있다. 분산은 흐름 특성·해시 입력·버킷 배치에 달려 있고 매 순간 대역폭을 균등하게 나누는 스케줄러가 아니다.
  5. 두 흐름이 각각 700 Mbit/s로 증가해 같은 1 Gbit/s 링크에 몰리면 그 링크에서 혼잡이 생긴다. 논리 합계 4 Gbit/s보다 전체 요구량이 작아도 개별 멤버 병목은 가능하다.

09Po1(RD)와 멤버(s)를 정상 출력과 비교하기

  • summary의 R은 Layer3, S는 Layer2, U는 in use, D는 down이다. 멤버 뒤 P는 에 정상 번들됨을, s는 suspended, I는 standalone, H는 hot standby를 의미한다.
    • 대문자 S와 소문자 s는 완전히 다른 뜻이다.
    • 실습 캡처의 Po1(RD)와 Et0/0(s)·Et0/1(s)는 L3 논리 채널이 down이고 멤버들이 중지된 상태이지 정상 이중화 완료가 아니다.
  • 정상 예에서 Po1(RU)와 두 멤버(P)가 함께 보이는지 확인한다. 물리 인터페이스의 up/up만 보고 번들이 정상이라고 판단하지 않는다.
    • min-links를 설정한 구성은 일부 멤버가 살아 있어도 최소 개수를 만족하지 않으면 논리 인터페이스를 내릴 수 있다.
    • 단일 멤버 장애 시험 결과를 설명할 때 이 조건을 함께 명시한다.
text
원문 실패 상태의 형태:
1  Po1(RD)  LACP  Et0/0(s) Et0/1(s)

설명용 정상 L3 상태:
1  Po1(RU)  LACP  Gi0/1(P) Gi0/2(P)

설명용 정상 L2 상태:
1  Po1(SU)  LACP  Gi0/1(P) Gi0/2(P)

조회:
show etherchannel summary
show etherchannel 1 detail
show lacp neighbor
show etherchannel load-balance

상태 문자열 비교. 특정 실패 원인을 증명하는 로그는 원문에 없어 단정하지 않는다.

LEARN THROUGH PRACTICE

실습: LACP 미결합 포트와 해시 분산 구별

채널 생성·멤버 협상·데이터 분산을 서로 다른 검증 단계로 해석한다.

실습 구성과 전제

  • IOS의 Ethernet0/0~3을 1로 묶는 가상 스위치 연습이다. 양끝의 속도·duplex·L2/L3· 조건을 맞춘다.
  • 일괄 디버그 출력 대신 상태 조회를 기본으로 한다. 아래 로그는 실제 기록의 핵심 오류를 발췌한 것이며 새로 실행한 결과가 아니다.
  1. 양끝 협상 모드와 구성 정리

    • 적어도 한쪽은 active여야 협상을 시작한다. 이 생성되었다는 로그만으로 모든 물리 포트가 묶였다는 뜻은 아니다.
    • 는 링크의 속도를 자동 협상하는 프로토콜이 아니다. 링크 호환성과 / 정보로 집합 가능 여부를 판단한다.
    text
    interface range Ethernet0/0 - 3
     channel-group 1 mode active
     no shutdown
    end
    show etherchannel summary
    show lacp neighbor

    실제 명령 흐름을 정리한 예시. ·Trunk 정책은 양끝에 미리 맞춘다.

    확인 기준

    양끝이 active/passive 또는 active/active이고 같은 링크 집합인지 확인한다.

  2. suspended와 bundled 분리

    • 실제 로그는 remote port에서 가 활성화되지 않아 Et0/1 등이 suspended되었다고 기록한다. 물리 링크가 살아 있어도 협상이 되지 않으면 데이터 집합에 참여하지 못한다.
    • 같은 기록의 summary에는 Et0/0(s), Et0/1(s), Et0/2(P), Et0/3(P)가 있다. Po1(SU)만 보고 네 링크 전부 정상이라고 판단하면 안 된다.
    text
    %EC-5-L3DONTBNDL2: Et0/1 suspended: LACP currently not enabled on the remote port.
    1  Po1(SU)  LACP  Et0/0(s) Et0/1(s) Et0/2(P) Et0/3(P)

    실제 기록에서 읽은 오류와 요약 행

    확인 기준

    s는 suspended, P는 bundled이다. 상대 설정과 케이블 대응을 먼저 확인한다.

  3. LACPDU 상태와 상대 정보 확인

    • 선택 패킷은 Slow Protocols 안의 이며 와 정보가 나뉜다. 양쪽의 System·Key·Port를 같은 필드끼리 대조한다.
    • 상태 0x3d에는 ·Aggregation···이 표시된다. 단순히 MAC이 작은 장비가 마스터라서 모든 링크를 지휘한다는 설명으로 줄이지 않는다.
    링크 집계와 LACP · LACP 패킷 (3)원본 크기로 보기 ↗
    • Slow Protocols subtype LACP와 Actor/Partner TLV가 보인다.
    • 상태 0x3d에 Synchronization·Collecting·Distributing이 표시된다.
    확인 기준

    동기화·수집·분배 상태를 멤버별로 확인한다.

  4. 협상 성공과 트래픽 분산 정책 구분

    • show load-balance의 src-dst-ip는 이 장비의 현재 분산 정책이다. 모든 장비의 보편 기본값으로 외우지 않는다.
    • 한 주소쌍 흐름은 같은 멤버로 몰릴 수 있다. 한 번의 ping만으로 총 대역폭 증가를 측정하지 말고 여러 흐름과 포트별 카운터를 비교한다.
    text
    show etherchannel load-balance
    show interfaces Ethernet0/2
    show interfaces Ethernet0/3

    실습 흐름을 재구성한 명령 예시. 장치·인터페이스 이름은 구성에 맞춰 사용한다.

    링크 집계와 LACP · LACP 패킷 (4)원본 크기로 보기 ↗
    • 현재 정책은 src-dst-ip다.
    • Non-IP는 MAC, IPv4·IPv6는 IP 주소 조합을 사용한다고 표시된다.
    확인 기준

    멤버가 P인 것과 각 멤버에 균등 부하가 생기는 것은 다른 조건이다.

실습에서 확인한 동작 원리

  • 채널 논리 인터페이스 생성과 멤버 데이터 전달 참여는 다르다.
  • 단일 흐름의 한 링크 사용은 해시 정책의 정상 결과일 수 있다.

설정·출력 추가로 확인하기 8장

아래 화면을 펼쳐 위 실습의 설정값, 명령과 확인 기준을 비교해 보세요. 각 묶음은 별도 실습 기록입니다.

실습 화면 묶음 01 4장
9/4 - bonding / vpn · 명령·상태 출력 3원본 크기로 보기 ↗
  • 「AAA」 문맥에 삽입된 원본 명령·상태 출력이다. EtherChannel·LACP 협상과 분산 방식 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
9/4 - bonding / vpn · 설정·관리 화면 4원본 크기로 보기 ↗
  • 「VPN Client (window)」 문맥에 삽입된 원본 설정·관리 화면이다. EtherChannel·LACP 협상과 분산 방식 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
9/4 - bonding / vpn · 설정·관리 화면 5원본 크기로 보기 ↗
  • 「VPN Client (window)」 문맥에 삽입된 원본 설정·관리 화면이다. EtherChannel·LACP 협상과 분산 방식 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
9/4 - bonding / vpn · 실습·개념 참고 화면 6원본 크기로 보기 ↗
  • 「VPN Client (window)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. EtherChannel·LACP 협상과 분산 방식 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 02 1장
EtherChannel·본딩 연결 실습원본 크기로 보기 ↗
  • 학습 원본 · EtherChannel·본딩 연결 실습의 해당 절에 수록된 화면·도식이다.
실습 화면 묶음 03 1장
EtherChannel·본딩 연결 실습 · 이더채널 실습원본 크기로 보기 ↗
  • 학습 원본 · EtherChannel·본딩 연결 실습의 이더채널 실습에 수록된 화면·도식이다.
실습 화면 묶음 04 2장
링크 집계와 LACP · 이더넷 본딩 (티밍) (1)원본 크기로 보기 ↗
  • 수업 원본 자료 · 복수 링크를 묶는 구성 및 LACP 패킷. 원문에서 「이더넷 본딩 (티밍)」에 배치된 그림 또는 화면이다.
링크 집계와 LACP · 이더넷 본딩 (티밍) (2)원본 크기로 보기 ↗
  • 수업 원본 자료 · 복수 링크를 묶는 구성 및 LACP 패킷. 원문에서 「이더넷 본딩 (티밍)」에 배치된 그림 또는 화면이다.
동작·명령 참고 문서

10서버 Bonding·Teaming과의 연결

  • bonding의 mode4인 802.3ad는 스위치 쪽 구성과 호환되어야 한다. IP는 일반적으로 논리 bond 인터페이스에 두며 멤버 NIC마다 동일 IP를 수동 배정하는 방식이 아니다.
    • mode1 active-backup은 활성 NIC 하나와 예비 NIC를 사용하며 보통 스위치에 동일 LAG를 요구하지 않는다.
    • 서버의 모드와 스위치의 채널 모드를 서로 맞추는 것이 핵심이다.
  • 서버의 묶음 방식에는 round-robin, XOR, broadcast, transmit load balancing, adaptive load balancing도 있다. 이들은 드라이버 정책이며 Cisco의 active·passive·on과 일대일 대응하지 않는다.
    • teaming은 운영체제 버전이 바뀌며 bonding의 이름만 바뀐 것이 아니라 teamd/libteam 기반의 별도 구현이다.
    • 이 문서에서는 네트워크 반대편 조건까지만 다루고 실제 서버별 영구 설정은 시스템 네트워크 문서에서 별도로 확인한다.
검증·예외

11채널 형성·전달·성능 문제를 분리하기

  • 두 멤버가 서로 다른 System ID를 보고하면 잘못된 배선이나 서로 독립된 두 스위치에 대한 연결을 조사한다. 적절한 다중 섀시 집계 기술 없이 채널 번호만 같게 한다고 한 채널이 되지 않는다.
  • 동일 상대라도 가 다르면 링크를 같은 집계로 선택하지 않을 수 있다. 속도·L2/L3 모드· 등 실제 호환 조건과 함께 읽는다.
  • ·이 활성이고 채널이 up이어도 트렁크 허용 목록이나 반대편 구성이 다르면 특정 만 실패할 수 있다. 제어 프로토콜 성공과 사용자 데이터 성공은 별도다.
  • 한 멤버만 CRC·드롭이 증가하면 해시에 따라 일부 흐름만 반복 실패할 수 있다. 논리 인터페이스의 총합 카운터와 각 멤버 카운터를 모두 비교한다.
  • 단일 전송 속도가 멤버 한 개 수준인 것은 일반적인 흐름 해시 설계와 일치한다. 여러 독립 흐름의 멤버 배치를 관찰한 뒤 집계 성능 문제인지 판단한다.
READ · OBSERVE · CONNECT

함께 보는 학습 자료

아래 공식 자료를 본문의 개념·예제와 함께 읽어 보세요. 자료별로 확인할 위치와 관찰할 내용을 적었습니다.

패킷 예제

Cisco Nexus: LACPDU와 멤버 상태 해석

· 정보와 비트를 실제 출력에 대응시켜 물리 up과 집계 송수신 허용을 구분한다. CLI는 Nexus 예제다.

읽으면서 확인할 것
  • State 0x3d의 비트
  • System ID·Key의 역할
  • ·· 구분
학습 확인

이해했는지 확인하기

  • LACP active/passive와 정적 on을 구분했는가?
  • Port-channel에 실제로 참여하는 멤버를 확인했는가?
  • 전체 용량과 단일 흐름 처리량의 차이를 이해하는가?

함께 확인할 공식 자료