EtherChannel·LACP 협상과 분산 방식
물리 포트가 하나의 Port-channel로 묶이는 조건, LACP·PAgP·정적 모드의 차이와 해시 분산을 설명한다. 원문의 Po1(RD)·멤버(s) 출력과 정상 RU/SU·P 상태를 비교한다.
개념부터 찾아보기
정의·역할·동작 원리를 독립 페이지에서 확인하세요. 본문의 밑줄 용어에도 설명이 있습니다.
이 노트에서 설명할 수 있게 되는 것
- 물리 멤버와 논리 Port-channel의 관계를 설명한다.
- LACP의 참여·선택·전달 상태를 구분한다.
- 총용량과 단일 흐름 성능을 나누어 검증한다.
01물리 포트를 하나의 논리 링크로 묶기
- 논리 링크 묶음은 복수의 물리 링크를 논리 로 묶는다. 정상 구성에서는 가 개별 멤버 링크가 아닌 을 하나의 링크로 다루므로 같은 두 스위치 사이의 모든 멤버를 사용할 수 있다.
- 한 멤버에 장애가 생겨도 나머지 링크가 조건을 만족하면 논리 연결이 유지된다.
- trunk와 이름이 비슷해도 모든 이 trunk인 것은 아니다.
- Access 채널과 L3 routed 채널도 가능하다.
- 단일 흐름의 한계2개의 1Gbps 링크를 묶으면 여러 흐름에 걸친 총 용량을 늘릴 수 있지만 하나의 흐름이 반드시 2Gbps로 전송되는 것은 아니다. 흐름을 순서대로 유지하기 위해 일반적인 해시 기반 구현은 같은 흐름을 같은 멤버에 배정한다.
- 상대방도 실제로 같은 논리 묶음을 구성해야 하며, 서로 독립적인 두 스위치에 연결한 선을 아무 조건 없이 한 채널로 만들 수 없다.
- 스택·가상 섀시·MLAG 등 지원 구조는 별도 전제다.
02협상 방식과 모드 조합
- ·는 현재 IEEE802.1AX에서 다루는 링크 집성 제어 프로토콜이다. active는 협상을 능동 시작하고 passive는 상대 에 반응한다.
- active-active와 active-passive는 가능하지만 passive-passive는 양쪽 모두 시작하지 않아 형성되지 않는 대표 조합이다.
- 는 Cisco 계열 협상으로 desirable이 시작하고 auto가 반응한다.
- 정적 onon은 의 세 번째 모드가 아니라 협상 없는 정적 묶음이다. active-on 조합은 정상적인 협상 조합이 아니다.
- on은 양 끝의 정확한 정적 구성에 의존하며 틀린 배선·설정을 협상으로 검출하는 기능이 약하다.
- 의 활성/대기 포트 최대 개수는 플랫폼마다 다르므로 ‘16개 중 8개’는 특정 장비의 지원 조건이다.
03LACP의 Aggregator 선정과 전달 상태
- 호환 조건속도·duplex·L2/L3 역할과 access 또는 trunk native/allowed 설정이 일관되어야 한다. 실제 멤버가 같은 상대 논리 시스템으로 연결되어야 한다.
- 로컬 번호양끝의 channel-group 번호가 같을 필요는 없다. 번호 일치보다 · 정보와 구성의 호환성이 중요하다.
- 사용되지 않는 멤버물리 up만으로 분산에 참여하지 않는다. 협상·구성이 맞지 않으면 standalone·suspended·hot-standby 등의 상태로 남을 수 있다.
- · 정보 교환가 system·port 정보, key와 상태를 주고받는다. 각 링크가 어떤 로컬·원격 논리 시스템에 속하는지 파악한다.
- 호환되는 묶음 선정교환한 정보와 포트 구성에 따라 같은 에 넣을 멤버를 선택한다.
- 수신·송신 상태 활성화은 수신을 받아들이는 상태, 은 송신에 쓰는 상태다. 선정과 실제 데이터 사용을 구분한다.
- 논리 링크로 전달사용 가능한 멤버를 통해 트래픽을 전달한다. 장애 분석은 물리 링크→ 이웃→→논리 링크 순으로 연결한다.
설명과 함께 보는 보조 도식
LACP와 데이터 전달의 구분
물리 연결이 논리 묶음의 전달 멤버가 되는 과정.
물리 확인
케이블 연결과 속도를 확인한다.
전체 단계를 한 번에 읽기
- 01
물리 확인
케이블 연결과 속도를 확인한다.
- 02
협상
적어도 한쪽 active가 교환을 시작한다.
- 03
참여 결정
포트별 일관성과 상태를 확인한다.
- 04
전달 준비
논리 인터페이스와 선택 멤버가 준비된다.
- 05
데이터 분산
단일 흐름과 여러 흐름의 분산은 다르다.
- 06
장애 해석
논리 up과 서비스 용량을 각각 확인한다.
04LACP 상태 비트가 전송 허용을 결정하는 과정
- 와 각 는 송신 측 정보와 상대에 대해 알고 있는 정보를 담는다. System ID·Key·Port ID가 같은 논리 묶음에 속하는지 판단할 자료가 된다.
- 와 는 active/passive, 은 상대에게 요청하는 짧은/긴 타임아웃 조건을 나타낸다. 타임아웃 비트가 바뀌었다고 링크 대역폭이나 해시 방식이 바뀌는 것은 아니다.
- Aggregation과 SyncAggregation은 집계 가능한 링크인지, 은 집계 선택과 상대 정보가 동기화됐는지를 나타낸다. 물리 링크 up과 논리 묶음에 실제 사용 가능한 상태를 구분한다.
- 과 은 그 링크에서 받은 사용자 프레임을 논리 채널로 수용하는 상태, 은 논리 채널의 프레임을 그 링크로 송신하는 상태다. 두 비트는 수신과 송신의 별도 허용을 표현한다.
- 와 수신 정보가 제시간에 갱신되지 않으면 처리가 진행되고, 더 이상 유효한 정보가 없으면 기본값으로 돌아갈 수 있다. 장비별 출력의 상태 비트를 양쪽에서 비교해야 한다.
05L2 Trunk LACP 정상 구성 예
- L2 Trunk 구성아래 예에서는 두 스위치의 Gi0/1·Gi0/2를 서로 연결하고 양쪽 모두 같은 방식으로 설정한다. VLAN10·20을 운반하는 정책은 논리 에도 일치하게 둔다.
- 실제 플랫폼은 멤버 설정의 상속·검사 방식이 다르므로 기존 포트 설정이 충돌하는지 함께 읽는다.
- 생성한 이 L2인지 L3인지부터 일관되어야 한다.
- L2·L3 모드 구분예제의 no switchport는 L3 routed 실습을 의미한다. 그 설정을 그대로 두고 L2 trunk를 기대하면 역할이 맞지 않는다.
- L3 채널은 물리 멤버 각각에 같은 IP를 주지 않고 논리 에 IP를 주어 라우팅한다.
- 아래 예는 L2이므로 no switchport를 사용하지 않는다.
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 주소 위치라우터 또는 L3 스위치 간 전용 전송망을 집성할 때 멤버를 routed port로 바꾸고 에 주소를 설정한다. 두 멤버가 한 링크를 구성하므로 ·이웃 해석과 관점에서는 하나의 논리 L3 인터페이스로 보인다.
- L2 trunk 설정과 동시에 섞지 않는다.
- 실습의 Down 출력수업의 L3 채널 출력은 물리 인터페이스가 up/up인데 Po1(RD), 각 멤버(s)로 표시되어 정상 집성이 아니었다. 이 출력만으로 최종 원인은 확정되지 않으므로 L2/L3 역할·멤버 설정·협상 결과를 추가로 대조해야 한다.
- 정상 기대 상태와 비교해 수신, 멤버 호환성, 실제 상대 포트, 플랫폼 지원을 좁혀 가는 과정으로 남긴다.
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/30L3 채널을 지원하는 플랫폼의 별도 예. 앞 절 L2 구성과 대안 관계다.
07해시 기반 부하 분산과 단일 흐름의 한계
- 분산 해시스위치는 설정·플랫폼에 따라 출발지/목적지 MAC, IP, · 포트 등의 일부 값을 해시에 넣어 멤버를 고른다. 호스트 하나를 물리선 하나와 영구적으로 1:1 연결하는 방식도, 매 패킷을 무조건 번갈아 보내는 방식도 아니다.
- 양쪽 스위치의 해시 기준이 다르면 A→B와 B→A가 서로 다른 물리 링크를 사용할 수 있다.
- 멤버별 부하하나의 대용량 흐름만 생성한 실험은 멤버 한 개만 바쁘게 만들 수 있다. 여러 출발지·목적지·포트 조합을 써야 집계 대역폭을 관찰하기 쉽다.
- 해시 입력이 다양하지 않으면 여러 흐름도 한쪽으로 치우칠 수 있고, 멤버 장애 후 재분배 과정에서 순간적인 순서 변화가 생길 수 있다.
- 멤버 합계 속도, 단일 흐름 속도, 장애 후 잔여 용량을 각각 측정해야 한다.
08상태값 0x3d와 해시 분포를 읽기
- 가상 출력 State=0x3d는 00111101₂이다. 하위 비트부터 =1, =0, Aggregation=1, Sync=1, =1, =1이며 상위 ·는 0이다.
- 상태 해석active이며 long 을 요청하고, 동기화·수신·송신이 활성화된 상태로 해석한다. 이 값만으로 상대편의 allowed 이나 모든 상위 서비스까지 정상이라고 판단하지 않는다.
- 가상 부하 조건1 Gbit/s 링크 4개와 각 400 Mbit/s인 흐름 4개가 있다고 하자. 해시 결과가 링크별 {2,1,1,0}개 흐름이면 부하는 {800,400,400,0} Mbit/s다.
- 불균형의 원인남는 링크가 있어도 해시가 같은 흐름 두 개는 같은 링크를 사용할 수 있다. 분산은 흐름 특성·해시 입력·버킷 배치에 달려 있고 매 순간 대역폭을 균등하게 나누는 스케줄러가 아니다.
- 용량 초과 분기두 흐름이 각각 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를 설정한 구성은 일부 멤버가 살아 있어도 최소 개수를 만족하지 않으면 논리 인터페이스를 내릴 수 있다.
- 단일 멤버 장애 시험 결과를 설명할 때 이 조건을 함께 명시한다.
원문 실패 상태의 형태:
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상태 문자열 비교. 특정 실패 원인을 증명하는 로그는 원문에 없어 단정하지 않는다.
실습: LACP 미결합 포트와 해시 분산 구별
채널 생성·멤버 협상·데이터 분산을 서로 다른 검증 단계로 해석한다.
실습 구성과 전제
- IOS의 Ethernet0/0~3을 1로 묶는 가상 스위치 연습이다. 양끝의 속도·duplex·L2/L3· 조건을 맞춘다.
- 일괄 디버그 출력 대신 상태 조회를 기본으로 한다. 아래 로그는 실제 기록의 핵심 오류를 발췌한 것이며 새로 실행한 결과가 아니다.
양끝 협상 모드와 구성 정리
- 적어도 한쪽은 active여야 협상을 시작한다. 이 생성되었다는 로그만으로 모든 물리 포트가 묶였다는 뜻은 아니다.
- 는 링크의 속도를 자동 협상하는 프로토콜이 아니다. 링크 호환성과 / 정보로 집합 가능 여부를 판단한다.
textinterface range Ethernet0/0 - 3 channel-group 1 mode active no shutdown end show etherchannel summary show lacp neighbor실제 명령 흐름을 정리한 예시. ·Trunk 정책은 양끝에 미리 맞춘다.
확인 기준양끝이 active/passive 또는 active/active이고 같은 링크 집합인지 확인한다.
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이다. 상대 설정과 케이블 대응을 먼저 확인한다.
LACPDU 상태와 상대 정보 확인
- 선택 패킷은 Slow Protocols 안의 이며 와 정보가 나뉜다. 양쪽의 System·Key·Port를 같은 필드끼리 대조한다.
- 상태 0x3d에는 ·Aggregation···이 표시된다. 단순히 MAC이 작은 장비가 마스터라서 모든 링크를 지휘한다는 설명으로 줄이지 않는다.
원본 크기로 보기 ↗- Slow Protocols subtype LACP와 Actor/Partner TLV가 보인다.
- 상태 0x3d에 Synchronization·Collecting·Distributing이 표시된다.
확인 기준동기화·수집·분배 상태를 멤버별로 확인한다.
협상 성공과 트래픽 분산 정책 구분
- show load-balance의 src-dst-ip는 이 장비의 현재 분산 정책이다. 모든 장비의 보편 기본값으로 외우지 않는다.
- 한 주소쌍 흐름은 같은 멤버로 몰릴 수 있다. 한 번의 ping만으로 총 대역폭 증가를 측정하지 말고 여러 흐름과 포트별 카운터를 비교한다.
textshow etherchannel load-balance show interfaces Ethernet0/2 show interfaces Ethernet0/3실습 흐름을 재구성한 명령 예시. 장치·인터페이스 이름은 구성에 맞춰 사용한다.
원본 크기로 보기 ↗- 현재 정책은 src-dst-ip다.
- Non-IP는 MAC, IPv4·IPv6는 IP 주소 조합을 사용한다고 표시된다.
확인 기준멤버가 P인 것과 각 멤버에 균등 부하가 생기는 것은 다른 조건이다.
실습에서 확인한 동작 원리
- 채널 논리 인터페이스 생성과 멤버 데이터 전달 참여는 다르다.
- 단일 흐름의 한 링크 사용은 해시 정책의 정상 결과일 수 있다.
설정·출력 추가로 확인하기 8장
아래 화면을 펼쳐 위 실습의 설정값, 명령과 확인 기준을 비교해 보세요. 각 묶음은 별도 실습 기록입니다.
실습 화면 묶음 01 4장
원본 크기로 보기 ↗- 「AAA」 문맥에 삽입된 원본 명령·상태 출력이다. EtherChannel·LACP 협상과 분산 방식 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「VPN Client (window)」 문맥에 삽입된 원본 설정·관리 화면이다. EtherChannel·LACP 협상과 분산 방식 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「VPN Client (window)」 문맥에 삽입된 원본 설정·관리 화면이다. EtherChannel·LACP 협상과 분산 방식 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
원본 크기로 보기 ↗- 「VPN Client (window)」 문맥에 삽입된 원본 실습·개념 참고 화면이다. EtherChannel·LACP 협상과 분산 방식 학습 내용과 함께 당시 구성·설정·관찰 결과를 비교할 수 있다.
실습 화면 묶음 02 1장
원본 크기로 보기 ↗- 학습 원본 · EtherChannel·본딩 연결 실습의 해당 절에 수록된 화면·도식이다.
실습 화면 묶음 03 1장
원본 크기로 보기 ↗- 학습 원본 · EtherChannel·본딩 연결 실습의 이더채널 실습에 수록된 화면·도식이다.
실습 화면 묶음 04 2장
원본 크기로 보기 ↗- 수업 원본 자료 · 복수 링크를 묶는 구성 및 LACP 패킷. 원문에서 「이더넷 본딩 (티밍)」에 배치된 그림 또는 화면이다.
원본 크기로 보기 ↗- 수업 원본 자료 · 복수 링크를 묶는 구성 및 LACP 패킷. 원문에서 「이더넷 본딩 (티밍)」에 배치된 그림 또는 화면이다.
10서버 Bonding·Teaming과의 연결
- 802.3ad·Active-backup bonding의 mode4인 802.3ad는 스위치 쪽 구성과 호환되어야 한다. IP는 일반적으로 논리 bond 인터페이스에 두며 멤버 NIC마다 동일 IP를 수동 배정하는 방식이 아니다.
- mode1 active-backup은 활성 NIC 하나와 예비 NIC를 사용하며 보통 스위치에 동일 LAG를 요구하지 않는다.
- 서버의 모드와 스위치의 채널 모드를 서로 맞추는 것이 핵심이다.
- 기타 Bonding 모드서버의 묶음 방식에는 round-robin, XOR, broadcast, transmit load balancing, adaptive load balancing도 있다. 이들은 드라이버 정책이며 Cisco의 active·passive·on과 일대일 대응하지 않는다.
- teaming은 운영체제 버전이 바뀌며 bonding의 이름만 바뀐 것이 아니라 teamd/libteam 기반의 별도 구현이다.
- 이 문서에서는 네트워크 반대편 조건까지만 다루고 실제 서버별 영구 설정은 시스템 네트워크 문서에서 별도로 확인한다.
11채널 형성·전달·성능 문제를 분리하기
- 서로 다른 두 멤버가 서로 다른 System ID를 보고하면 잘못된 배선이나 서로 독립된 두 스위치에 대한 연결을 조사한다. 적절한 다중 섀시 집계 기술 없이 채널 번호만 같게 한다고 한 채널이 되지 않는다.
- Key 불일치동일 상대라도 가 다르면 링크를 같은 집계로 선택하지 않을 수 있다. 속도·L2/L3 모드· 등 실제 호환 조건과 함께 읽는다.
- 정상· 실패·이 활성이고 채널이 up이어도 트렁크 허용 목록이나 반대편 구성이 다르면 특정 만 실패할 수 있다. 제어 프로토콜 성공과 사용자 데이터 성공은 별도다.
- 한 멤버 오류한 멤버만 CRC·드롭이 증가하면 해시에 따라 일부 흐름만 반복 실패할 수 있다. 논리 인터페이스의 총합 카운터와 각 멤버 카운터를 모두 비교한다.
- 단일 흐름 속도 한계단일 전송 속도가 멤버 한 개 수준인 것은 일반적인 흐름 해시 설계와 일치한다. 여러 독립 흐름의 멤버 배치를 관찰한 뒤 집계 성능 문제인지 판단한다.
함께 보는 학습 자료
아래 공식 자료를 본문의 개념·예제와 함께 읽어 보세요. 자료별로 확인할 위치와 관찰할 내용을 적었습니다.
Cisco Nexus: LACPDU와 멤버 상태 해석
· 정보와 비트를 실제 출력에 대응시켜 물리 up과 집계 송수신 허용을 구분한다. CLI는 Nexus 예제다.
- State 0x3d의 비트
- System ID·Key의 역할
- ·· 구분
이해했는지 확인하기
- LACP active/passive와 정적 on을 구분했는가?
- Port-channel에 실제로 참여하는 멤버를 확인했는가?
- 전체 용량과 단일 흐름 처리량의 차이를 이해하는가?