2 분 소요

서버의 네트워크 인터페이스가 단일 장애점(SPOF)이 되면 NIC 장애 시 서비스 중단이 발생합니다. 리눅스 본딩(Bonding)은 여러 NIC를 하나의 논리 인터페이스로 묶어 이중화와 대역폭 증대를 동시에 구현합니다.

데이터센터 이미지

이중화된 네트워크 인터페이스로 안정성을 높인 서버

본딩 모드 종류

모드 이름 설명
mode=0 Round-robin 패킷을 순서대로 분산 전송 (대역폭 증대)
mode=1 Active-backup 하나만 활성화, 장애 시 교체 (이중화)
mode=2 XOR 송수신 MAC 기반 분산
mode=3 Broadcast 모든 인터페이스로 동시 전송
mode=4 LACP (802.3ad) 스위치와 협상하여 동적 링크 집계
mode=5 Adaptive TLB 수신은 활성 포트, 송신은 분산
mode=6 Adaptive LB 송수신 모두 분산 (스위치 설정 불필요)

실무에서 가장 많이 사용하는 모드는 mode=1(이중화)mode=4(LACP) 입니다.

NetworkManager로 본딩 설정 (RHEL 8+)

# 본딩 인터페이스 생성
nmcli connection add type bond \
  con-name bond0 \
  ifname bond0 \
  bond.options "mode=active-backup,miimon=100"

# 슬레이브 인터페이스 추가
nmcli connection add type ethernet \
  con-name bond0-slave1 \
  ifname ens3 \
  master bond0

nmcli connection add type ethernet \
  con-name bond0-slave2 \
  ifname ens4 \
  master bond0

# IP 주소 설정
nmcli connection modify bond0 \
  ipv4.addresses "192.168.1.100/24" \
  ipv4.gateway "192.168.1.1" \
  ipv4.dns "8.8.8.8 8.8.4.4" \
  ipv4.method manual

# 활성화
nmcli connection up bond0
nmcli connection up bond0-slave1
nmcli connection up bond0-slave2

설정 파일로 본딩 구성

bond0 마스터 인터페이스

# /etc/sysconfig/network-scripts/ifcfg-bond0

DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
ONBOOT=yes
IPADDR=192.168.1.100
PREFIX=24
GATEWAY=192.168.1.1
DNS1=8.8.8.8
BONDING_OPTS="mode=active-backup miimon=100 fail_over_mac=1"

슬레이브 인터페이스

# /etc/sysconfig/network-scripts/ifcfg-ens3

DEVICE=ens3
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
# /etc/sysconfig/network-scripts/ifcfg-ens4

DEVICE=ens4
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

LACP 모드 설정 (스위치 협업)

# LACP 본딩 생성
nmcli connection add type bond \
  con-name bond0 \
  ifname bond0 \
  bond.options "mode=802.3ad,miimon=100,lacp_rate=fast,xmit_hash_policy=layer3+4"

# 스위치측에도 LACP/EtherChannel 설정 필요
# Cisco 스위치 예시:
# interface Port-channel1
#   switchport mode access
# interface GigabitEthernet1/0/1
#   channel-group 1 mode active

보안 네트워크 이미지

본딩으로 구성된 이중화 네트워크 구성도

본딩 상태 확인

# 본딩 상태 상세 확인
cat /proc/net/bonding/bond0

# 출력 예시:
# Ethernet Channel Bonding Driver: v3.7.1
# Bonding Mode: fault-tolerance (active-backup)
# Primary Slave: None
# Currently Active Slave: ens3
# MII Status: up
# MII Polling Interval (ms): 100

# 링크 상태 확인
ip link show bond0
ip addr show bond0

# 슬레이브 통계
cat /sys/class/net/bond0/bonding/slaves

장애 조치(Failover) 테스트

# 활성 슬레이브 강제 전환
ip link set ens3 down

# 전환 후 상태 확인
cat /proc/net/bonding/bond0

# 원복
ip link set ens3 up

# 핑 테스트로 연결 유지 확인
ping -c 100 192.168.1.1 &
ip link set ens3 down
# 핑 손실 없이 계속되면 성공

본딩 + VLAN 구성

# 본딩 위에 VLAN 인터페이스 추가
nmcli connection add type vlan \
  con-name bond0.100 \
  ifname bond0.100 \
  dev bond0 \
  id 100 \
  ipv4.addresses "10.0.100.1/24" \
  ipv4.method manual

nmcli connection up bond0.100

네트워크 본딩은 서버 인프라의 가용성을 높이는 가장 기본적인 방법입니다. 스위치와의 연동이 필요한 LACP 모드는 사전에 네트워크 팀과 협의하여 스위치 설정을 함께 구성해야 합니다.

댓글남기기