Linux
[Linux] 네트워크 본딩(Network Bonding)의 개념 및 구성
현또다
2023. 10. 18. 16:11
▶ 본딩(Bonding) 의 개념 및 기능
1) 본딩 (Bonding) 이란 ?
여러 개의 물리적 또는 가상의 네트워크 인터페이스 컨트롤러(NIC)를 논리적으로 하나의 인터페이스로 결합하는 기술
2) 본딩의 기능
- 서버의 대역폭을 확장할 수 있음
- 서버의 기능을 분산할 수 있는 부하 분산(Load Balancing)이 가능함
- 부분적으로 장애가 발생해도 시스템이 동작할 수 있음
3) 본딩 모드 종류
모드 종류 | 기능 |
mode 0 : Round-robin | 부하 분산과 failover를 제공하며, 첫번째부터 마지막까지 순차적으로 NIC에 트래픽을 분산시켜 전송하는 모드 |
mode 1 : Active-backup | 1개의 NIC만 활성화되며, 다른 NIC는 현 활성화된 NIC에서 장애가 발생했을 경우 활성화 됨 |
mode 2 : balance-xor | mode 0과 비슷하지만 xor연산을 이용해 목적지 Mac과 근원지 Mac을 이용하여 분배 |
mode 3 : broadcast | 모든 NIC에 동일한 패킷을 broadcast로 발송함 |
mode 4 : LACP(802.3ad) | 802.3ad를 지원하는 스위치가 필요하며, 2개 이상의 네트워크 port를 묶어 더 큰 대역폭을 만드는 방법으로 NIC의 개수만큼 대역폭 확장 가능 |
mode 5 : balance-tlb |
스위치 지원이 필요 없으며, 로드 밸런싱 정책으로 밖으로 내보내지는 트래픽은 분산되어 송출되고 들어오는 트래픽은 active되어있는 NIC로 패킷 받음 |
mode 6 : balance-alb | 802.3ad를 지원하지 않는 경우 스위치 지원이 필요 없는 이 모드를 사용하며, mode 5와 같이 동작하지만 데이터 수신 시에는 로드 밸런싱을 하는데 2개의 링크에서 ARP 협상을 통해 동작함 |
▶ 본딩(Bonding) 구성 방법
1. 인터페이스 확인
- grep 명령어 통해 2개 이상의 물리적 또는 가상 이더넷 NIC 확인
- 현재 인터페이스 상태 확인
ip a | grep ens
nmcli device status
2. Bonding Master 인터페이스 생성 및 Bonding Slave 설정
# master 인터페이스 생성
nmcli con add type bond con-name bond0 ifname bond0 bond.options “mode=1, miimon=100"
(mode = 1 or active-backup 입력, miimon = 모니터링 간격 추가 설정)
# slave 설정
nmcli con add type ethernet slave-type bond con-name bond0-portN ifname ens000 master bond0
3. Bonding 네트워크 설정
- 생성된 connection을 수정하여 네트워크 설정 후 활성화
nmcli con mod bond0 ipv4.method manual ipv4.addresses [ip/prefix] ipv4.gateway [gateway] autoconnect yes
nmcli con reload # 변경 사항 반영
nmcli con up bond0 # bond0 인터페이스 활성화
4. Bonding 설정 및 상태 확인
cat /proc/net/bonding/bond0 # 본딩 설정 확인
nmcli device status # device 상태 확인