728x90
반응형
Bonding 이란?
Linux Bonding (또는 NIC Bonding)은 두 개 이상의 네트워크 인터페이스 카드(NIC)를 하나로
묶어서 단일 인터페이스처럼 작동하게 하는 기술입니다.
이 기술을 사용하면 네트워크의 고가용성(High Availability), 부하 분산(Load Balancing),
그리고 대역폭 증가를 실현할 수 있습니다.
Linux 시스템에서는 이를 위해 특별한 커널 모듈과 함께 ifenslave 패키지를 사용하여 구성할 수 있습니다.
실습 환경
System
- Master
- Node01
- Node02
- Node03
- File
Network
- VM Network0 - 본딩
- VM Network0 - 본딩
- VM Privacy0 == 192.168.234.0/24
사전 작업
# nmtui 로 진입하여 모든 이더넷 정보 삭제
# cd /etc/sysconfig/network-scripts/ 디렉터리에 있는 설정 파일들 삭제 후
# reboot
# cd /etc/sysconfig/network-scripts/
# ls
total 0
# nmtui
네트워크 CONNECTION 이름 변경
**# nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected Wired connection 1
eth1 ethernet connected Wired connection 2
bond0 bond connecting (getting IP configuration) bond0
eth2 ethernet disconnected --
lo loopback unmanaged --
# nmtui
진입 후 Edit 에서 수정**
참고
오류가 발생 시 초기 설정으로 돌리고 다시한다.
# nmtui에 수동으로 네트워크 인터페이스를 등록할 때는 ifconfig 명령어로 이더넷의 MAC 주소를
파악한 후 아래와 같이 수동으로 등록하면 된다.
Bonding Mode
모드 0 (balance-rr, Round Robin)
패킷들을 순서대로 각각의 NIC을 통해 전송하여 부하를 분산시킵니다.
이 모드는 대역폭을 증가시키지만 순서가 중요한 데이터에는 적합하지 않을 수 있습니다.
전송은 첫 번째로 사용 가능한 결합된 포트 인터페이스에서 수신 및 순차적으로 전송합니다.
모드 1 (active-backup)
하나의 NIC만 활성화되어 있고, 다른 하나는 대기 상태에 있습니다.(실패한 경우에만 사용)
주 NIC에 문제가 발생하면 대기 중인 NIC이 활성화되어 네트워크 연결을 유지합니다.
이 모드는 고가용성을 제공합니다.
첫 번째 사용 가능한 결합된 포트 인터페이스를 통해 전송이 수신되고 전송
모드 2 (balance-xor)
송수신되는 패킷의 MAC 주소를 기반으로 해시 계산 결과에 따라 NIC을 선택합니다.(해시 정책)
이는 일정한 패턴의 부하 분산을 제공합니다.
모드 3 (broadcast)
모든 패킷을 모든 NIC에 복사하여 전송합니다.
이 모드는 네트워크의 신뢰성을 높이지만 대역폭 사용량이 증가합니다.
내결함성에 대한 브로드캐스트 정책을 설정합니다.
모든 전송은 모든 포트 인터페이스에서 전송합니다.
동일한 속도 및 이중화된 설정을 공유하는 집계 그룹을 생성합니다.
활성 수집기의 모든 포트에서 전송 및 수신됩니다. 802.3ad 호환 가능한 스위치 필요합니다.
모드 4 (802.3ad, LACP):
이 모드는 동적으로 링크 집계를 구성합니다.
이를 위해서는 스위치가 IEEE 802.3ad LACP를 지원해야 합니다.
이 모드는 네트워크의 대역폭을 증가시키고 부하 분산을 제공합니다.
IEEE 802.3ad 동적 링크 집계 정책을 설정합니다.
모드 5 (balance-tlb, Adaptive Transmit Load Balancing)
아웃바운드 트래픽은 현재 부하에 따라 동적으로 분산되며,
인바운드 트래픽은 active-backup 모드와 유사하게 처리됩니다.
내결함성 및 로드 밸런싱을 위해 Transmit Load Balancing(TLB) 정책을 설정합니다.
모드 6 (balance-alb, Adaptive Load Balancing)
모드 5의 기능에 더해 인바운드 트래픽의 부하 분산도 동적으로 조정합니다.
이 모드는 특별한 스위치 구성 없이도 양방향의 부하 분산을 제공합니다.
내결함성 및 로드 밸런싱을 위한 적응형 로드 밸런싱(ALB) 정책을 설정합니다.
실습
- 모든 서버에서 진행
bond0 인터페이스 생성
[root@master ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected Wired connection 1
eth1 ethernet connected Wired connection 2
eth2 ethernet connecting (getting IP configuration) Wired connection 3
lo loopback unmanaged
[root@master ~]# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=1000"
Connection 'bond0' (6138e63d-c27d-41be-a33b-f56363f70d63) successfully added.
[root@master ~]# nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected Wired connection 1
eth1 ethernet connected Wired connection 2
bond0 bond connecting (getting IP configuration) bond0
eth2 ethernet connecting (getting IP configuration) Wired connection 3
lo loopback unmanaged --
인터페이스 이름 설정 및 slave 설정
# nmcli connection add type ethernet slave-type bond con-name bond0-eth0 ifname eth0 master bond0
# nmcli connection add type ethernet slave-type bond con-name bond0-eth1 ifname eth1 master bond0
# nmcli device status
DEVICE TYPE STATE CONNECTION
eth0 ethernet connected eth0
eth1 ethernet connected Wired connection 1
bond0 bond connecting (getting IP configuration) bond0
eth2 ethernet connecting (getting IP configuration) Wired connection 2
생성한 bond0 인터페이스에 IP 설정
# nmcli connection modify bond0 ipv4.addresses 192.168.207.220/24
# nmcli connection modify bond0 ipv4.gateway 192.168.207.254
# nmcli connection modify bond0 ipv4.dns 168.126.63.1
# nmcli connection modify bond0 ipv4.method manual
완료된 상태 인터페이스 확인
# nmcli device status
DEVICE TYPE STATE CONNECTION
bond0 bond connected bond0
eth0 ethernet connected bond0-eth0
eth1 ethernet connected bond0-eth1
eth2 ethernet disconnected --
lo loopback unmanaged --
# ll /etc/sysconfig/network-scripts
total 16
-rw-r--r-- 1 root root 405 Mar 13 16:51 ifcfg-bond0
-rw-r--r-- 1 root root 139 Mar 13 17:10 ifcfg-bond0-eth0
-rw-r--r-- 1 root root 139 Mar 13 17:10 ifcfg-bond0-eth1
-rw-r--r-- 1 root root 278 Mar 13 17:16 ifcfg-eth2
# nmtui
재부팅 혹은 네트워크 재실행 후 아래와 같이 나타나야한다.(네트워크 파일이 아래와 같아야한다.)
- 파일을 아래와 같이 맞추고 재부팅하면 nmtui 화면에 제대로 나올 것이다.
# ll
total 16
-rw-r--r-- 1 root root 423 Mar 13 2024 ifcfg-bond0
-rw-r--r-- 1 root root 139 Mar 13 17:10 ifcfg-bond0-eth0
-rw-r--r-- 1 root root 139 Mar 13 17:10 ifcfg-bond0-eth1
-rw-r--r-- 1 root root 278 Mar 13 17:16 ifcfg-eth2
[root@file network-scripts]#
[root@file network-scripts]# pwd
/etc/sysconfig/network-scripts
Test
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 1000
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:50:56:ad:4c:9d
Slave queue ID: 0
Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:a2:23:74
Slave queue ID: 0
# ifconfig eth1 down
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 1000
Up Delay (ms): 0
Down Delay (ms): 0
Peer Notification Delay (ms): 0
Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:50:56:ad:4c:9d
Slave queue ID: 0
Slave Interface: eth1
MII Status: down
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 1
Permanent HW addr: 00:0c:29:a2:23:74
Slave queue ID: 0
[root@master network-scripts]#
반응형
'Linux' 카테고리의 다른 글
리눅스 우분투 설치 후 기본 설정 (0) | 2024.04.01 |
---|---|
리눅스 시간 동기화 (0) | 2024.03.13 |
Uptime (0) | 2024.02.27 |
Rsync 명령어 (1) | 2024.02.27 |
Mount (0) | 2024.02.19 |