SMALL
리눅스에서 Bonding(본딩)을 설정하는 방법을 정리해드리겠습니다.
본딩(Bonding)이란 두 개 이상의 네트워크 인터페이스를 하나로 묶어 이중화(High Availability) 또는 부하 분산(Load Balancing)을 제공하는 기능입니다.
📌 1. 본딩 모드 종류
리눅스에서 본딩을 구성할 때 사용할 수 있는 모드는 다음과 같습니다.
Mode설명
mode=0 (balance-rr) | Round-Robin 방식 (부하 분산 및 이중화) |
mode=1 (active-backup) | Active-Backup 방식 (이중화, 단일 인터페이스 사용) |
mode=2 (balance-xor) | XOR 해시 방식 (부하 분산) |
mode=3 (broadcast) | 모든 패킷을 모든 인터페이스에 전송 |
mode=4 (802.3ad, LACP) | LACP(Link Aggregation, IEEE 802.3ad) |
mode=5 (balance-tlb) | 전송 부하 분산 (송신 부하만 균등 분배) |
mode=6 (balance-alb) | 송수신 부하 분산 |
📌 2. 본딩 설정 방법 (3가지)
1️⃣ nmtui (GUI 방식)
nmtui를 이용하면 Bonding 인터페이스를 쉽게 설정할 수 있습니다.
✅ 설정 방법
- nmtui 실행
# nmtui
- Edit a Connection 선택
- Add → Bond 선택
- Bond의 Mode (active-backup, 802.3ad 등 선택)
- Add Slave → eth0, eth1 등을 추가
- IP, Gateway, DNS 설정
- 적용 후 Quit
- 설정 적용
# systemctl restart NetworkManager
2️⃣ nmcli (CLI 방식)
터미널에서 nmcli 명령어를 이용해 본딩을 구성할 수 있습니다.
✅ 설정 방법
① 기존 NIC 자동 연결 해제
# nmcli connection modify eth0 connection.autoconnect no
# nmcli connection modify eth1 connection.autoconnect no
② 본딩 인터페이스(Bond0) 생성
# nmcli connection add type bond con-name bond0 ifname bond0 mode active-backup
③ Bonding 인터페이스에 Slave 추가
# nmcli connection add type bond-slave ifname eth0 master bond0
# nmcli connection add type bond-slave ifname eth1 master bond0
④ IP 주소 및 기타 설정 추가
# nmcli connection modify bond0 ipv4.method manual connection.autoconnect yes ipv4.addresses 192.168.10.100/24 ipv4.gateway 192.168.10.1 ipv4.dns "8.8.8.8 8.8.4.4"
⑤ 본딩 옵션 추가
# nmcli connection modify bond0 +bond.options primary=eth0 +bond.options miimon=100 +bond.options updelay=0 +bond.options downdelay=0
⑥ 적용 및 확인
# nmcli con up bond0
# nmcli con show
3️⃣ 네트워크 설정 파일 직접 수정 (ifcfg-파일)
수동으로 설정 파일을 수정하여 본딩을 구성할 수도 있습니다.
✅ 설정 방법
① 본딩 모듈 활성화
# modprobe --first-time bonding
# lsmod | grep bonding bonding 141566 0
② 본딩 인터페이스 설정
# vi /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
BONDING_OPTS="mode=active-backup primary=eth0 miimon=100 updelay=0 downdelay=0"
IPADDR=192.168.10.100
PREFIX=24
GATEWAY=192.168.10.1
DNS1=8.8.8.8
DNS2=8.8.4.4
ONBOOT=yes
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
BONDING_OPTS="mode=active-backup primary=eth0 miimon=100 updelay=0 downdelay=0"
IPADDR=192.168.10.100
PREFIX=24
GATEWAY=192.168.10.1
DNS1=8.8.8.8
DNS2=8.8.4.4
ONBOOT=yes
③ Slave 인터페이스 설정
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=bond-slave-eth0
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
# vi /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
NAME=bond-slave-eth1
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
NAME=bond-slave-eth1
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
④ 네트워크 재시작
# systemctl restart network
⑤ 본딩 상태 확인
# cat /proc/net/bonding/bond0
확인해야 할 정보
- Currently Active Slave → 현재 활성화된 인터페이스
- Bonding Mode → 올바른 모드 적용 여부 (active-backup, 802.3ad 등)
- MII Status → up이면 정상
✅ 본딩 설정 후 테스트
📌 1. 본딩 확인
# cat /proc/net/bonding/bond0
📌 2. 장애 발생 시 동작 확인
① 현재 본딩 상태 모니터링
# watch -d -n 0.1 "cat /proc/net/bonding/bond0"
② 네트워크 연결 확인
# ping 8.8.8.8
③ 하나의 NIC(예: eth0) 종료
# ifdown eth0
➡ 본딩이 eth1로 자동 전환되는지 확인
④ 다른 NIC(예: eth1) 종료
# ifdown eth1
➡ 본딩이 eth0로 자동 전환되는지 확인
📌 정리
방법사용 명령어
GUI 방식 | nmtui 실행 후 설정 |
CLI 방식 | nmcli 명령어 사용 (nmcli connection add ...) |
수동 설정 | /etc/sysconfig/network-scripts/ifcfg-bond0 수정 |
활성화 및 확인 | nmcli con up bond0, cat /proc/net/bonding/bond0 |
📌 결론
- GUI가 가능하면 nmtui가 편리함
- CLI에서는 nmcli를 사용하는 것이 가장 빠르고 직관적
- 더 세부적인 설정이 필요하면 ifcfg-* 설정 파일을 직접 수정
💡 실무에서는 nmcli를 주로 사용하고, cat /proc/net/bonding/bond0로 상태를 확인하는 것이 일반적입니다. 🚀
LIST
'IT > 리눅스' 카테고리의 다른 글
리눅스에서 대용량 파일 복사 방법 (0) | 2025.02.15 |
---|---|
HPE iLO 커맨드 LAN 설정 방법 (0) | 2025.02.15 |
Redhat계열 네트워크 팀(Teaming) 구성 (0) | 2025.02.15 |
Firewalld 방화벽 설정 및 관리 가이드 (0) | 2025.02.15 |
Ubuntu UFW (Uncomplicated Firewall) 방화벽 설정 및 관리 (0) | 2025.02.15 |