Network Bonding Configuration

What is bonding?

  • 2개 이상의 물리적인 NIC(Network Interface Card)를 논리적인 NIC 1개로 묶어서 대역폭을 확장하거나 Active/Standby 구조로 구성하여 특정 NIC의 고장 또는 케이블의 단절로 인한 Disconnect를 예방하여 고가용성(High Availability) 또는 내결함성(Fault Tolerance)를 보장해줍니다.

Configuration

  • RHEL(CentOS) 7 & 6
// Bonding Interface 정의
# vi /etc/modprobe.d/bonding.conf
alias bond0 bonding

# vi /etc/sysconfig/network-script/ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.12.117
NETMASK=255.255.255.0
GATEWAY=192.168.12.1
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=1 miimon=100"
※BONDING_OPTS에 primary=eth0 추가 하여 인터페이스 우선 순위 설정

// Bonding으로 묶을 NIC들의 설정 변경
# vi/etc/sysconfig/network-script/ifcfg-eth0
TYPE=Ethernet
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no

# vi/etc/sysconfig/network-script/ifcfg-eth1
TYPE=Ethernet
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
USERCTL=no

// CentOS 7 서비스 재시작
# systemctl restart network

// CentOS 6 서비스 재시작
# service network restart
  • Common Configuration(BONDING_OPTS=mode)
0 balance-rr : (Round Robin) Load Balancing, 송신할 패킷마다 사용하는 물리적 NIC를 순차 변경
1 active-backup: Fault-Tolerance, bond내에서 한개의 Slave만 사용, 해당 NIC에 문제가 발생할 경우 다른 Slave가 Enable
2 balance-xor : Load Balancing, 소스와 목적지의 MAC을 XOR 연산을 통해 사용할 NIC를 결정하여 분배
3 Broadcast : Fault-Tolerance, 모든 Slave로 데이터전송(failover), 일반적으로는 잘 사용안함.
4 802.3ad : Dynamic Link Aggregation, IEEE 802.3ad 프로토콜을 이용하여 동적 Aggregation 작성 대역폭 상승, 부하 분산, Failover 지원(Switch LACP 구성 필요)
5 balance-tlb(TLB) : 적응형 송신 부하 분산, 송신패킷 로드밸런싱, 송신시 부하가 낮은 NIC이용 수신은 특정 NIC이용
6 balance-alb(ALB) : 적응형 부하 분산, 송수신패킷 로드밸런싱, 송수신시 부하가 낮은 NIC를 사용

miimon=100 : NIC가 활성화되어 있는지 확인하는 단위 시간 0.1초
  • RHEL(CentOS) 5
// Bonding Interface 정의
# vi /etc/modprobe.conf
alias bond0 bonding
alias bond1 bonding

// NIC 설정 방식 동일

// 서비스 재시작
# service network restart
  • Network Manager 서비스가 기동중일 경우 설정중인 파일이 서비스 재기동과 관계 없이 반영될 수 있으므로 Network Manager 서비스를 종료 후 작업을 추천 드립니다.
// CentOS 7 서비스 재시작
# systemctl stop NetworkManager

// CentOS 6 서비스 재시작
# service NetworkManager stop
  • bonding 상태 확인
# cat /proc/net/bonding/bond0
# ethtool bond0
Bonding Mode와 Slave NIC의 상태를 확인 가능

One thought on “Network Bonding Configuration”

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 Akismet을 사용하여 스팸을 줄입니다. 댓글 데이터가 어떻게 처리되는지 알아보세요.