Linux LACP(802.3ad) 문제의 원인과 해결 방법

기업 환경의 Linux 서버에서는 네트워크 이중화와 대역폭 향상을 위해 LACP(Link Aggregation Control Protocol) 를 많이 사용합니다. 하지만 설정이 잘못되면 Bonding 인터페이스가 정상적으로 올라오지 않거나, 한쪽 NIC만 사용되거나, 장애 발생 시 자동 전환이 되지 않는 문제가 발생할 수 있습니다.

LACP는 IEEE 802.3ad 표준을 사용하는 링크 집계(Link Aggregation) 기술입니다. 서버와 스위치가 서로 협상하여 여러 개의 물리적인 네트워크 인터페이스를 하나의 논리 인터페이스처럼 사용할 수 있도록 합니다.

이번 글에서는 Linux에서 LACP 문제가 발생하는 원인과 확인 방법, 해결 방법을 실무 중심으로 알아보겠습니다.

LACP란?

LACP는 여러 개의 네트워크 인터페이스를 하나로 묶어 성능과 가용성을 높이는 기술입니다.

구조는 다음과 같습니다.

          Switch
      ┌────────────┐
      │   LACP     │
      └─────┬──────┘
            │
      ┌─────┴─────┐
      │   bond0   │
      └───┬───┬───┘
          │   │
       eth0 eth1

LACP를 사용하면 다음과 같은 장점이 있습니다.

  • 네트워크 이중화
  • 트래픽 분산
  • 장애 자동 복구
  • 대역폭 향상

LACP 문제가 발생하는 주요 원인

대표적인 원인은 다음과 같습니다.

  • Switch LACP 미설정
  • Bonding Mode 오류
  • Slave 인터페이스 DOWN
  • MTU 불일치
  • Duplex 불일치
  • Speed 불일치
  • 케이블 불량
  • VLAN 설정 오류
  • Driver 문제
  • Firmware 문제

실무에서는 Switch 설정 불일치가 가장 흔한 원인입니다.

1. Bonding 상태 확인하기

현재 Bonding 정보를 확인합니다.

cat /proc/net/bonding/bond0

정상적인 예시는 다음과 같습니다.

Bonding Mode: IEEE 802.3ad

MII Status: up

Slave Interface: eth0

Slave Interface: eth1

Mode가 IEEE 802.3ad인지 확인합니다.

2. Bonding Mode 확인하기

현재 Mode를 확인합니다.

cat /proc/net/bonding/bond0 | grep Mode

정상 출력

Bonding Mode: IEEE 802.3ad Dynamic link aggregation

Mode가 Active-Backup으로 되어 있다면 LACP는 동작하지 않습니다.

3. 인터페이스 상태 확인하기

NIC 상태를 확인합니다.

ip link

또는

ethtool eth0

확인 항목입니다.

  • Link detected
  • Speed
  • Duplex
  • Interface UP 여부

4. LACP 협상 상태 확인하기

Bond 정보에서 다음 항목을 확인합니다.

cat /proc/net/bonding/bond0

예시

Aggregator ID

Actor Key

Partner Key

Partner 정보가 비어 있다면 스위치와 협상이 실패한 것입니다.

5. MTU 확인하기

모든 인터페이스가 동일한 MTU를 사용해야 합니다.

ip link show

예시

bond0 mtu 9000

eth0 mtu 9000

eth1 mtu 9000

하나라도 다르면 문제가 발생할 수 있습니다.

6. 트래픽 분산 확인하기

인터페이스 사용량을 확인합니다.

ip -s link

또는

sar -n DEV 1

트래픽이 한쪽으로만 몰리는지 확인합니다.

7. tcpdump 확인하기

패킷을 분석합니다.

tcpdump -i bond0

또는

tcpdump -i eth0

LACP 협상 패킷을 확인하려면 다음 명령도 사용할 수 있습니다.

tcpdump -i eth0 ether proto 0x8809

LACPDU(Packet)가 정상적으로 송수신되는지 확인합니다.

8. Bonding 모듈 확인하기

모듈이 로드되었는지 확인합니다.

lsmod | grep bonding

없다면

modprobe bonding

으로 로드합니다.

9. 로그 확인하기

커널 로그를 확인합니다.

journalctl -k | grep bond

또는

dmesg | grep bonding

Link Up, Link Down 로그가 반복된다면 물리적인 문제도 함께 확인해야 합니다.

10. 장애 전환(Failover) 테스트하기

실제 케이블을 하나 분리하여 테스트합니다.

확인 항목입니다.

  • Ping 유지
  • SSH 유지
  • 서비스 유지
  • 다른 NIC 활성화

실제 테스트를 해야 이중화가 정상 동작하는지 확인할 수 있습니다.

LACP 문제 점검 순서

실무에서는 다음 순서대로 확인하는 것이 좋습니다.

  1. Bonding Mode 확인
  2. Bond 상태 확인
  3. NIC 상태 확인
  4. Switch LACP 확인
  5. MTU 확인
  6. LACPDU 확인
  7. 트래픽 분산 확인
  8. Bonding 모듈 확인
  9. 로그 확인
  10. Failover 테스트

LACP 사용 시 주의사항

다음 사항을 확인해야 합니다.

  • Linux와 Switch 모두 802.3ad를 사용해야 한다.
  • MTU는 모든 인터페이스에서 동일해야 한다.
  • Speed와 Duplex도 동일해야 한다.
  • Switch Port Channel 설정을 확인한다.
  • 실제 장애 테스트를 수행한다.
  • Driver와 Firmware도 최신 상태를 유지한다.

LACP는 서버 설정만으로 동작하는 기술이 아니라 스위치와 서버가 함께 구성되어야 하는 기술입니다.

LACP와 Active-Backup의 차이

항목LACP(802.3ad)Active-Backup
대역폭 증가가능불가능
Failover가능가능
스위치 설정필요대부분 불필요
트래픽 분산가능불가능
구성 난이도높음낮음

서비스 안정성이 가장 중요하다면 Active-Backup을, 성능과 대역폭까지 고려한다면 LACP를 많이 사용합니다.

자주 묻는 질문

LACP를 사용하면 속도가 두 배가 되나요?

항상 그렇지는 않습니다. 여러 세션이나 다수의 연결에서는 효과가 크지만, 단일 TCP 연결은 하나의 링크만 사용하는 경우가 많습니다.

스위치 설정 없이 LACP를 사용할 수 있나요?

아니요. 서버와 스위치 양쪽 모두 LACP(802.3ad)를 설정해야 정상적으로 동작합니다.

LACP와 Bonding은 같은 의미인가요?

완전히 같지는 않습니다. Bonding은 Linux에서 여러 NIC를 묶는 기능이고, LACP는 Bonding에서 사용할 수 있는 하나의 동작 방식(Mode 4)입니다.

마무리

LACP는 Linux 서버에서 고가용성과 네트워크 성능을 높이기 위한 핵심 기술입니다. cat /proc/net/bonding, ethtool, tcpdump, ip link 등을 활용하면 대부분의 LACP 문제를 빠르게 분석할 수 있으며, 서버와 스위치의 설정을 일치시키고 실제 장애 전환 테스트를 수행하는 것이 안정적인 운영의 핵심입니다.

댓글 남기기