시스템(Linux)

리눅스 운영체제에서의 본딩(Linux Bonding)에 대해 알아보겠습니다.

forward error correction Circle 2024. 9. 16. 08:20
반응형

Ⅰ. 리눅스 운영체제에서의 본딩(Linux Bonding)이란?

 여러 개의 네트워크 인터페이스(예: eth0, eth1)를 하나의 가상 네트워크 인터페이스로 묶어 트래픽을 처리하는 기술입니다. 본딩을 사용하면 네트워크 성능을 향상시키거나, 네트워크 연결이 끊겼을 때 자동으로 다른 인터페이스로 전환되는 고가용성(High Availability)을 제공할 수 있습니다.


Ⅱ. 본딩의 주요 기능

여러 개의 네트워크 카드(NIC)를 하나의 가상 인터페이스로 결합하여 트래픽을 분산하거나, 하나의 네트워크 카드가 실패하면 다른 카드로 자동 전환되도록 설정할 수 있는 기능을 제공합니다.

 ⅰ. 부하 분산(Load Balancing)

 ⅱ. 장애 조치(Failover)

Ⅲ. 리눅스 운영체제에서의 본딩(Linux Bonding) 의 특징

ⅰ. 고가용성(High Availability): 본딩된 여러 인터페이스 중 하나가 다운되면, 자동으로 다른 인터페이스가 활성화되어 네트워크 연결을 유지합니다.
ⅱ. 부하 분산(Load Balancing): 트래픽을 여러 인터페이스에 분산하여 네트워크 성능을 향상시킬 수 있습니다.
ⅲ. 유연한 본딩 모드: 리눅스에서는 다양한 본딩 모드를 제공하여 사용자가 상황에 맞는 방식으로 네트워크 인터페이스를 구성할 수 있습니다.
ⅳ. 네트워크 성능 향상: 여러 인터페이스를 통해 더 많은 트래픽을 처리함으로써 네트워크 성능이 개선됩니다.

Ⅳ. 리눅스 운영체제에서의 본딩(Linux Bonding) 모드

본딩(Linux Bonding) 모드 설명
Mode 0 (Round-Robin) 순차적으로 패킷을 전송하는 방식입니다.
부하 분산과 고가용성을 제공하지만, 스위치에서 추가적인 설정이 필요할 수 있습니다.
Mode 1 (Active-Backup) 한 인터페이스가 활성화 상태로 동작하고, 나머지는 대기 상태로 유지됩니다.
기본적으로 고가용성을 목표로 하며, 하나의 NIC가 다운되면 다른 NIC가 자동으로 활성화됩니다.
별도의 스위치 구성 필요 없이 사용할 수 있습니다.
Mode 2 (Balance-XOR) XOR 연산을 사용해 특정 기준(예: MAC 주소)에 따라 패킷을 분배합니다.
부하 분산과 고가용성을 제공하며, 스위치에서 802.3ad를 지원해야 합니다.
Mode 3 (Broadcast) 모든 인터페이스에 동일한 패킷을 전송합니다.
고가용성이 필요한 환경에서 사용됩니다.
Mode 4 (802.3ad / LACP) LACP(Link Aggregation Control Protocol)를 사용해 다중 인터페이스를 묶습니다.
동적으로 링크를 결합하고 부하 분산을 제공합니다.
스위치에서 LACP를 지원해야 합니다.
Mode 5 (Balance-TLB) 송신 트래픽만 부하 분산하고 수신 트래픽은 하나의 NIC로 처리합니다.
스위치 설정이 필요 없습니다.
Mode 6 (Balance-ALB) 송신 및 수신 트래픽 모두 부하 분산합니다.
스위치 설정이 필요 없습니다.


Ⅴ. 리눅스 운영체제에서의 본딩(Linux Bonding) 설정 방법

 리눅스에서 본딩을 설정하려면, 네트워크 설정 파일을 수정하거나 직접 명령어를 사용하여 설정할 수 있습니다. 다음은 대표적인 설정 예시입니다.

ⅰ. 본딩 모듈 로드
먼저 본딩 모듈을 로드합니다. modprobe 명령어를 사용하여 본딩 커널 모듈을 활성화할 수 있습니다.

[root@feccle ~ ] # modprobe bonding


ⅱ. 본딩 인터페이스 설정
네트워크 설정 파일을 수정하여 본딩 인터페이스를 설정할 수 있습니다. 대부분의 리눅스 배포판에서 /etc/network/interfaces 또는 /etc/sysconfig/network-scripts/ifcfg-* 파일을 사용합니다.

RHEL/CentOS 기반 시스템의 /etc/sysconfig/network-scripts/ifcfg-bond0 파일 설정

DEVICE=bond0
NAME=bond0
BONDING_MASTER=yes
TYPE=Bond
IPADDR=192.168.1.100
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
BONDING_OPTS="mode=4 miimon=100 lacp_rate=1"
ONBOOT=yes


그리고 eth0 및 eth1 인터페이스에 대한 설정 파일도 다음과 같이 수정해야 합니다.

DEVICE=eth0
NAME=eth0
MASTER=bond0
SLAVE=yes
ONBOOT=yes
DEVICE=eth1
NAME=eth1
MASTER=bond0
SLAVE=yes
ONBOOT=yes


ⅲ. 네트워크 서비스 재시작
설정을 적용한 후 네트워크 서비스를 재시작합니다.

[root@feccle ~] # systemctl restart network 

Ⅵ. 리눅스 운영체제에서의 본딩(Linux Bonding) 상태 확인

ⅰ. 리눅스 운영체제에서의 본딩(Linux Bonding) 상태 확인

[root@feccle ~] # cat /proc/net/bonding/bond0


이 명령어를 통해 본딩된 인터페이스의 상태와 사용 중인 모드, 각 NIC의 상태 등을 확인할 수 있습니다.

ⅱ. 네트워크 인터페이스 상태 확인

[root@feccle ~] # ip addr


이 명령어는 본딩된 인터페이스와 각 개별 인터페이스가 제대로 설정되었는지 확인 할 수 있습니다.

반응형