본문으로 이동
메뉴 여닫기
환경 설정 메뉴 여닫기
개인 메뉴 여닫기
로그인하지 않음
지금 편집한다면 당신의 IP 주소가 공개될 수 있습니다.

네트워크 본딩(Network Bonding)은 서버에 꽂힌 네트워크 인터페이스(NIC) 여러 개를 하나의 논리 인터페이스로 묶어, 대역폭을 늘리거나 한 카드가 고장 나도 통신이 끊기지 않게 하는 기술이다.

리눅스에서는 커널의 bonding 드라이버가 eth0·eth1 같은 실제 인터페이스(슬레이브)를 bond0 같은 가상 인터페이스(마스터) 아래에 묶는다. IP 주소는 bond0 에 하나만 주고, 응용 프로그램은 카드가 몇 장인지 모른 채 bond0 로 통신한다. 윈도우·스위치 쪽에서는 같은 일을 NIC 티밍(teaming), 링크 집계(Link Aggregation, IEEE 802.3ad·802.1AX)라고 부른다. 레드햇 계열은 bonding 드라이버 말고 사용자 공간 데몬(teamd)으로 묶는 팀(team) 방식도 제공한다.

모드 이름 동작
0 balance-rr 패킷을 슬레이브에 차례로(라운드 로빈) 나눠 보낸다. 부하 분산과 장애 대비를 함께 한다
1 active-backup 한 장만 쓰고 나머지는 대기한다. 쓰던 카드가 죽으면 대기 카드가 넘겨받는다. 스위치 설정이 필요 없다
2 balance-xor 출발지·목적지 MAC 주소로 계산해 보낼 카드를 고른다
3 broadcast 모든 슬레이브로 같은 패킷을 보낸다
4 802.3ad LACP 로 스위치와 협상해 묶는다. 스위치가 링크 집계를 지원해야 한다
5 balance-tlb 보내는 트래픽만 카드별 부하에 맞춰 나눈다
6 balance-alb 보내고 받는 트래픽을 모두 나눈다(ARP 응답을 조작해 수신도 분산)
  • miimon=100 처럼 링크 상태를 확인하는 주기(밀리초)를 함께 준다

레드햇 계열의 옛 방식은 ifcfg 파일을 둔다.

# /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
TYPE=Bond
BONDING_MASTER=yes
BONDING_OPTS="mode=1 miimon=100"
IPADDR=192.168.0.10
PREFIX=24
ONBOOT=yes

# /etc/sysconfig/network-scripts/ifcfg-eth0 (eth1 도 같은 모양)
DEVICE=eth0
MASTER=bond0
SLAVE=yes
ONBOOT=yes

NetworkManager 를 쓰면 nmcli 로 만든다.

# nmcli con add type bond ifname bond0 bond.options "mode=active-backup,miimon=100"
# nmcli con add type ethernet ifname eth0 master bond0
# nmcli con add type ethernet ifname eth1 master bond0
# cat /proc/net/bonding/bond0      # 모드와 슬레이브 상태 확인

여러 개를 묶는 기술 구분

편집 원본 편집
기술 무엇을 묶나 목적
네트워크 본딩 네트워크 카드 여러 장 → 논리 인터페이스 하나 네트워크 대역폭 증가, NIC 장애 대비
LVM 디스크·파티션 여러 개(PV) → 볼륨 그룹 → 원하는 크기의 논리 볼륨 디스크 크기와 상관없이 공간을 나누고 늘린다. 500GB 디스크 두 개로 700GB·200GB·100GB 볼륨을 만들 수 있다
RAID 디스크 여러 개 → 논리 디스크 하나 속도(스트라이핑)와 안정성(미러링·패리티)
클러스터 컴퓨터 여러 대 → 하나의 시스템처럼 고가용성, 부하 분산, 고성능 계산